OSDN Git Service

不要になったクラスを削除
[coroid/inqubus.git] / vhook / docs / nicoplayer.swf.source
1 //■ABC File MinorVersion:16 , MajorVersion:46
2
3 //INT cnt=143
4 //UINT cnt=1
5 //DOUBLE cnt=32
6 //STRING cnt=6667
7 //NAMESPACES cnt=1166
8 //NAMESPACE_SETS cnt=279
9 //MULTINAMES cnt=7959
10 //Methods cnt=5427
11 //METADATA cnt=0
12 //INTERFACE cnt=465
13 //CLASS cnt=465
14 //SCRIPT cnt=396
15
16 //■script000■
17
18 package jp.nicovideo.ext{
19
20         import jp.nicovideo.ext.config.IThumbConfig
21         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
22
23         //■class(instance)_index:0
24         public interface IThumbPlayer
25         {
26                 //static constructor
27                 public static function IThumbPlayer$cinit()
28                 {       //MethodID:0, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
29                 }
30
31                 //variables/etc.
32                 function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void;     //MethodID:1, dispID:0
33
34                 function get initialized():Boolean;                                         //MethodID:2, dispID:0
35
36                 function playThumbPlayer():void;                                            //MethodID:3, dispID:0
37
38                 function pauseThumbPlayer():void;                                           //MethodID:4, dispID:0
39
40                 function set onChangedVideoStatus(hug1:Function):void;                      //MethodID:5, dispID:0
41
42                 function get videoPlayerStatus():String;                                    //MethodID:6, dispID:0
43
44                 //constructor
45                 public function IThumbPlayer();                                             //MethodID:7, dispID:0
46         }
47 }
48
49 //■script001■
50
51 package jp.nicovideo.nicoplayer{
52
53         import flash.display.DisplayObject
54         import flash.display.MovieClip
55         import flash.display.Sprite
56         import flash.display.StageAlign
57         import flash.display.StageScaleMode
58         import flash.errors.IOError
59         import flash.errors.IllegalOperationError
60         import flash.events.Event
61         import flash.events.TimerEvent
62         import flash.net.URLRequest
63         import flash.net.URLVariables
64         import flash.net.navigateToURL
65         import flash.system.Security
66         import flash.ui.ContextMenu
67         import flash.utils.Timer
68         import jp.nicovideo.ext.config.IThumbConfig
69         import jp.nicovideo.hiroba.HirobaConnectorClient
70         import jp.nicovideo.hiroba.IHirobaConnector
71         import jp.nicovideo.hiroba.events.HirobaErrorEvent
72         import jp.nicovideo.hiroba.events.HirobaEvent
73         import jp.nicovideo.hiroba.events.HirobaEventReferer
74         import jp.nicovideo.hiroba.models.HirobaMessageServerInfo
75         import jp.nicovideo.marquee.INicoMarqueePlayer
76         import jp.nicovideo.marquee.MarqueeClient
77         import jp.nicovideo.nicoplayer.app.ApplibarLoader
78         import jp.nicovideo.nicoplayer.config.DebugMode
79         import jp.nicovideo.nicoplayer.config.DefaultInitializer
80         import jp.nicovideo.nicoplayer.config.NicoConfig
81         import jp.nicovideo.nicoplayer.config.getDebugMode
82         import jp.nicovideo.nicoplayer.external.ExternalClient
83         import jp.nicovideo.nicoplayer.hiroba.HirobaPlayer
84         import jp.nicovideo.nicoplayer.hiroba.events.HirobaErrorStatus
85         import jp.nicovideo.nicoplayer.models.IPlayerConfig
86         import jp.nicovideo.nicoplayer.models.MyList
87         import jp.nicovideo.nicoplayer.models.PlayDelay
88         import jp.nicovideo.nicoplayer.models.PlayerConfig
89         import jp.nicovideo.nicoplayer.models.PlayerInfo
90         import jp.nicovideo.nicoplayer.models.PlayerVersion
91         import jp.nicovideo.nicoplayer.models.RelatedVideoList
92         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
93         import jp.nicovideo.nicoplayer.models.StartVposConfig
94         import jp.nicovideo.nicoplayer.models.SystemMessage
95         import jp.nicovideo.nicoplayer.models.VideoDetail
96         import jp.nicovideo.nicoplayer.models.VideoLoadGuardian
97         import jp.nicovideo.nicoplayer.models.api.BGMVideoInfo
98         import jp.nicovideo.nicoplayer.models.api.GetBGM
99         import jp.nicovideo.nicoplayer.models.api.GetChecklist
100         import jp.nicovideo.nicoplayer.models.api.GetFLV
101         import jp.nicovideo.nicoplayer.models.api.GetRelation
102         import jp.nicovideo.nicoplayer.models.api.GetSponsorInfo
103         import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
104         import jp.nicovideo.nicoplayer.models.api.IKeygen
105         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
106         import jp.nicovideo.nicoplayer.models.api.Jumper
107         import jp.nicovideo.nicoplayer.models.api.Keygen
108         import jp.nicovideo.nicoplayer.models.api.RegisterBGM
109         import jp.nicovideo.nicoplayer.models.comment.CommentConstants
110         import jp.nicovideo.nicoplayer.models.comment.CommentList
111         import jp.nicovideo.nicoplayer.models.comment.CommentListPublicStatus
112         import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
113         import jp.nicovideo.nicoplayer.models.comment.CommentRouter
114         import jp.nicovideo.nicoplayer.models.comment.CommentStorageEvents
115         import jp.nicovideo.nicoplayer.models.comment.ICommentList
116         import jp.nicovideo.nicoplayer.models.comment.LocalCommentList
117         import jp.nicovideo.nicoplayer.models.comment.OwnerCommentList
118         import jp.nicovideo.nicoplayer.models.comment.TimeMachine
119         import jp.nicovideo.nicoplayer.models.filter.ChannelReplacer
120         import jp.nicovideo.nicoplayer.models.filter.DeleteFilter
121         import jp.nicovideo.nicoplayer.models.filter.LockedComment
122         import jp.nicovideo.nicoplayer.models.filter.NGComment
123         import jp.nicovideo.nicoplayer.models.filter.NGInfo
124         import jp.nicovideo.nicoplayer.models.filter.NGResponseConstants
125         import jp.nicovideo.nicoplayer.models.filter.NGType
126         import jp.nicovideo.nicoplayer.models.filter.Replacer
127         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
128         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVarsInitializer
129         import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
130         import jp.nicovideo.nicoplayer.models.log.LogManager
131         import jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender
132         import jp.nicovideo.nicoplayer.models.playlist.Playlist
133         import jp.nicovideo.nicoplayer.models.playlist.PlaylistController
134         import jp.nicovideo.nicoplayer.models.playlist.PlaylistErrorManager
135         import jp.nicovideo.nicoplayer.models.video.ChildVideoName
136         import jp.nicovideo.nicoplayer.models.video.FLVVideo
137         import jp.nicovideo.nicoplayer.models.video.IVideo
138         import jp.nicovideo.nicoplayer.models.video.SWFVideo
139         import jp.nicovideo.nicoplayer.models.video.VideoController
140         import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
141         import jp.nicovideo.nicoplayer.models.video.VideoType
142         import jp.nicovideo.nicoplayer.models.video.VideoWrapper
143         import jp.nicovideo.nicoplayer.models.video.VposWatcher
144         import jp.nicovideo.nicoplayer.models.video.userSponsor.IUserSponsorVideo
145         import jp.nicovideo.nicoplayer.models.video.userSponsor.UserSponsorVideoClient
146         import jp.nicovideo.nicoplayer.plugin.NicoPluginClient
147         import jp.nicovideo.nicoplayer.remocon.RemoconClient
148         import jp.nicovideo.nicoplayer.remocon.RemoconFullScreenKeeper
149         import jp.nicovideo.nicoplayer.remocon.RemoconNotifier
150         import jp.nicovideo.nicoplayer.remocon.RemoconPlayerStateObserver
151         import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
152         import jp.nicovideo.nicoplayer.remocon.RemoconState
153         import jp.nicovideo.nicoplayer.remocon.method.defineRemoconMethods
154         import jp.nicovideo.nicoplayer.storages.CommentStorage
155         import jp.nicovideo.nicoplayer.storages.CommentStorageError
156         import jp.nicovideo.nicoplayer.storages.ICommentStorage
157         import jp.nicovideo.nicoplayer.storages.MessageServerClient
158         import jp.nicovideo.nicoplayer.tpls.INicoViewController
159         import jp.nicovideo.nicoplayer.tpls.NicoViewControllerClient
160         import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
161         import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
162         import jp.nicovideo.nicoplayer.tpls.shutter.ControllerShutter
163         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
164         import jp.nicovideo.nicoplayer.videoender.VideoenderTesterConfig
165         import jp.nicovideo.nicoplayer.views.JumpMessageLayer
166         import jp.nicovideo.nicoplayer.views.VideoLayerConstants
167         import jp.nicovideo.nicoplayer.views.VideoLayerManager
168         import jp.nicovideo.nicoplayer.views.comment.CommentLayer
169         import jp.nicovideo.nicoplayer.views.comment.CommentLayerID
170         import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
171         import jp.nicovideo.nicoplayer.views.comment.CommentViewTransformer
172         import jp.nicovideo.nicoplayer.views.framerate.FrameRateBooster
173         import jp.nicovideo.nicoscript.INicoSPlayer
174         import jp.nicovideo.nicoscript.NicoSClient
175         import jp.nicovideo.nicoscript.NicoSConstants
176         import jp.nicovideo.nicoscript.macro.parsers.IMacroParserResult
177         import jp.nicovideo.util.CrossSharedObject
178         import jp.nicovideo.util.HTTPUtils
179         import jp.nicovideo.util.ObjectUtils
180         import jp.nicovideo.util.StringUtils
181         import jp.nicovideo.util.api.APICacheProxy
182         import jp.nicovideo.util.events.EventBarrier
183         import jp.nicovideo.util.events.EventChunk
184         import jp.nicovideo.util.events.EventPipe
185         import jp.nicovideo.util.events.EventResult
186         import jp.nicovideo.util.events.EventSequence
187         import jp.nicovideo.util.events.event_sender
188         import jp.nicovideo.util.external.JSConnector
189         import jp.nicovideo.util.loka.Loka
190         import jp.nicovideo.util.loka.__MSG__
191
192         //■class(instance)_index:1
193         public class NicoPlayer extends Sprite implements IThumbPlayer
194         {
195                 //static constructor
196                 public static function NicoPlayer$cinit()
197                 {       //MethodID:9, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 54
198                         DEBUG_MODE = getDebugMode();
199                         DEBUG_MODE_EXT = ((DEBUG_MODE == DebugMode.NON) ? DebugMode.NON : DebugMode.EXTDEV);
200                 }
201
202                 //static variables/etc.
203                 private static const DEBUG_MODE:uint;                           //slotID:1
204                 private static const DEBUG_MODE_EXT:uint;                       //slotID:2
205
206                 //constructor
207                 public function NicoPlayer()
208                 {       //MethodID:10, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 137
209                         this.commentListContainer = {};
210                         this.systemMessage = SystemMessage.instance;
211                         this.nicoViewControllerClient = new NicoViewControllerClient();
212                         this.pluginClient = new NicoPluginClient();
213                         this._playlistSequences = [];
214
215                         super();
216                         Security.allowDomain("*");
217
218                         this.isThumbWatchMode = (loaderInfo.parameters[this._IS_THUMBWATCH_PARAM] == "1");
219                         this.configure = new NicoConfig();
220                         Loka.instance.debug = true;
221
222                         if(this.isThumbWatchMode) return;
223
224                         if(loaderInfo.parameters[this._PLAYLIST_ID]){
225                                 this.initializePlaylistPlayer();
226
227                                 return;
228                         }
229
230                         this.initializeWatchPlayer();
231                 }
232
233                 //variables/etc.
234                 private const _IS_THUMBWATCH_PARAM:String = "thumbWatch";       //slotID:0
235                 private const _PLAYLIST_ID:String = "playlistId";               //slotID:0
236                 private var getFLV:GetFLV;                                      //slotID:0
237                 private var flashVars:NicoFlashVars;                            //slotID:0
238                 private var playlistFlashVars:PlaylistFlashVars;                //slotID:0
239                 private var playerConfig:IPlayerConfig;                         //slotID:0
240                 private var video:VideoWrapper;                                 //slotID:0
241                 private var commentListContainer:Object;                        //slotID:0
242                 private var mainCommentListName:String = "commentlist:main";    //slotID:0
243                 private var commentList:CommentList;                            //slotID:0
244                 private var ownerCommentList:OwnerCommentList;                  //slotID:0
245                 private var privateCommentList:CommentList;                     //slotID:0
246                 private var nicoSCommentList:CommentList;                       //slotID:0
247                 private var localCommentList:LocalCommentList;                  //slotID:0
248                 private var systemMessage:SystemMessage;                        //slotID:0
249                 private var relatedList:RelatedVideoList;                       //slotID:0
250                 private var ngComment:NGComment;                                //slotID:0
251                 private var lockedComment:LockedComment;                        //slotID:0
252                 private var replacer:Replacer;                                  //slotID:0
253                 private var playerVersion:PlayerVersion;                        //slotID:0
254                 private var playerInfo:PlayerInfo;                              //slotID:0
255                 private var timeMachine:TimeMachine;                            //slotID:0
256                 private var deleteFilter:DeleteFilter;                          //slotID:0
257                 private var channelReplacer:ChannelReplacer;                    //slotID:0
258                 private var videoLoadGuardian:VideoLoadGuardian;                //slotID:0
259                 private var getChecklist:GetChecklist;                          //slotID:0
260                 private var myList:MyList;                                      //slotID:0
261                 private var playlist:Playlist;                                  //slotID:0
262                 private var initializeInfo:InitializeInfo;                      //slotID:0
263                 private var _startVposConfig:StartVposConfig;                   //slotID:0
264                 private var commentLayerView:CommentLayerView;                  //slotID:0
265                 private var commentLayer:CommentLayer;                          //slotID:0
266                 private var commentViewTransformer:CommentViewTransformer;      //slotID:0
267                 private var commentRouter:CommentRouter;                        //slotID:0
268                 private var videoLayerManager:VideoLayerManager;                //slotID:0
269                 private var videoController:VideoController;                    //slotID:0
270                 private var jumpMsgLayer:JumpMessageLayer;                      //slotID:0
271                 private var nicoViewController:INicoViewController;             //slotID:0
272                 private var nicoViewControllerClient:NicoViewControllerClient;  //slotID:0
273                 private var vposWatcher:VposWatcher;                            //slotID:0
274                 private var commentShutter:ControllerShutter;                   //slotID:0
275                 private var audioShutter:ControllerShutter;                     //slotID:0
276                 private var playlistController:PlaylistController;              //slotID:0
277                 private var frameRateBooster:FrameRateBooster;                  //slotID:0
278                 private var userSponsorVideo:IUserSponsorVideo;                 //slotID:0
279                 private var hirobaPlayer:HirobaPlayer;                          //slotID:0
280                 private var hirobaConnectorClient:HirobaConnectorClient;        //slotID:0
281                 private var _thumbConfig:IThumbConfig;                          //slotID:0
282                 private var configure:NicoConfig;                               //slotID:0
283                 private var keygen:IKeygen;                                     //slotID:0
284                 private var commentStorage:ICommentStorage;                     //slotID:0
285                 private var jumper:Jumper;                                      //slotID:0
286                 private var nicosPlayer:INicoSPlayer;                           //slotID:0
287                 private var nicosClient:NicoSClient;                            //slotID:0
288                 private var nicosPipe:Function;                                 //slotID:0
289                 private var BGMVideoInfos:Array;                                //slotID:0
290                 private var marqueeClient:MarqueeClient;                        //slotID:0
291                 private var externalClient:ExternalClient;                      //slotID:0
292                 private var isThumbWatchMode:Boolean = false;                   //slotID:0
293                 private var _onChangedVideoStatus:Function;                     //slotID:0
294                 private var _initialized:Boolean = false;                       //slotID:0
295                 private var _wholeVideoLoadSucceeded:Boolean = false;           //slotID:0
296                 private var pluginClient:NicoPluginClient;                      //slotID:0
297                 private var _playlistSequences:Array;                           //slotID:0
298                 private var _isPlaylist:Boolean = false;                        //slotID:0
299                 private var _videoLoadSucceeded:Boolean;                        //slotID:0
300                 private var _isPlaylistPrepared:Boolean = false;                //slotID:0
301                 private var _shutterKeyLastClosed:int = -1;                     //slotID:0
302                 private var _isShowedDialog:Boolean = false;                    //slotID:0
303                 private var _logManager:LogManager;                             //slotID:0
304                 private var _playerPageMyselfURL:String;                        //slotID:0
305                 private var _videoenderTesterConfig:IVideoenderTesterConfig;    //slotID:0
306
307                 private function initializePlaylistPlayer():void
308                 {       //MethodID:12, LocalCount= 2 , MaxScope= 2, MaxStack= 19, CodeLength= 422
309                         internal var menu:ContextMenu;                                  //slotID:1
310                         internal var vars:Object;                                       //slotID:2
311                         internal var seq:EventSequence;                                 //slotID:3
312
313                         this._isPlaylist = true;
314
315                         DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
316
317                         this.keygen = new Keygen(this.configure);
318                         stage.align = StageAlign.TOP_LEFT;
319                         stage.scaleMode = StageScaleMode.NO_SCALE;
320                         menu = new ContextMenu();
321
322                         menu.hideBuiltInItems();
323
324                         menu.builtInItems.quality = true;
325                         contextMenu = menu;
326                         vars = loaderInfo.parameters;
327                         this.flashVars = new NicoFlashVars();
328
329                         NicoFlashVarsInitializer.setFlashVars(this.flashVars, vars);
330
331                         this.playlistFlashVars = new PlaylistFlashVars(vars);
332                         this._playerPageMyselfURL = function():String{  //MethodID:11, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 49
333                                 var hug1:* = {};
334
335                                 if(playlistFlashVars.playlistSort) hug1["sort"] = playlistFlashVars.playlistSort;
336
337                                 return StringUtils.joinQuery((configure.PLAYLIST_PAGE_BASE_URL + playlistFlashVars.playlistID), hug1);
338                         }();
339                         this.nicoViewControllerClient.nicoConfig = this.configure;
340
341                         this.nicoViewControllerClient.flashVars = this.flashVars;
342                         this.nicoViewControllerClient.playlistFlashVars = this.playlistFlashVars;
343                         this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
344
345                         this.pluginClient.setProperty("nicoConfig", this.configure);
346                         this.pluginClient.setProperty("flashVars", this.flashVars);
347
348                         this.nicoViewControllerClient.pluginClient = this.pluginClient;
349                         this._playlistSequences = [this._loadWatchAPI, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo];
350                         seq = new EventSequence(this);
351
352                         seq.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.initializePlaylist, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.checkInitializePlaylist, this.initializeNG, this.startPlaylist);
353                         seq.next();
354                 }
355
356                 private function startPlaylist():void
357                 {       //MethodID:13, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 54
358                         if(this.playlistController) this.playlistController.play(null, null, (this.playerConfig.autoPlay && !this.initializeInfo.isPremium));
359                         EventSequence.current.next();
360                 }
361
362                 private function _loadWatchAPI():void
363                 {       //MethodID:15, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 96
364                         internal var apiParams:Object;                                  //slotID:1
365
366                         this.nicoViewControllerClient.flashVars = null;
367                         apiParams = {};
368
369                         if(this._isPlaylist){
370                                 apiParams["mode"] = "playlist";
371                                 apiParams["playlist_token"] = this.playlist.token;
372                         }
373
374                         HTTPUtils.loadJSON(EventSequence.bind(function(hug1:Object):void{       //MethodID:14, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 245
375                                 var hug2:* = undefined;
376
377                                 if(!hug1 || (hug1.status == "ng")){
378                                         if(_isPlaylist){
379                                                 if(hug1.status_message == PlaylistErrorManager.TOKEN_TIMEOUT){
380                                                         if(playlistController.errorCount < 1){
381                                                                 playlistController.errorCount++;
382                                                                 playlistController.isInvalidToken = true;
383                                                                 playlistController.isVideoUpdating = false;
384
385                                                                 playlistController.play(playlistController.threadID);
386
387                                                                 return;
388                                                         }
389                                                 }
390
391                                                 playlistController.onError(hug1.status_message.toString());
392
393                                                 if(PlaylistErrorManager.TABWINDOW_ALERT_ERRORS.indexOf(hug1.status_message.toString()) != (-1)) playlistController.goNext(null, (playerConfig.autoPlay && !initializeInfo.isPremium));
394                                         }
395
396                                         return;
397                                 }
398
399                                 flashVars = new NicoFlashVars();
400
401                                 NicoFlashVarsInitializer.setFlashVars(flashVars, hug1);
402
403                                 if(_isPlaylist){
404                                         hug2 = playlist.getVideoInfo(playlistController.threadID);
405                                         hug2.flashVars = flashVars;
406                                 }
407
408                                 nicoViewControllerClient.flashVars = flashVars;
409
410                                 EventSequence.current.next();
411                         }), (this.configure.WATCH_API_URL + this.playlistController.threadID), apiParams);
412                 }
413
414                 private function initializePlaylist():void
415                 {       //MethodID:18, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 96
416                         internal var apiParams:Object;                                  //slotID:1
417
418                         apiParams = {};
419                         apiParams["ts"] = new Date().time;
420                         apiParams["playlist_token"] = this.playlistFlashVars.playlistToken;
421                         this.playlist = new Playlist((this.configure.GET_PLAYLIST_URL + this.playlistFlashVars.playlistID), apiParams, this.playlistFlashVars.playlistSort, EventSequence.bind(function(hug1:Boolean):void{     //MethodID:17, LocalCount= 3 , MaxScope= 1, MaxStack= 11, CodeLength= 172
422                                 internal var success:Boolean;                                   //slotID:1
423                                 internal var reset:Function;                                    //slotID:2
424
425                                 reset = null;
426                                 success = hug1;
427                                 reset = function():void{        //MethodID:16, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 43
428                                         nicoViewControllerClient.getFLVData = null;
429                                         nicoViewControllerClient.videoController = null;
430                                         nicoViewControllerClient.commentRouter = null;
431                                         nicoViewControllerClient.relatedList = null;
432                                         nicoViewControllerClient.myList = null;
433                                         nicoViewControllerClient.defaultMylistAppender = null;
434                                 };
435
436                                 _isPlaylistPrepared = success;
437
438                                 if(!success){
439                                         EventSequence.current.next();
440
441                                         return;
442                                 }
443
444                                 if(playlistController){
445                                         EventSequence.current.next();
446
447                                         return;
448                                 }
449
450                                 initializeInfo = InitializeInfo.getInstance();
451                                 nicoViewControllerClient.initializeInfo = initializeInfo;
452
453                                 pluginClient.setProperty("initializeInfo", initializeInfo);
454
455                                 playlistController = new PlaylistController(_playlistSequences, initializePlaylist, playlist, playlistFlashVars, configure, playerInfo.playlistLimit, reset, playerConfig.isPlaylistRandomPlay, _playerPageMyselfURL);
456                                 nicoViewControllerClient.playlistController = playlistController;
457
458                                 EventSequence.current.next();
459                         }));
460                 }
461
462                 private function checkInitializePlaylist():void
463                 {       //MethodID:19, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 105
464                         var hug1:String = null;
465
466                         if(!this.initializeInfo || !this.initializeInfo.userID){
467                                 this.systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
468
469                                 hug1 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログインしていない可能性があります。") + "</p>");
470
471                                 this.systemMessage.alert(hug1);
472
473                                 return;
474                         }
475
476                         EventSequence.current.next();
477                 }
478
479                 public function setThumbWatchVars(hug1:IThumbConfig, hug2:NicoFlashVars):void
480                 {       //MethodID:20, LocalCount= 4 , MaxScope= 1, MaxStack= 23, CodeLength= 234
481                         if(DEBUG_MODE_EXT != DebugMode.NON){
482                                 DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE_EXT);
483                                 DefaultInitializer.setThumbDebugMode(this.configure);
484                         }else{
485                                 DefaultInitializer.setConfig(this.configure, hug1.playerURL, DebugMode.NON);
486                         }
487
488                         this.keygen = new Keygen(this.configure);
489                         this._thumbConfig = hug1;
490                         this.flashVars = hug2;
491                         this.nicoViewControllerClient.thumbConfig = hug1;
492                         this.nicoViewControllerClient.nicoConfig = this.configure;
493                         this.nicoViewControllerClient.flashVars = hug2;
494                         var hug3:EventSequence = new EventSequence(this);
495
496                         hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.initializePlayerConfig, this._loadThumbViewSWF, this._loadThumbControllerSWF, this.loadNicoScriptSWF, this._loadThumbVideoInfo, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this._initializeModelAndViewThumbWatch, this.initializeSponsorVideo, this._delayVideo, this._loadVideo, this.initializeCommentLists, this.beginToPlayVideo);
497                         hug3.next();
498                 }
499
500                 public function get initialized():Boolean
501                 {       //MethodID:21, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
502                         return this._initialized;
503                 }
504
505                 public function playThumbPlayer():void
506                 {       //MethodID:22, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
507                         if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.play();
508                 }
509
510                 public function pauseThumbPlayer():void
511                 {       //MethodID:23, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 47
512                         if(this.isThumbWatchMode && this.video && this.video.isInitialized) this.video.stop();
513                 }
514
515                 public function set onChangedVideoStatus(hug1:Function):void
516                 {       //MethodID:25, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 57
517                         internal var onChanged:Function;                                //slotID:1
518
519                         onChanged = hug1;
520
521                         if(!this.isThumbWatchMode) throw new IllegalOperationError("NicoPlayer.set onChangedVideoStatus: player is not in thumbwatch.");
522
523                         if(onChanged == null) throw new ArgumentError("NicoPlayer.set onChangedVideoStatus: invalid parameters onChanged is null.");
524
525                         this._onChangedVideoStatus = function(hug1:String):void{        //MethodID:24, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
526                                 if(!_initialized) _initialized = true;
527                                 onChanged(hug1);
528                         };
529                 }
530
531                 public function get videoPlayerStatus():String
532                 {       //MethodID:26, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 49
533                         if(this.isThumbWatchMode && this.video && this.video.isInitialized) return this.video.videoPlayerStatus;
534
535                         return "";
536                 }
537
538                 private function initializeWatchPlayer():void
539                 {       //MethodID:27, LocalCount= 4 , MaxScope= 1, MaxStack= 31, CodeLength= 362
540                         DefaultInitializer.setConfig(this.configure, loaderInfo.url, DEBUG_MODE);
541
542                         this.keygen = new Keygen(this.configure);
543                         stage.align = StageAlign.TOP_LEFT;
544                         stage.scaleMode = StageScaleMode.NO_SCALE;
545                         var hug1:ContextMenu = new ContextMenu();
546
547                         hug1.hideBuiltInItems();
548
549                         hug1.builtInItems.quality = true;
550                         contextMenu = hug1;
551                         var hug2:Object = loaderInfo.parameters;
552                         this.flashVars = new NicoFlashVars();
553
554                         NicoFlashVarsInitializer.setFlashVars(this.flashVars, hug2);
555
556                         this._playerPageMyselfURL = (this.configure.BASE_URL + "watch/" + this.flashVars.watchID);
557                         this.nicoViewControllerClient.nicoConfig = this.configure;
558                         this.nicoViewControllerClient.flashVars = this.flashVars;
559                         this.nicoViewControllerClient.playerPageMyselfURL = this._playerPageMyselfURL;
560
561                         this.pluginClient.setProperty("nicoConfig", this.configure);
562                         this.pluginClient.setProperty("flashVars", this.flashVars);
563
564                         this.nicoViewControllerClient.pluginClient = this.pluginClient;
565                         var hug3:EventSequence = new EventSequence(this);
566
567                         hug3.push(this.initializePlayerVersion, this.initializePlayerInfo, this.initializeCrossSharedObjectSWF, this.initializeJSConnector, this.initializeJumper, this.createLogger, this.initializePlayerConfig, this.loadTemplateSWF, this.loadViewControllerSWF, this.loadNicoScriptSWF, this.loadVideoInfoAPI, this.initializeMyList, this.loadBGMVideoInfo, this.initializeNG, this.initializeCommentStorage, this.initializeGetChecklist, this.initializeHiroba, this.prepareVideo, this.prepareCommentLists, this.initializeModelAndView, this.initializeCommentRouter, this.initializeModelAndView4Watch, this.initializeSponsorVideo, this.initializeLogger, this.loadConfirm, this.initializePlugin, this.initializeCommentLists, this._delayVideo, this._loadVideo, this.beginToPlayVideo);
568                         hug3.next();
569                 }
570
571                 private function initializeCrossSharedObjectSWF():void
572                 {       //MethodID:30, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 64
573                         internal var _url:String;                                       //slotID:1
574
575                         _url = null;
576                         _url = StringUtils.joinQuery(this.configure.CROSSSHAREDOBJECT_SWF_URL, {t:this.playerVersion.crossSharedObject});
577
578                         CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{    //MethodID:29, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 134
579                                 internal var sccessed:Boolean;                                  //slotID:1
580
581                                 sccessed = hug1;
582
583                                 if(!sccessed) throw new Error("NicoPlayer.loadCrossSharedObjectSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_SWF_URL + "\"");
584
585                                 if(CrossSharedObject.isPersistable || !configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL){
586                                         EventSequence.current.next();
587                                 }else{
588                                         CrossSharedObject.terminate();
589
590                                         _url = StringUtils.joinQuery(configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL, {t:playerVersion.crossSharedObject});
591
592                                         CrossSharedObject.init(_url, EventSequence.bind(function(hug1:Boolean):void{    //MethodID:28, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 38
593                                                 if(!hug1) throw new Error("NicoPlayer.loadCrossSharedObjectNoNimgSWF: failure to load \"" + configure.CROSSSHAREDOBJECT_NONIMG_SWF_URL + "\"");
594                                                 EventSequence.current.next();
595                                         }));
596                                 }
597                         }));
598                 }
599
600                 private function createLogger():void
601                 {       //MethodID:31, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 42
602                         this._logManager = new LogManager(!CrossSharedObject.isPersistable);
603                         this.nicoViewControllerClient.logManager = this._logManager;
604
605                         EventSequence.current.next();
606                 }
607
608                 private function initializePlayerConfig():void
609                 {       //MethodID:32, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 116
610                         this.playerConfig = new PlayerConfig(this.isThumbWatchMode);
611                         this.nicoViewControllerClient.playerConfig = this.playerConfig;
612
613                         this.pluginClient.setProperty("playerConfig", this.playerConfig);
614
615                         this.playerConfig.deepenedCommentForce = this.flashVars.isDeepenedCommentForce;
616                         this.playerConfig.aspectRatio = ((this.flashVars.isWide || this._isPlaylist) ? ScreenAspectRatio.WIDE : ScreenAspectRatio.NORMAL);
617
618                         EventSequence.current.next();
619                 }
620
621                 private function initializeJumper():void
622                 {       //MethodID:33, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 74
623                         this.jumper = new Jumper(this.configure, this.flashVars.watchID);
624                         this.nicoViewControllerClient.jumper = this.jumper;
625                         this._startVposConfig = new StartVposConfig(this.jumper, this.flashVars);
626                         this.nicoViewControllerClient.startVposConfig = this._startVposConfig;
627
628                         EventSequence.current.next();
629                 }
630
631                 private function initializePlayerVersion():void
632                 {       //MethodID:35, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
633                         internal var request:URLRequest;                                //slotID:1
634                         internal var params:URLVariables;                               //slotID:2
635                         internal var api:APICacheProxy;                                 //slotID:3
636
637                         request = new URLRequest(this.configure.PLAYERVERSION_XML_URL);
638                         params = new URLVariables();
639                         params.v = this.flashVars.playerVersionUpdated;
640                         request.data = params;
641                         api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerVersionUpdated, false);
642                         this.playerVersion = new PlayerVersion(EventSequence.bind(function(hug1:Boolean):void{  //MethodID:34, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
643                                 if(!hug1) throw new Error("NicoPlayer.playerVersion. initialize error");
644
645                                 nicoViewControllerClient.playerVersion = playerVersion;
646
647                                 EventSequence.current.next();
648                         }), api);
649                 }
650
651                 private function initializeJSConnector():void
652                 {       //MethodID:37, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 71
653                         internal var request:URLRequest;                                //slotID:1
654
655                         request = new URLRequest(this.configure.JSCONNECTOR_SWF_URL);
656                         request.data = new URLVariables("v=" + this.playerVersion.jsconnector);
657
658                         JSConnector.init(request, EventSequence.current.bind(function(hug1:Boolean):void{       //MethodID:36, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 27
659                                 if(!hug1) throw new IOError("NicoPlayer.initializeJSConnector: initialize error.");
660                                 EventSequence.current.next();
661                         }));
662                 }
663
664                 private function initializePlayerInfo():void
665                 {       //MethodID:39, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 116
666                         internal var request:URLRequest;                                //slotID:1
667                         internal var params:URLVariables;                               //slotID:2
668                         internal var api:APICacheProxy;                                 //slotID:3
669
670                         request = new URLRequest(this.configure.PLAYERINFO_XML_URL);
671                         params = new URLVariables();
672                         params.v = this.flashVars.playerInfoUpdated;
673                         request.data = params;
674                         api = new APICacheProxy(request, 0, uint.MAX_VALUE, this.flashVars.playerInfoUpdated, false);
675                         this.playerInfo = new PlayerInfo(EventSequence.bind(function(hug1:Boolean):void{        //MethodID:38, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 36
676                                 if(!hug1) throw new Error("NicoPlayer.playerInfo. initialize error");
677
678                                 nicoViewControllerClient.playerInfo = playerInfo;
679
680                                 EventSequence.current.next();
681                         }), api);
682                 }
683
684                 private function loadTemplateSWF():void
685                 {       //MethodID:41, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
686                         HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{     //MethodID:40, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 45
687                                 if(!hug1) throw new Error("NicoPlayer.loadTemplateSWF: failure to load \"" + configure.VIEW_SWF_URL + "\"");
688
689                                 nicoViewControllerClient.viewRoot = hug1;
690
691                                 EventSequence.current.next();
692                         }), this.configure.VIEW_SWF_URL, {t:this.playerVersion.nicoplayerTemplate});
693                 }
694
695                 private function loadViewControllerSWF():void
696                 {       //MethodID:43, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
697                         HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{     //MethodID:42, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 89
698                                 if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.VIEWCONTROLLER_SWF_URL + "\"");
699                                 addChild(nicoViewControllerClient.viewRoot);
700
701                                 nicoViewController = INicoViewController(hug1);
702
703                                 nicoViewController.startInit(nicoViewControllerClient);
704
705                                 if(playlistController) playlistController.nicoViewController = nicoViewController;
706                                 EventSequence.current.next();
707                         }), this.configure.VIEWCONTROLLER_SWF_URL, {t:this.playerVersion.nicoplayerViewController});
708                 }
709
710                 private function loadNicoScriptSWF():void
711                 {       //MethodID:45, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 76
712                         if(!this.flashVars.hasOwnerThread && !this.playlistFlashVars){
713                                 EventSequence.current.next();
714
715                                 return;
716                         }
717
718                         HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{     //MethodID:44, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
719                                 if(!hug1) throw new Error("NicoPlayer.loadViewControllerSWF: failure to load \"" + configure.NICOSPLAYER_URL + "\"");
720
721                                 nicosPlayer = INicoSPlayer(hug1);
722
723                                 EventSequence.current.next();
724                         }), this.configure.NICOSPLAYER_URL, {t:this.playerVersion.nicoscriptPlayer});
725                 }
726
727                 private function getGetFLVAPIParams():Object
728                 {       //MethodID:46, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 165
729                         var hug1:Object = {};
730                         hug1["v"] = ((this._isPlaylist && this.playlistController) ? this.playlistController.threadID : this.flashVars.watchID);
731
732                         if(this.flashVars.videoType == VideoType.SWF) hug1["as3"] = "1";
733
734                         if(this.flashVars.forceLowMode) hug1["lo"] = "1";
735
736                         if(this.flashVars.economyMode) hug1["eco"] = this.flashVars.economyMode;
737
738                         if(this.flashVars.watchFlashVars.noHiroba || this._isPlaylist) hug1["nh"] = "1";
739
740                         return hug1;
741                 }
742
743                 private function loadVideoInfoAPI():void
744                 {       //MethodID:48, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 65
745                         this.nicoViewControllerClient.getFLVData = null;
746
747                         this.systemMessage.informln(__MSG__("動画情報を取得開始"));
748
749                         this.getFLV = new GetFLV(this.configure.GETFLV_URL, this.getGetFLVAPIParams(), EventSequence.bind(function(hug1:Boolean):void{  //MethodID:47, LocalCount= 7 , MaxScope= 0, MaxStack= 4, CodeLength= 508
750                                 var hug2:* = undefined;
751                                 var hug6:* = undefined;
752                                 var hug3:* = _playerPageMyselfURL;
753
754                                 if(!hug1 || getFLV.closed){
755                                         systemMessage.informln(__MSG__("動画情報の取得に失敗"));
756
757                                         hug2 = (("<p><b>" + __MSG__("動画情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログイン状態が解除されているか、動画が非公開状態にある可能性があります。") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードして再度ログイン</a>", hug3) + "</p>");
758
759                                         systemMessage.alert(hug2);
760
761                                         return;
762                                 }
763
764                                 if(!initializeInfo){
765                                         initializeInfo = InitializeInfo.getInstance();
766                                         nicoViewControllerClient.initializeInfo = initializeInfo;
767
768                                         pluginClient.setProperty("initializeInfo", initializeInfo);
769                                 }
770
771                                 if(!initializeInfo.userID){
772                                         systemMessage.informln(__MSG__("ユーザー情報の取得に失敗"));
773
774                                         hug2 = ("<p><b>" + __MSG__("ユーザー情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("以下のページにアクセスしログインしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
775
776                                         systemMessage.alert(hug2);
777
778                                         return;
779                                 }
780
781                                 if(flashVars.isChannel){
782                                         systemMessage.informln(__MSG__("チャンネル動画"));
783                                 }else if(flashVars.isCommunityThread){
784                                         systemMessage.informln(__MSG__("コミュニティ動画"));
785                                 }
786
787                                 nicoViewControllerClient.getFLVData = getFLV;
788
789                                 if(!pluginClient.hasInitialized("getFLV")) pluginClient.setProperty("getFLV", getFLV);
790                                 SystemMessage.instance.informln(__MSG__("スレッド(動画)") + ":" + flashVars.watchID);
791
792                                 var hug4:* = new RegExp("(https?|rtmp(e|t|te)?)://([^.]+).+", "ig");
793                                 var hug5:* = hug4.exec(getFLV.videoURL);
794
795                                 if(hug5 != null){
796                                         hug6 = ((__MSG__("動画ホスト") + ":") + ((hug5.length >= 1) ? hug5[3] : ""));
797
798                                         if(new RegExp("low$").test(getFLV.videoURL)) hug6 += __MSG__(" (エコノミー)");
799                                         SystemMessage.instance.informln(hug6);
800                                 }
801
802                                 EventSequence.current.next();
803                         }));
804                 }
805
806                 private function initializeMyList():void
807                 {       //MethodID:49, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 46
808                         this.myList = new MyList(this.configure, this.getFLV.threadID);
809                         this.nicoViewControllerClient.myList = this.myList;
810
811                         EventSequence.current.next();
812                 }
813
814                 private function loadBGMVideoInfo():void
815                 {       //MethodID:51, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 119
816                         this.BGMVideoInfos = [];
817
818                         if((!this.flashVars.importedBGMVideos || (this.flashVars.importedBGMVideos.length == 0)) || ((this.getFLV.deleted != 0) && (this.getFLV.deleted != 8))){
819                                 EventSequence.current.next();
820
821                                 return;
822                         }
823
824                         GetBGM.exec(EventSequence.bind(function(hug1:Boolean, hug2:Array):void{ //MethodID:50, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 118
825                                 var hug3:* = undefined;
826                                 var hug4:* = undefined;
827
828                                 if(!hug1){
829                                         systemMessage.informln(__MSG__("引用動画の情報の取得に失敗"));
830
831                                         hug3 = _playerPageMyselfURL;
832                                         hug4 = ("<p><b>" + __MSG__("引用動画の情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("お手数ですが以下のリンクをおしてページをロードしてください。") + "<a href=\"" + hug3 + "\">" + hug3 + "</a>" + "</p>");
833
834                                         systemMessage.alert(hug4);
835
836                                         return;
837                                 }
838
839                                 BGMVideoInfos = hug2;
840
841                                 EventSequence.current.next();
842                         }), this.configure.GETBGM_API_URL, this.getFLV.threadID);
843                 }
844
845                 private function initializeNG():void
846                 {       //MethodID:55, LocalCount= 2 , MaxScope= 2, MaxStack= 11, CodeLength= 145
847                         internal var noLoad:Boolean;                                    //slotID:1
848
849                         noLoad = !CrossSharedObject.isPersistable;
850                         this.nicoViewControllerClient.ngFilter = null;
851                         this.ngComment = new NGComment(this.initializeInfo.userID, this.initializeInfo.ngRevision, this.configure.GETCONFIGURENGCLIENT_URL, this.initializeInfo.isPremium, this.playerConfig, this.initializeInfo.isNGMaintenance, noLoad, this.flashVars.isMymemory, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
852
853                         this.ngComment.onInitialized.add(EventSequence.bind(function(hug1:Boolean):void{        //MethodID:53, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 187
854                                 internal var success:Boolean;                                   //slotID:1
855                                 internal var ngCommentLength:*;                                 //slotID:2
856                                 internal var ngUserLength:*;                                    //slotID:3
857
858                                 ngCommentLength = undefined;
859                                 ngUserLength = undefined;
860                                 success = hug1;
861
862                                 if(!success) systemMessage.alert("<p><b>" + __MSG__("NG設定の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("時間を空けてアクセスしていただくか、下のリンクからお知らせください。") + "<br />" + "<a href=\"https://secure.nicovideo.jp/secure/support_form\" target=\"_blank\">" + "お問い合わせ" + "</a>" + "</p>");
863
864                                 nicoViewControllerClient.ngFilter = ngComment;
865
866                                 if(!pluginClient.hasInitialized("ngFilter")) pluginClient.setProperty("ngFilter", ngComment);
867
868                                 if(!isThumbWatchMode){
869                                         ngCommentLength = 0;
870                                         ngUserLength = 0;
871
872                                         ngComment.list.forEach(function(hug1:NGInfo, hug2:int, hug3:Array):void{        //MethodID:52, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 79
873                                                 if(hug1.type == NGType.MESSAGE){
874                                                         ngCommentLength++;
875                                                 }else if(hug1.type == NGType.USER_ID){
876                                                         ngUserLength++;
877                                                 }
878                                         });
879                                         _logManager.observer.onNGCommentInitialized(ngCommentLength, ngUserLength);
880                                 }
881
882                                 EventSequence.current.next();
883                         }));
884                         this.ngComment.onUpdated.add(function(hug1:Array, hug2:String):void{    //MethodID:54, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 56
885                                 var hug3:ICommentList = null;
886
887                                 if(hug2 == NGResponseConstants.UNSERVE) return;
888
889                                 for each(hug3 in commentListContainer){
890                                         hug3.serveCommentList();
891                                 }
892                         });
893                 }
894
895                 private function initializeCommentStorage():void
896                 {       //MethodID:59, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 106
897                         internal var client:MessageServerClient;                        //slotID:1
898
899                         client = null;
900                         this.nicoViewControllerClient.commentStorageEvents = null;
901                         client = new MessageServerClient(this.getFLV.messageServerURL);
902
903                         client.connectionLost.add(function(hug1:String):void{   //MethodID:56, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
904                                 systemMessage.informln(__MSG__("コメント受信中にエラーが発生: ") + hug1);
905                         });
906                         client.connected.add(function():void{   //MethodID:57, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
907                                 systemMessage.informln(__MSG__("コメントサーバーへの接続準備完了"));
908                         });
909
910                         if(this._logManager) this._logManager.observer.onThreadLoadStarted();
911                         client.connect(EventSequence.bind(function(hug1:Boolean, hug2:String):void{     //MethodID:58, LocalCount= 3 , MaxScope= 0, MaxStack= 8, CodeLength= 131
912                                 commentStorage = new CommentStorage(client, keygen, initializeInfo.userID, initializeInfo.isPremium, flashVars, getFLV);
913
914                                 if((playerInfo.leafFilter.indexOf(getFLV.messageServerURL) != (-1)) || (flashVars.leafSwitch == NicoFlashVars.LEAF_DISABLE)) commentStorage.forceLeafOff = true;
915
916                                 nicoViewControllerClient.commentStorageEvents = new CommentStorageEvents(commentStorage);
917
918                                 if(_logManager) _logManager.observer.onThreadLoadCompleted(hug1);
919                                 EventSequence.current.next();
920                         }));
921                 }
922
923                 private function initializeGetChecklist():void
924                 {       //MethodID:61, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 102
925                         internal var apiCacheProxy:APICacheProxy;                       //slotID:1
926                         internal var callback:Function;                                 //slotID:2
927                         internal var noLoad:Boolean;                                    //slotID:3
928
929                         apiCacheProxy = new APICacheProxy(new URLRequest(this.configure.GET_CHECKLIST_URL), 0, 0, this.initializeInfo.userID);
930                         callback = EventSequence.bind(function(hug1:Boolean):void{      //MethodID:60, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 11
931                                 EventSequence.current.next();
932                         });
933
934                         noLoad = !CrossSharedObject.isPersistable;
935                         this.getChecklist = new GetChecklist(callback, apiCacheProxy, this.flashVars.watchFlashVars.useChecklistCache, noLoad);
936                 }
937
938                 private function initializeHiroba():void
939                 {       //MethodID:69, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 380
940                         this._logManager.observer.onHirobaInitializeStarted();
941
942                         if((this.getFLV.hirobaHost == null) || (this.getFLV.hirobaPort == 0) || (this.getFLV.hirobaThreadID == null) || this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode){
943                                 if(!(((this.getFLV.hirobaHost != null) && (this.getFLV.hirobaPort != 0) && !(!(this.getFLV.hirobaThreadID == null))) && (this.flashVars.watchFlashVars.noHiroba || this.flashVars.isNoComment || this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.watchFlashVars.isEditMode))) this._logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_INFO_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
944                                 EventSequence.current.next();
945
946                                 return;
947                         }
948
949                         if(this.nicoViewControllerClient.hirobaPlayer){
950                                 this._logManager.observer.onHirobaInitializeAborted();
951                                 EventSequence.current.next();
952
953                                 return;
954                         }
955
956                         this.hirobaPlayer = new HirobaPlayer(this.playerConfig, this.initializeInfo.isPremium);
957                         this.nicoViewControllerClient.hirobaPlayer = this.hirobaPlayer;
958
959                         HTTPUtils.loadSWF(function(hug1:Sprite):void{   //MethodID:68, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 276
960                                 internal var swf:Sprite;                                        //slotID:1
961                                 internal var connector:IHirobaConnector;                        //slotID:2
962                                 internal var succeeded:Boolean;                                 //slotID:3
963                                 internal var client:HirobaConnectorClient;                      //slotID:4
964                                 internal var onConnectionFailed:Function;                       //slotID:5
965                                 internal var onDisconnected:Function;                           //slotID:6
966                                 internal var onConnected:Function;                              //slotID:7
967
968                                 connector = null;
969                                 client = null;
970                                 onConnectionFailed = null;
971                                 onDisconnected = null;
972                                 onConnected = null;
973                                 swf = hug1;
974                                 onConnectionFailed = function(hug1:HirobaErrorEvent):void{      //MethodID:63, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 37
975                                         systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
976                                         _logManager.observer.onHirobaConnected(false, hug1.text, hug1.referer);
977                                 };
978
979                                 onDisconnected = function(hug1:HirobaErrorEvent):void{  //MethodID:64, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 36
980                                         systemMessage.informln(__MSG__("広場の接続中にエラーが発生"));
981                                         _logManager.observer.onHirobaDisconnected(hug1.text, hug1.referer);
982                                 };
983
984                                 onConnected = function(hug1:Boolean, hug2:String, hug3:String):void{    //MethodID:66, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 243
985                                         internal var succeeded:Boolean;                                 //slotID:1
986                                         internal var status:String;                                     //slotID:2
987                                         internal var referer:String;                                    //slotID:3
988
989                                         succeeded = hug1;
990                                         status = hug2;
991                                         referer = hug3;
992
993                                         if((referer == HirobaEventReferer.HIROBA_AGENT) && succeeded){
994                                                 _logManager.observer.onHirobaConnected(true, status, referer);
995
996                                                 return;
997                                         }
998
999                                         if(!succeeded){
1000                                                 systemMessage.informln(__MSG__("広場の接続に失敗"));
1001                                                 _logManager.observer.onHirobaConnected(false, status, referer);
1002
1003                                                 return;
1004                                         }
1005
1006                                         systemMessage.informln(__MSG__("広場の接続に成功"));
1007                                         _logManager.observer.onHirobaConnected(true, status, referer);
1008                                         hirobaPlayer.onClickedLink.add(function():void{ //MethodID:65, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
1009                                                 if(videoController) videoController.stop();
1010                                         });
1011
1012                                         hirobaPlayer.connector = connector;
1013
1014                                         if(commentRouter) commentRouter.addHiroba(hirobaPlayer);
1015
1016                                         if(marqueeClient && marqueeClient.marqueePlayer) client.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
1017
1018                                         hirobaConnectorClient = client;
1019
1020                                         nicoViewController.onHirobaInitialized();
1021                                 };
1022
1023                                 connector = IHirobaConnector(swf);
1024                                 succeeded = (connector != null);
1025
1026                                 if(!succeeded){
1027                                         systemMessage.informln(__MSG__("広場の接続に失敗"));
1028                                         _logManager.observer.onHirobaConnected(false, HirobaErrorStatus.HIROBA_CONNECTOR_NOT_FOUND, HirobaEventReferer.NICO_PLAYER);
1029
1030                                         return;
1031                                 }
1032
1033                                 client = new HirobaConnectorClient(new HirobaMessageServerInfo(getFLV, configure.GETFLV_URL, getGetFLVAPIParams()), initializeInfo.userID, keygen, function():Number{   //MethodID:62, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 25
1034                                         return (playerConfig.isMute ? 0 : playerConfig.volume);
1035                                 });
1036
1037                                 client.checkList = getChecklist;
1038
1039                                 connector.initialize(client);
1040                                 connector.addEventListener(HirobaErrorEvent.CONNECTION_FAIL, onConnectionFailed);
1041                                 connector.addEventListener(HirobaErrorEvent.DISCONNECTED, onDisconnected);
1042                                 connector.addEventListener(HirobaEvent.CLICKED_LINK, function(hug1:Event):void{ //MethodID:67, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 15
1043                                         if(videoController) videoController.stop();
1044                                 });
1045                                 connector.connect(onConnected);
1046                         }, this.configure.HIROBACONNECTOR_SWF_URL, {v:this.playerVersion.hirobaconnector});
1047                         EventSequence.current.next();
1048                 }
1049
1050                 private function prepareVideo():void
1051                 {       //MethodID:71, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 570
1052                         internal var videoWidth:int;                                    //slotID:1
1053                         internal var videoHeight:int;                                   //slotID:2
1054
1055                         this.nicoViewControllerClient.video = null;
1056                         this.nicoViewControllerClient.videoController = null;
1057
1058                         if(!this.videoLayerManager){
1059                                 this.videoLayerManager = new VideoLayerManager(this.nicoViewController.videoBase, this.playerConfig.aspectRatio);
1060
1061                                 if(this.playerConfig.deepenedComment){
1062                                         ObjectUtils.callLater(function():void{  //MethodID:70, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
1063                                                 videoLayerManager.deepenComment();
1064                                         });
1065                                 }
1066
1067                                 this.nicoViewControllerClient.videoLayerManager = this.videoLayerManager;
1068                         }else{
1069                                 this.videoLayerManager.refreshLayers();
1070                         }
1071
1072                         if(!this.pluginClient.hasInitialized("videoLayerManager")) this.pluginClient.setProperty("videoLayerManager", this.videoLayerManager);
1073
1074                         videoWidth = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
1075                         videoHeight = ((this.flashVars.isWide || this._isPlaylist) ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT);
1076
1077                         if(this.video && this.video.isInitialized){
1078                                 this.video.close();
1079
1080                                 this.video = null;
1081                         }
1082
1083                         this.video = new VideoWrapper(this.videoLayerManager.videoLayer, this.getFLV, this.configure, this.flashVars, videoWidth, videoHeight);
1084                         this.nicoViewControllerClient.video = this.video;
1085                         this.videoController = new VideoController(this.video, this.playerConfig, this.initializeInfo.isPremium, this._isPlaylist);
1086                         this.nicoViewControllerClient.videoController = this.videoController;
1087
1088                         if(this._logManager){
1089                                 this.video.onVideoLoadComplete.add(this._logManager.observer.onVideoLoadCompleted);
1090                                 this.video.onVideoBufferingStarted.add(this._logManager.observer.onVideoBufferingStarted);
1091                         }
1092
1093                         if(this.playlistController) this.playlistController.videoController = this.videoController;
1094
1095                         if(!this.pluginClient.hasInitialized("videoController")) this.pluginClient.setProperty("videoController", this.videoController);
1096
1097                         if(this._onChangedVideoStatus != null) this.video.onChangedVideoStatus.add(this._onChangedVideoStatus);
1098
1099                         if(this.vposWatcher) this.vposWatcher.kill();
1100
1101                         this.vposWatcher = new VposWatcher(this.video);
1102
1103                         if(this.videoLoadGuardian != null) this.videoLoadGuardian.destroy();
1104
1105                         this.videoLoadGuardian = new VideoLoadGuardian(this.video, this.initializeInfo.isPremium);
1106
1107                         if(this.nicoViewControllerClient.videoLoadWatcher == null) this.nicoViewControllerClient.videoLoadWatcher = new VideoLoadWatcher();
1108                         EventSequence.current.next();
1109                 }
1110
1111                 private function prepareCommentLists():void
1112                 {       //MethodID:73, LocalCount= 2 , MaxScope= 2, MaxStack= 12, CodeLength= 597
1113                         internal var normalThreadID:String;                             //slotID:1
1114                         internal var leafMode:Boolean;                                  //slotID:2
1115                         internal var clear:Function;                                    //slotID:3
1116                         internal var filtered:CommentPoolContainer;                     //slotID:4
1117
1118                         filtered = null;
1119                         clear = function():void{        //MethodID:72, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 150
1120                                 nicoViewControllerClient.commentListContainer = null;
1121                                 nicoViewControllerClient.nicoSClient = null;
1122
1123                                 if(nicosClient) nicosClient.clear();
1124
1125                                 if(nicosPlayer) nicosPlayer.clear();
1126
1127                                 nicosClient = null;
1128                                 privateCommentList = null;
1129                                 commentList = null;
1130                                 nicoSCommentList = null;
1131                                 ownerCommentList = null;
1132                                 localCommentList = null;
1133
1134                                 delete commentListContainer[CommentConstants.CL_PRIVATE];
1135                                 delete commentListContainer[CommentConstants.CL_MAIN];
1136                                 delete commentListContainer[CommentConstants.CL_NICOS];
1137                                 delete commentListContainer[CommentConstants.CL_OWNER];
1138                                 delete commentListContainer[CommentConstants.CL_LOCAL];
1139                         };
1140
1141                         clear();
1142
1143                         normalThreadID = this.getFLV.threadID;
1144                         leafMode = (((this.playerInfo.leafFilter.indexOf(this.getFLV.messageServerURL) != (-1)) || (this.flashVars.leafSwitch != NicoFlashVars.LEAF_DISABLE)) && this.playerConfig.isEnabledLeafMode);
1145
1146                         if(this.flashVars.isCommunityThread){
1147                                 this.privateCommentList = new CommentList(this.getFLV.threadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_PRIVATE, this.flashVars.isMymemory, leafMode);
1148                                 this.commentListContainer[CommentConstants.CL_PRIVATE] = this.privateCommentList;
1149                                 this.mainCommentListName = CommentConstants.CL_PRIVATE;
1150                                 normalThreadID = this.getFLV.optionalThreadID;
1151                         }
1152
1153                         if(this.getFLV.nicoSThreadID){
1154                                 this.nicoSCommentList = new CommentList(this.getFLV.nicoSThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_NICOS);
1155                                 this.commentListContainer[CommentConstants.CL_NICOS] = this.nicoSCommentList;
1156                         }
1157
1158                         this.commentList = new CommentList(normalThreadID, this.getFLV.videoLength, this.commentStorage, CommentConstants.CL_MAIN, this.flashVars.isMymemory, leafMode);
1159                         this.commentListContainer[CommentConstants.CL_MAIN] = this.commentList;
1160
1161                         if(this.flashVars.hasOwnerThread){
1162                                 this.nicosClient = new NicoSClient(this.nicosPlayer, this.videoController, this.videoLayerManager, this.jumper, this.flashVars, null, null, this.nicoSCommentList, this.playerConfig, this._isPlaylist);
1163                                 this.ownerCommentList = new OwnerCommentList(normalThreadID, this.commentStorage, this.nicosClient, new RegisterBGM(this.configure));
1164                                 this.commentListContainer[CommentConstants.CL_OWNER] = this.ownerCommentList;
1165                         }
1166
1167                         this.localCommentList = new LocalCommentList();
1168                         this.commentListContainer[CommentConstants.CL_LOCAL] = this.localCommentList;
1169                         this.nicoViewControllerClient.commentListContainer = this.commentListContainer;
1170                         this.nicoViewControllerClient.nicoSClient = this.nicosClient;
1171
1172                         if(!this.pluginClient.hasInitialized("commentListContainer")) this.pluginClient.setProperty("commentListContainer", this.commentListContainer);
1173
1174                         if(!this.nicoViewControllerClient.filteredCommentPoolContainers) this.nicoViewControllerClient.filteredCommentPoolContainers = [];
1175
1176                         if(!this.pluginClient.hasInitialized("filteredCommentPoolContainer")){
1177                                 filtered = new CommentPoolContainer();
1178
1179                                 this.pluginClient.setProperty("filteredCommentPoolContainer", filtered);
1180                                 this.nicoViewControllerClient.filteredCommentPoolContainers.push(filtered);
1181                         }
1182
1183                         EventSequence.current.next();
1184                 }
1185
1186                 private function initializeModelAndView():void
1187                 {       //MethodID:74, LocalCount= 3 , MaxScope= 1, MaxStack= 9, CodeLength= 768
1188                         var hug2:GetRelation = null;
1189                         this.nicoViewControllerClient.commentLayer = null;
1190                         this.nicoViewControllerClient.commentLayerView = null;
1191                         this.nicoViewControllerClient.commentViewTransformer = null;
1192                         this.nicoViewControllerClient.jumpMessageLayer = null;
1193                         this.nicoViewControllerClient.replacer = null;
1194                         this.nicoViewControllerClient.channelReplacer = null;
1195                         this.nicoViewControllerClient.deleteFilter = null;
1196                         this.nicoViewControllerClient.externalClient = null;
1197
1198                         this.initializeCommentLayerView();
1199
1200                         this.nicoViewControllerClient.commentLayer = this.commentLayer;
1201                         this.nicoViewControllerClient.commentLayerView = this.commentLayerView;
1202                         this.nicoViewControllerClient.commentViewTransformer = this.commentViewTransformer;
1203
1204                         if(this.nicosClient){
1205                                 this.nicosClient.commentLayerView_ = this.commentLayerView;
1206                                 this.nicosClient.commentLayer_ = this.commentLayer;
1207                         }
1208
1209                         this.jumpMsgLayer = new JumpMessageLayer(this.videoLayerManager.jumpMsgLayer);
1210                         this.nicoViewControllerClient.jumpMessageLayer = this.jumpMsgLayer;
1211                         this.replacer = new Replacer(this.getFLV.ownerFilter, this.configure.GET_CONFIGURE_NGWORD, this.flashVars.watchID, this.initializeInfo.isNGMaintenance, (this.isThumbWatchMode ? null : this.flashVars.watchFlashVars.csrfToken));
1212                         this.nicoViewControllerClient.replacer = this.replacer;
1213
1214                         if(this.getFLV.channelFilter){
1215                                 this.channelReplacer = new ChannelReplacer(this.getFLV.channelFilter);
1216                                 this.nicoViewControllerClient.channelReplacer = this.channelReplacer;
1217                         }
1218
1219                         var hug1:Object = {};
1220
1221                         if(this.commentList) hug1[CommentConstants.CL_MAIN] = this.commentList;
1222
1223                         if(this.nicoSCommentList) hug1[CommentConstants.CL_NICOS] = this.nicoSCommentList;
1224
1225                         if(this.privateCommentList) hug1[CommentConstants.CL_PRIVATE] = this.privateCommentList;
1226
1227                         this.deleteFilter = new DeleteFilter(hug1, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isEditMode));
1228                         this.nicoViewControllerClient.deleteFilter = this.deleteFilter;
1229
1230                         if(!this.audioShutter){
1231                                 this.audioShutter = new ControllerShutter(AudioShutterConstants.END_OF_ENUM, "AUDIO");
1232                                 this.nicoViewControllerClient.audioShutter = this.audioShutter;
1233
1234                                 this.pluginClient.setProperty("audioShutter", this.audioShutter);
1235                         }
1236
1237                         if(!this.externalClient) this.externalClient = new ExternalClient();
1238                         this.externalClient.initialize(this.flashVars.watchID, this.video, this.videoController, this.playerConfig, this.initializeInfo.isPremium, (this.isThumbWatchMode ? false : this.flashVars.watchFlashVars.isOwnerThreadEditMode), (this.getFLV.nicoSThreadID != null));
1239
1240                         this.externalClient.localCommentList = this.localCommentList;
1241                         this.externalClient.ownerCommentList = this.ownerCommentList;
1242                         this.nicoViewControllerClient.externalClient = this.externalClient;
1243
1244                         this.video.onChangedVideoStatus.add(this.externalClient.onChangeVideoStatus);
1245
1246                         if(!this.commentShutter){
1247                                 this.commentShutter = new ControllerShutter(CommentShutterConstants.END_OF_ENUM, "COMMENT");
1248                                 this.nicoViewControllerClient.commentShutter = this.commentShutter;
1249
1250                                 if(this.playlistController != null) this.playlistController.commentShutter = this.commentShutter;
1251                         }
1252
1253                         if(this.nicosClient){
1254                                 this.nicosClient.audioShutter = this.audioShutter;
1255                                 this.nicosClient.commentShutter = this.commentShutter;
1256                         }
1257
1258                         if(!this.flashVars.forceRelationInvisible){
1259                                 hug2 = new GetRelation(HTTPUtils.loadXML, this.configure.GETRELATION_URL, this.flashVars.watchID, this.flashVars.category);
1260                                 this.relatedList = new RelatedVideoList(hug2, this.flashVars.noRelatedVideo);
1261                                 this.nicoViewControllerClient.relatedList = this.relatedList;
1262                         }
1263
1264                         EventSequence.current.next();
1265                 }
1266
1267                 private function initializeCommentRouter():void
1268                 {       //MethodID:78, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 271
1269                         this.nicoViewControllerClient.lockedComment = null;
1270                         this.nicoViewControllerClient.commentRouter = null;
1271
1272                         if(this.isThumbWatchMode && !this.flashVars.thumbFlashVars.thumbComment){
1273                                 EventSequence.current.next();
1274
1275                                 return;
1276                         }
1277
1278                         this.lockedComment = new LockedComment(this.getFLV.threadID, this.mainCommentListName, this.flashVars.watchFlashVars.isPostLocked, this.flashVars.watchFlashVars.isEditMode);
1279                         this.nicoViewControllerClient.lockedComment = this.lockedComment;
1280                         this.deleteFilter.lockedComment = this.lockedComment;
1281                         this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, this.lockedComment, this.nicosClient, this.initializeInfo.isPremium, this.channelReplacer);
1282
1283                         this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{   //MethodID:75, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 580
1284                                 var hug2:String = hug1;
1285
1286                                 switch(hug2){
1287                                 case CommentRouter.ERROR_POST_184:
1288                                         systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません"));
1289                                         break;
1290                                 case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
1291                                         systemMessage.alert(__MSG__("入力された@コメントは、以下のどちらかの理由で使用できません。<br />") + __MSG__("・存在しない<br />") + __MSG__("・投稿者以外は使えない<br />") + __MSG__("現在、動画閲覧者が使用できるのは、") + "<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s01\" target=\"_blank\">" + __MSG__("@ボタン(閲覧者用)") + "</a>、<a href=\"http://info.nicovideo.jp/help/player/script/90.html#s02\" target=\"_blank\">" + __MSG__("@ピザ") + "</a>" + __MSG__("の2つです。"));
1292                                         break;
1293                                 case CommentRouter.ERROR_POST_BUTTON_ONCE:
1294                                         systemMessage.informComment(__MSG__("@ボタンは、1視聴につき1つまでしかご利用になれません"));
1295                                         break;
1296                                 case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
1297                                         systemMessage.alert(__MSG__("@ボタンは現在[[a_tag_open]]プレミアム会員[[a_tag_close]]のみ使用可能です。", "<a href=\"http://www.nicovideo.jp/?p=premium_top&sec=at_button\" target=\"_blank\">", "</a>"));
1298                                         break;
1299                                 case CommentRouter.ERROR_POST_HIROBA:
1300                                         systemMessage.informComment(__MSG__("広場では@ボタンは使えません。"));
1301                                         break;
1302                                 case CommentRouter.ERROR_POST_INITIALIZE:
1303                                         systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です"));
1304                                         break;
1305                                 case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
1306                                         systemMessage.informComment(__MSG__("@ボタンの設定項目が足りません。"));
1307                                         break;
1308                                 case CommentRouter.ERROR_POST_SAME_COMMENT:
1309                                         systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
1310                                         break;
1311                                 case CommentRouter.ERROR_POST_CHANNEL_FILTER:
1312                                         systemMessage.informComment(__MSG__("入力されたコメントはこの動画では投稿できません。"));
1313                                         break;
1314                                 case CommentRouter.ERROR_POST_AT_COMMENT_DISABLED:
1315                                         systemMessage.informComment(__MSG__("この動画では@コメントは使えません。"));
1316                                         break;
1317                                 case CommentRouter.ERROR_POST_COMMAND_DISABLED:
1318                                         systemMessage.informComment(__MSG__("この動画ではコマンドは使えません。"));
1319                                         break;
1320                                 default:
1321                                         break;
1322                                 }
1323                         });
1324
1325                         if(this.flashVars.watchFlashVars.noAtPizza || this.isThumbWatchMode){
1326                                 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{     //MethodID:76, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
1327                                         if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
1328                                 });
1329                         }else{
1330                                 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{     //MethodID:77, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 40
1331                                         if(hug1.macroName == "ピザ"){
1332                                                 navigateToURL(new URLRequest(configure.PIZZA_URL), "_blank");
1333                                                 videoController.stop();
1334                                         }
1335                                 });
1336                         }
1337
1338                         if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
1339
1340                         this.nicoViewControllerClient.commentRouter = this.commentRouter;
1341                         EventSequence.current.next();
1342                 }
1343
1344                 private function initializeModelAndView4Watch():void
1345                 {       //MethodID:82, LocalCount= 3 , MaxScope= 2, MaxStack= 10, CodeLength= 1164
1346                         internal var linkURL:String;                                    //slotID:1
1347                         internal var pageURL:String;                                    //slotID:2
1348                         internal var messageHTML:String;                                //slotID:3
1349                         internal var onMarqueePlayerLoaded:Function;                    //slotID:4
1350                         internal var isUseVideoEnder:Boolean;                           //slotID:5
1351
1352                         linkURL = null;
1353                         pageURL = null;
1354                         messageHTML = null;
1355                         isUseVideoEnder = false;
1356                         this.nicoViewControllerClient.timeMachine = null;
1357                         this.nicoViewControllerClient.marqueeClient = null;
1358                         this.nicoViewControllerClient.frameRateBooster = null;
1359                         this.timeMachine = new TimeMachine(new Date(parseInt(this.getFLV.threadID, 10) * 1000));
1360                         this.nicoViewControllerClient.timeMachine = this.timeMachine;
1361
1362                         if(!this.frameRateBooster) this.frameRateBooster = new FrameRateBooster(stage);
1363
1364                         this.nicoViewControllerClient.frameRateBooster = this.frameRateBooster;
1365
1366                         if(this._isPlaylist && (this._shutterKeyLastClosed >= 0)){
1367                                 this.commentShutter.open(this._shutterKeyLastClosed);
1368
1369                                 this._shutterKeyLastClosed = -1;
1370                         }
1371
1372                         if(this.flashVars.isMymemory){
1373                                 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_MYMEMORY, __MSG__("マイメモリーはコメントできません"));
1374                         }else if(!this.getFLV.commentExpire && !this.flashVars.watchFlashVars.isOwnerThreadEditMode){
1375                                 if(this.flashVars.watchFlashVars.commentListPublicStatus == CommentListPublicStatus.MEMBER_ONLY){
1376                                         linkURL = (this.configure.CHANNEL_URL + (this.flashVars.isChannel ? "channel" : "community") + "/" + this.flashVars.communityGlobalID);
1377
1378                                         this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_CHANNEL_COMMUNITY, (("<a href=\"" + linkURL + "\"><u>") + (this.flashVars.isChannel ? __MSG__("コメントするにはチャンネルに入会してください") : __MSG__("コメントするにはコミュニティに入会してください")) + "</u></a>"));
1379                                 }else{
1380                                         this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_OTHER, "");
1381                                 }
1382                         }else if(this.flashVars.watchFlashVars.isCommentShuttered){
1383                                 this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_LOCKED, __MSG__("あなたはコメントを禁止されています"));
1384                         }
1385
1386                         if(!CrossSharedObject.isPersistable){
1387                                 if(!this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode) this.commentShutter.close(this._shutterKeyLastClosed = CommentShutterConstants.SHUTTER_NOSHAREDOBJECT, ("<p>" + __MSG__("ローカル記憶領域が使用できないため、コメント機能を制限をしています") + "</p>"));
1388
1389                                 if(!this._isShowedDialog){
1390                                         this._isShowedDialog = true;
1391
1392                                         this.systemMessage.informln(__MSG__("SharedObjectの初期に失敗しました。"));
1393
1394                                         pageURL = this._playerPageMyselfURL;
1395                                         messageHTML = ("<p><b>" + __MSG__("ローカル記憶領域の書き込みが出来ません。") + "</b></p>" + "<p>" + __MSG__("NG設定、音量設定の保存、ニコニコニュース、RSS、") + "<br>" + __MSG__("生放送開始のお知らせ、ユーザーが設定した@CMなど、") + "<br>" + __MSG__("プレーヤーの機能がご利用出来ない状態です。") + "<br>" + __MSG__("プレーヤーの各機能を有効にするため、Flashの設定を変更してください。") + "<br>" + "<a href=\"" + this.configure.NOSO_URL + "\" target=\"_blank\">ローカル記憶領域の設定を変更する方法について</a>" + "</p>");
1396
1397                                         this.systemMessage.alert(messageHTML);
1398                                 }
1399                         }
1400
1401                         if(this.flashVars.watchFlashVars.isEditMode){
1402                                 this.deleteFilter.onFinishedEdit = function(hug1:Boolean):void{ //MethodID:79, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 144
1403                                         var hug3:String = null;
1404                                         var hug4:String = null;
1405                                         var hug2:String = _playerPageMyselfURL;
1406
1407                                         if(!hug1){
1408                                                 if(flashVars.isMymemory){
1409                                                         hug3 = StringUtils.joinQuery(hug2, {edit:"mymemory"});
1410                                                         hug4 = ("<b>マイメモリーの編集に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
1411                                                 }else{
1412                                                         hug3 = StringUtils.joinQuery(hug2, {edit:"comment"});
1413                                                         hug4 = ("<b>編集の保存に失敗しました。</b>" + "再度編集しなおす場合は、以下のURLからお願いします。<br />" + "<a href=\"" + hug3 + "\">" + hug3 + "</a>");
1414                                                 }
1415
1416                                                 systemMessage.alert(hug4);
1417
1418                                                 return;
1419                                         }
1420
1421                                         navigateToURL(new URLRequest(hug2), "_self");
1422                                 };
1423                         }
1424
1425                         if(!this.flashVars.watchFlashVars.isNoMarquee && !this.flashVars.watchFlashVars.isEditMode && !this.flashVars.watchFlashVars.isOwnerThreadEditMode && CrossSharedObject.isPersistable){
1426                                 onMarqueePlayerLoaded = function():void{        //MethodID:80, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 94
1427                                         if(nicosClient) nicosClient.marqueePlayer = INicoMarqueePlayer(marqueeClient.marqueePlayer);
1428
1429                                         if(hirobaConnectorClient) hirobaConnectorClient.insertItemOnMarquee_0 = INicoMarqueePlayer(marqueeClient.marqueePlayer).interruptContent;
1430
1431                                         if(playlistController) playlistController.marqueeClient = marqueeClient;
1432                                         pluginClient.setProperty("marqueeClient", marqueeClient);
1433                                         commentRouter.addMarqueePlayer(marqueeClient.marqueePlayer);
1434                                 };
1435
1436                                 if(!this.marqueeClient) this.marqueeClient = new MarqueeClient(this.configure.MARQUEE_PLAYER_URL, this.playerVersion, this.playerInfo, this.nicoViewController.marqueeBase, this.videoLayerManager, this.playerConfig, this.initializeInfo, onMarqueePlayerLoaded);
1437
1438                                 if(this.nicosClient) this.nicosClient.marqueePlayer = INicoMarqueePlayer(this.marqueeClient.marqueePlayer);
1439
1440                                 this.marqueeClient.videoController = this.videoController;
1441                                 this.marqueeClient.flashVars = this.flashVars;
1442                                 this.nicoViewControllerClient.marqueeClient = this.marqueeClient;
1443                         }
1444
1445                         if(!this.flashVars.watchFlashVars.isNoAppli && !this.pluginClient.hasInitialized("videoDetail")) this.pluginClient.setProperty("videoDetail", new VideoDetail(this.flashVars.category, this.flashVars.videoDetail));
1446                         function():void{        //MethodID:81, LocalCount= 5 , MaxScope= 0, MaxStack= 23, CodeLength= 193
1447                                 if(_isPlaylist) return;
1448
1449                                 var hug1:* = new RemoconNotifier(configure.REMOCON_ALERT_SWF_URL + "?" + playerVersion.remoconAlert);
1450                                 var hug2:* = new RemoconFullScreenKeeper(playerConfig, externalClient);
1451                                 var hug3:* = new RemoconPlayerStateObserver(externalClient.udpateRemoconState, hug1, hug2);
1452
1453                                 commentRouter.onCommentPostErorr.add(hug3.onCommentRouterPostError);
1454
1455                                 var hug4:* = new RemoconClient(hug3, hug1, RemoconState.instance);
1456
1457                                 RemoconReceiver.initialize({videoController:videoController, playerConfig:playerConfig, commentRouter:commentRouter, isPremium:initializeInfo.isPremium, stateObserver:hug3, notifier:hug1, userID:initializeInfo.userID, userNasme:initializeInfo.nickname, commentShutter:commentShutter, audioShutter:audioShutter, fullScreenKeeper:hug2}, defineRemoconMethods);
1458                                 hug2.start();
1459
1460                                 nicoViewControllerClient.remoconClient = hug4;
1461                         }();
1462
1463                         this.nicoViewControllerClient.defaultMylistAppender = new DefaultMylistAppender(HTTPUtils.loadJSON, this.configure.MYLIST_ADD_API_URL, this.getFLV.threadID, this.flashVars.watchFlashVars.noDeflistAdd, this.flashVars.watchFlashVars.csrfToken);
1464
1465                         if(this.nicoViewControllerClient.videoenderTesterConfig == null){
1466                                 if(this._isPlaylist){
1467                                         isUseVideoEnder = (this.playlistFlashVars && this.playlistFlashVars.useVideoEnder);
1468                                 }else{
1469                                         isUseVideoEnder = (this.flashVars.watchFlashVars && this.flashVars.watchFlashVars.useVideoEnder);
1470                                 }
1471
1472                                 this._videoenderTesterConfig = new VideoenderTesterConfig(isUseVideoEnder);
1473                                 this.nicoViewControllerClient.videoenderTesterConfig = this._videoenderTesterConfig;
1474                         }
1475
1476                         EventSequence.current.next();
1477                 }
1478
1479                 private function initializeSponsorVideo():void
1480                 {       //MethodID:85, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 169
1481                         internal var url:String;                                        //slotID:1
1482                         internal var info:GetSponsorInfo;                               //slotID:2
1483
1484                         info = null;
1485                         this.nicoViewControllerClient.getSponsorInfo = null;
1486
1487                         if(!this.isThumbWatchMode && (this.flashVars.isMymemory || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode)){
1488                                 EventSequence.current.next();
1489
1490                                 return;
1491                         }
1492
1493                         url = StringUtils.joinQuery(this.configure.GETSPONSOR_API_URL, {limit:"4", videoid:this.flashVars.originalVideoID});
1494                         info = new GetSponsorInfo(url, function(hug1:Boolean):void{     //MethodID:84, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 213
1495                                 internal var succeeded:Boolean;                                 //slotID:1
1496                                 internal var layer:*;                                           //slotID:2
1497                                 internal var userSponsorSWFURL:*;                               //slotID:3
1498                                 internal var otherSponsorLink:*;                                //slotID:4
1499                                 internal var youAlsoLink:*;                                     //slotID:5
1500
1501                                 layer = undefined;
1502                                 otherSponsorLink = undefined;
1503                                 youAlsoLink = undefined;
1504                                 succeeded = hug1;
1505
1506                                 if(!succeeded || (info.sponsorInfoList.length == 0)) return;
1507
1508                                 layer = videoLayerManager.createOptionalLayer(VideoLayerManager.OPTIONAL_LAYER_SPONSORVIDEOLAYER);
1509                                 userSponsorSWFURL = StringUtils.joinQuery(configure.USERSPONSOR_MOVIE_URL, {t:playerVersion.userSponsorMovie});
1510                                 otherSponsorLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player");
1511                                 youAlsoLink = (StringUtils.joinQuery(configure.OTHERSPONSOR_URL, {vid:flashVars.originalVideoID}) + "&video_player_also");
1512
1513                                 if(video.hasLoaded){
1514                                         HTTPUtils.loadSWF(function(hug1:*):void{        //MethodID:83, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 76
1515                                                 if(hug1){
1516                                                         userSponsorVideo = IUserSponsorVideo(hug1);
1517
1518                                                         userSponsorVideo.initialize(new UserSponsorVideoClient(info, layer, otherSponsorLink, youAlsoLink, ICapturableVideoContainer(videoController.videoWrapper), vposWatcher));
1519                                                         video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
1520                                                 }
1521                                         }, userSponsorSWFURL, {});
1522                                 }else{
1523                                         video.appendVideo(ChildVideoName.USER_SPONSOR, userSponsorVideo);
1524                                 }
1525                         });
1526
1527                         this.nicoViewControllerClient.getSponsorInfo = info;
1528
1529                         EventSequence.current.next();
1530                 }
1531
1532                 private function loadConfirm():void
1533                 {       //MethodID:87, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 24
1534                         this.videoLoadGuardian.loadStart(EventSequence.bind(function(hug1:Boolean):void{        //MethodID:86, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 144
1535                                 var hug2:* = undefined;
1536
1537                                 if(hug1){
1538                                         EventSequence.current.next();
1539                                 }else if(!isThumbWatchMode){
1540                                         if(_isPlaylist && playlistController){
1541                                                 playlistController.onError(PlaylistErrorManager.VIDEO_LOAD_STOP);
1542                                         }else{
1543                                                 hug2 = _playerPageMyselfURL;
1544
1545                                                 SystemMessage.instance.alert(("<p><b>" + __MSG__("動画の読み込みができません。") + "</b></p>" + "<p>" + __MSG__("別のタブかウィンドウで、動画をいくつか読み込み中です。<br />") + __MSG__("読み込みが完了してから再度アクセスしてください。<br />") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードする</a>", hug2) + "</p>");
1546                                         }
1547                                 }
1548                         }));
1549                 }
1550
1551                 private function initializePlugin():void
1552                 {       //MethodID:91, LocalCount= 2 , MaxScope= 2, MaxStack= 9, CodeLength= 208
1553                         internal var loader:ApplibarLoader;                             //slotID:1
1554
1555                         loader = null;
1556
1557                         if(this.flashVars.watchFlashVars.isNoAppli || this.flashVars.watchFlashVars.isEditMode || this.flashVars.watchFlashVars.isOwnerThreadEditMode || !CrossSharedObject.isPersistable){
1558                                 EventSequence.current.next();
1559
1560                                 return;
1561                         }
1562
1563                         loader = new ApplibarLoader(this.configure.APPLIBAR_URL, {v:this.playerVersion.applibar}, this.initializeInfo.userID, this.flashVars.watchFlashVars.bootApp, this.playerConfig, this.flashVars.watchFlashVars.appliInstalled, this.flashVars.watchFlashVars.isAppliPromotion);
1564
1565                         loader.onLoaded.add(function(hug1:Boolean):void{        //MethodID:88, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 26
1566                                 if(!hug1) return;
1567
1568                                 nicoViewControllerClient.applibarLoader = loader;
1569
1570                                 loader.setPluginClient(pluginClient);
1571                         });
1572                         loader.onPageOpen.add(function():void{  //MethodID:89, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
1573                                 if(videoController.isPlaying) videoController.stop();
1574                         });
1575                         this._playlistSequences.forEach(function(hug1:Function, hug2:int, hug3:Array):Boolean{  //MethodID:90, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 22
1576                                 if(hug1 == initializePlugin){
1577                                         _playlistSequences.splice(hug2, 1);
1578
1579                                         return false;
1580                                 }
1581
1582                                 return true;
1583                         });
1584                         EventSequence.current.next();
1585                 }
1586
1587                 private function _delayVideo():void
1588                 {       //MethodID:93, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 101
1589                         internal var delay:Number;                                      //slotID:1
1590                         internal var timer:Timer;                                       //slotID:2
1591                         internal var handler:Function;                                  //slotID:3
1592
1593                         timer = null;
1594                         handler = null;
1595                         delay = PlayDelay.getPlayDelayTime(this.initializeInfo.isPremium, this.isThumbWatchMode);
1596                         timer = new Timer(delay, 1);
1597                         handler = EventSequence.bind(function():void{   //MethodID:92, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 40
1598                                 timer.stop();
1599                                 timer.reset();
1600                                 timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler);
1601                                 EventSequence.current.next();
1602                         });
1603                         timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler);
1604                         timer.start();
1605                 }
1606
1607                 private function _loadVideo():void
1608                 {       //MethodID:97, LocalCount= 5 , MaxScope= 2, MaxStack= 10, CodeLength= 779
1609                         internal var barrier:EventBarrier;                              //slotID:1
1610                         internal var succeeded_all:Boolean;                             //slotID:2
1611                         internal var bgmNeeded:Boolean;                                 //slotID:3
1612                         internal var bgmVideos:Object;                                  //slotID:4
1613                         internal var cmVideos:Object;                                   //slotID:5
1614                         internal var bgmInfo:BGMVideoInfo;                              //slotID:6
1615                         internal var bgmVideo:IVideo;                                   //slotID:7
1616                         internal var container:Sprite;                                  //slotID:8
1617
1618                         succeeded_all = false;
1619                         bgmNeeded = false;
1620                         bgmVideos = null;
1621                         cmVideos = null;
1622                         bgmInfo = null;
1623                         bgmVideo = null;
1624                         container = null;
1625
1626                         if(this._logManager) this._logManager.observer.onVideoLoadStarted();
1627
1628                         barrier = new EventBarrier();
1629                         succeeded_all = true;
1630
1631                         this.systemMessage.informln(__MSG__("動画の読み込みを開始"));
1632
1633                         if((this.getFLV.videoProtocol == "rtmp") || (this.getFLV.videoProtocol == "rtmpe") || (this.getFLV.videoProtocol == "rtmpt") || (this.getFLV.videoProtocol == "rtmpte")) this.systemMessage.informln(__MSG__("動画に接続"));
1634
1635                         this.video.isRetryable = false;
1636
1637                         this.video.load(barrier.bind(function(hug1:Boolean):void{       //MethodID:94, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 110
1638                                 succeeded_all = (succeeded_all && hug1);
1639
1640                                 if(!hug1 && !isThumbWatchMode && _logManager) _logManager.observer.onVideoLoadErrorOccurred();
1641
1642                                 if(_startVposConfig.halfwayStartEnabled) _startVposConfig.judgebyVideoLength(video);
1643
1644                                 if(!_startVposConfig.halfwayStartEnabled){
1645                                         nicoViewController.initVideoEventPipe(vposWatcher);
1646                                         nicoViewController.onVideoInitialized(hug1);
1647                                 }
1648
1649                                 _videoLoadSucceeded = hug1;
1650                         }));
1651
1652                         bgmNeeded = Boolean(this.BGMVideoInfos.length != 0);
1653
1654                         bgmVideos = {};
1655                         cmVideos = {};
1656
1657                         if(this.flashVars.watchFlashVars && !this.flashVars.watchFlashVars.isOwnerThreadEditMode || this.flashVars.thumbFlashVars && this.BGMVideoInfos && bgmNeeded){
1658                                 for each(bgmInfo in this.BGMVideoInfos){
1659                                         if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
1660                                                 container = new Sprite();
1661
1662                                                 container.graphics.beginFill(0);
1663                                                 container.graphics.drawRect(0, 0, NicoSConstants.ATBGM_VIDEO_WIDTH, NicoSConstants.ATBGM_VIDEO_HEIGHT);
1664                                         }else{
1665                                                 container = new MovieClip();
1666
1667                                                 container.graphics.beginFill(0);
1668                                                 container.graphics.drawRect(0, 0, NicoSConstants.ATCM_VIDEO_WIDTH, NicoSConstants.ATCM_VIDEO_HEIGHT);
1669                                         }
1670
1671                                         container.graphics.endFill();
1672
1673                                         switch(bgmInfo.movieType){
1674                                         case VideoType.FLV:
1675                                         case VideoType.MP4:
1676                                                 bgmVideo = new FLVVideo(bgmInfo.URL, container, -1);
1677                                                 break;
1678                                         case VideoType.SWF:
1679                                                 bgmVideo = new SWFVideo(bgmInfo.URL, container, NaN, false, "", null, "", bgmInfo.isAS3);
1680                                                 break;
1681                                         default:
1682                                                 throw new Error("未定義のBGMタイプ:" + bgmInfo.movieType);
1683                                                 break;
1684                                         }
1685
1686                                         if(bgmInfo.type == BGMVideoInfo.TYPE_BGM){
1687                                                 bgmVideos[bgmInfo.ID] = bgmVideo;
1688                                         }else{
1689                                                 cmVideos[bgmInfo.ID] = bgmVideo;
1690                                         }
1691
1692                                         bgmVideo.load(barrier.bind(function(hug1:Boolean):void{ //MethodID:95, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 102
1693                                                 if(!succeeded_all) return;
1694
1695                                                 succeeded_all = (succeeded_all && hug1);
1696
1697                                                 if(!hug1){
1698                                                         if(!isThumbWatchMode) SystemMessage.instance.alert("<p><b>" + __MSG__("引用動画の読み込みに失敗") + "</b></p>" + "<p>" + __MSG__("問題解消に向けて努力しております。") + "<br />" + __MSG__("しばらく時間をおいて再度アクセスしてみて下さい。") + "</p>");
1699
1700                                                         return;
1701                                                 }
1702                                         }));
1703                                 }
1704                         }
1705
1706                         barrier.finish(EventSequence.bind(function():void{      //MethodID:96, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 145
1707                                 var hug1:* = undefined;
1708                                 var hug2:* = undefined;
1709                                 _wholeVideoLoadSucceeded = succeeded_all;
1710
1711                                 if(!succeeded_all){
1712                                         EventSequence.current.next();
1713
1714                                         return;
1715                                 }
1716
1717                                 if(bgmNeeded){
1718                                         hug1 = {};
1719
1720                                         for(hug2 in cmVideos){
1721                                                 hug1[hug2] = cmVideos[hug2].movieClip;
1722                                         }
1723
1724                                         nicosClient.setBGMVideos(bgmVideos, hug1);
1725                                 }
1726
1727                                 if(getFLV.deleted == 0) PlayDelay.countUp();
1728
1729                                 if(marqueeClient) marqueeClient.load();
1730                                 EventSequence.current.next();
1731                         }));
1732                 }
1733
1734                 private function initializeLogger():void
1735                 {       //MethodID:98, LocalCount= 1 , MaxScope= 1, MaxStack= 13, CodeLength= 63
1736                         this._logManager.initialize(this.initializeInfo, this.configure, this.flashVars, this.getFLV, this.playerConfig, this.playerInfo, this, this.isThumbWatchMode, this.video, this, this._isPlaylist, this._videoenderTesterConfig);
1737                         EventSequence.current.next();
1738                 }
1739
1740                 private function initializeCommentLists():void
1741                 {       //MethodID:102, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 241
1742                         internal var barrier:EventBarrier;                              //slotID:1
1743                         internal var error:CommentStorageError;                         //slotID:2
1744                         internal var init_handler:Function;                             //slotID:3
1745
1746                         barrier = null;
1747                         error = null;
1748                         init_handler = null;
1749                         init_handler = function(hug1:CommentStorageError):void{ //MethodID:99, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 38
1750                                 var hug2:CommentStorageError = hug1;
1751                                 error = hug2;
1752
1753                                 if(!(error || hug2)) return;
1754                                 barrier.finish();
1755                         };
1756
1757                         if(this.nicosClient) this.nicosClient.setup();
1758                         this.systemMessage.informln(__MSG__("コメントサーバーへの接続を開始"));
1759
1760                         barrier = new EventBarrier();
1761                         error = null;
1762
1763                         this.commentList.onCommentPostFinished.add(function(hug1:String, hug2:int, hug3:int):void{      //MethodID:100, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 63
1764                                 var hug4:XMLList = null;
1765
1766                                 if(hug2 == MessageServerClient.POST_INVALID_THREAD){
1767                                         hug4 = playerInfo.getThreadError;
1768
1769                                         if(hug4 && (hug4.post_invalid_thread != "")) SystemMessage.instance.alert(hug4.post_invalid_thread);
1770                                 }
1771                         });
1772                         this.commentList.initialize(barrier.bind(init_handler));
1773
1774                         if(this.flashVars.isCommunityThread) this.privateCommentList.initialize(barrier.bind(init_handler));
1775
1776                         if(this.nicoSCommentList) this.nicoSCommentList.initialize(barrier.bind(init_handler));
1777
1778                         if(this.flashVars.hasOwnerThread) this.ownerCommentList.initialize(barrier.bind(init_handler));
1779                         barrier.finish(function():void{ //MethodID:101, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 201
1780                                 var hug1:String = null;
1781
1782                                 if(error){
1783                                         if(error.isInLowerLayer){
1784                                                 systemMessage.informln(__MSG__("コメントサーバーへの接続に失敗"));
1785                                         }else{
1786                                                 systemMessage.informln(threadStatusCodeToMessage(error.status));
1787                                         }
1788
1789                                         nicoViewController.onCommentListInitialized(false);
1790
1791                                         return;
1792                                 }
1793
1794                                 systemMessage.informln(__MSG__("コメントサーバーへの接続に成功"));
1795
1796                                 if(flashVars.thumbFlashVars && flashVars.thumbFlashVars.thumbComment || !isThumbWatchMode && !flashVars.isMymemory){
1797                                         for(hug1 in commentListContainer){
1798                                                 commentRouter.add(hug1, commentListContainer[hug1]);
1799                                         }
1800                                 }
1801
1802                                 nicoViewController.onCommentListInitialized(true);
1803                                 setupCommentListEventPipes();
1804                         });
1805                         EventSequence.current.next();
1806                 }
1807
1808                 private function setupCommentListEventPipes():void
1809                 {       //MethodID:103, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
1810                         var hug1:ICommentList = null;
1811
1812                         this.nicoViewController.initCommentEventPipe();
1813
1814                         for each(hug1 in this.commentListContainer){
1815                                 hug1.serveCommentList();
1816                         }
1817                 }
1818
1819                 private function beginToPlayVideo():void
1820                 {       //MethodID:108, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 216
1821                         internal var alreadyBegan:Boolean;                              //slotID:1
1822                         internal var begin:Function;                                    //slotID:2
1823                         internal var vpos:Number;                                       //slotID:3
1824
1825                         alreadyBegan = false;
1826                         vpos = NaN;
1827                         begin = function():void{        //MethodID:104, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 129
1828                                 if(_startVposConfig.halfwayStartEnabled) nicoViewController.initVideoEventPipe(vposWatcher);
1829
1830                                 if(isThumbWatchMode){
1831                                         if(!flashVars.thumbFlashVars.isP4Mode) videoController.play();
1832                                 }else{
1833                                         videoController.startToPlay(_startVposConfig.isAutoPlay || (nicoViewControllerClient.initializeInfo.isPremium && playerConfig.autoPlay));
1834
1835                                         if(!_wholeVideoLoadSucceeded) videoController.stop();
1836                                 }
1837
1838                                 if(_startVposConfig.halfwayStartEnabled) nicoViewController.onVideoInitialized(_videoLoadSucceeded);
1839                         };
1840
1841                         this.externalClient.onPlayerReady();
1842
1843                         if(this.isThumbWatchMode){
1844                                 begin();
1845
1846                                 return;
1847                         }
1848
1849                         if(this.flashVars.watchFlashVars.jumpReturnVideoID){
1850                                 vpos = this.flashVars.watchFlashVars.jumpPlayLength;
1851
1852                                 if(this._startVposConfig.halfwayStartEnabled) vpos += this.flashVars.watchFlashVars.jumpVPosPlayFrom;
1853
1854                                 vpos *= 1000;
1855
1856                                 this.vposWatcher.addWatchPoint(function():void{ //MethodID:106, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 97
1857                                         internal var params:Object;                                     //slotID:1
1858
1859                                         params = null;
1860
1861                                         videoController.stop();
1862
1863                                         params = {};
1864
1865                                         if(flashVars.watchFlashVars.jumpVPosReturnTo > 0) params.from = flashVars.watchFlashVars.jumpVPosReturnTo;
1866                                         SystemMessage.instance.informJumpMessage(function():void{       //MethodID:105, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 109
1867                                                 var hug1:Object = jumper.tossedObject;
1868                                                 var hug2:String = flashVars.watchFlashVars.jumpReturnVideoID;
1869                                                 var hug3:Object = {};
1870
1871                                                 if(hug1 && hug1.jumpHistory) hug3 = hug1.jumpHistory;
1872
1873                                                 hug3[flashVars.watchID] = true;
1874
1875                                                 jumper.jump(hug2, params, false, {jumpFrom:flashVars.watchID, jumpHistory:hug3, jumpHash_:(hug1 ? hug1.jumpHash : undefined)});
1876                                         }, (flashVars.watchFlashVars.jumpReturnMessage || __MSG__("元の動画にジャンプします")));
1877                                 }, vpos, 0x7FFFFFFF);
1878                         }
1879
1880                         if(!this._startVposConfig.halfwayStartEnabled){
1881                                 begin();
1882
1883                                 return;
1884                         }
1885
1886                         alreadyBegan = false;
1887
1888                         EventPipe.serial(new EventChunk(this.video, ["onVideoSeeked"]), this.videoController, EventSequence.bind(function(hug1:String, hug2:Array):EventResult{ //MethodID:107, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 28
1889                                 if(!alreadyBegan){
1890                                         alreadyBegan = true;
1891
1892                                         begin();
1893                                 }
1894
1895                                 return EventResult.BREAK;
1896                         }));
1897                         this.videoController.seek(this._startVposConfig.fromMsec, true);
1898                 }
1899
1900                 private function initializeCommentLayerView():void
1901                 {       //MethodID:109, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 343
1902                         this.commentLayer = new CommentLayer(this.videoLayerManager.commentLayer, this.playerConfig, this.initializeInfo.isPremium);
1903
1904                         this.commentLayer.addLayer(CommentLayerID.MAIN);
1905                         this.commentLayer.addLayer(CommentLayerID.OWNER);
1906
1907                         var hug1:Object = {};
1908
1909                         if(this.flashVars.isCommunityThread){
1910                                 hug1[CommentLayerID.MAIN] = [CommentConstants.CL_PRIVATE, CommentConstants.CL_LOCAL];
1911                                 hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
1912                                 hug1[CommentLayerID.OPTION] = [CommentConstants.CL_MAIN];
1913
1914                                 this.commentLayer.addLayer(CommentLayerID.OPTION, 0);
1915                                 this.commentLayer.setOptionalLayer(CommentLayerID.OPTION);
1916                         }else{
1917                                 hug1[CommentLayerID.MAIN] = [CommentConstants.CL_MAIN, CommentConstants.CL_LOCAL, CommentConstants.CL_NICOS];
1918                                 hug1[CommentLayerID.OWNER] = [CommentConstants.CL_OWNER];
1919                         }
1920
1921                         this.commentLayerView = new CommentLayerView(this, this.video, VideoLayerConstants.COMMENT_LAYER_SD_WIDTH, VideoLayerConstants.COMMENT_LAYER_SD_HEIGHT, this.getFLV.videoLength);
1922                         this.commentViewTransformer = new CommentViewTransformer(hug1, this.commentLayer, this.commentLayerView, (this.nicosClient ? this.nicosClient.player : null));
1923
1924                         if(this.isThumbWatchMode && this.flashVars.thumbFlashVars && this.flashVars.thumbFlashVars.isP4Mode) this.commentViewTransformer.setP4Mode();
1925                 }
1926
1927                 private function threadStatusCodeToMessage(hug1:int):String
1928                 {       //MethodID:110, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 415
1929                         var hug2:XMLList = null;
1930                         var hug3:int = hug1;
1931
1932                         switch(hug3){
1933                         case MessageServerClient.THREAD_FOUND:
1934                                 return __MSG__("...");
1935                         case MessageServerClient.THREAD_INVALID:
1936                                 return __MSG__("メッセージサーバーへの接続に失敗");
1937                         case MessageServerClient.THREAD_NOT_FOUND:
1938                                 hug2 = this.playerInfo.getThreadError;
1939
1940                                 if(hug2 && (hug2.thread_not_found != "")) SystemMessage.instance.alert(hug2.thread_not_found);
1941
1942                                 return __MSG__("スレッドが見つかりません");
1943                         case MessageServerClient.THREAD_VERSION:
1944                                 return __MSG__("プレイヤーのバージョンが不正");
1945                         case MessageServerClient.THREAD_INVALID_ADMINKEY:
1946                                 return __MSG__("AdminKeyが不正");
1947                         case MessageServerClient.THREAD_TOO_OLD_ADMINKEY:
1948                                 return __MSG__("AdminKeyが失効");
1949                         case MessageServerClient.THREAD_INVALID_WAYBACKKEY:
1950                                 return __MSG__("WaybackKeyが不正");
1951                         case MessageServerClient.THREAD_TOO_OLD_WAYBACKKEY:
1952                                 return __MSG__("WaybackKeyが失効");
1953                         case MessageServerClient.THREAD_INVALID_THREADKEY:
1954                                 return __MSG__("ThreadKeyが不正");
1955                         case MessageServerClient.THREAD_TOO_OLD_THREADKEY:
1956                                 return __MSG__("ThreadKeyが失効");
1957                         default:
1958                                 return __MSG__("不明なエラー:code=[code]", hug1);
1959                                 break;
1960                         }
1961                 }
1962
1963                 private function _loadThumbViewSWF():void
1964                 {       //MethodID:112, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
1965                         HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{     //MethodID:111, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 73
1966                                 if(!hug1) throw new Error("NicoPlayer._loadThumbViewSWF: load failure.");
1967
1968                                 if(!hug1 is MovieClip) throw new Error("NicoPlayer._loadThumbViewSWF: content is not MovieClip.");
1969                                 addChild(hug1 as DisplayObject);
1970
1971                                 (hug1 as DisplayObject).visible = false;
1972                                 nicoViewControllerClient.viewRoot = hug1;
1973
1974                                 EventSequence.current.next();
1975                         }), this.configure.THUMBPLAYER_VIEW_URL, {t:this.playerVersion.thumbplayerView});
1976                 }
1977
1978                 private function _loadThumbControllerSWF():void
1979                 {       //MethodID:114, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 42
1980                         HTTPUtils.loadSWF(EventSequence.bind(function(hug1:*):void{     //MethodID:113, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 67
1981                                 if(!hug1) throw new Error("NicoPlayer._loadThumbControllerSWF: load failure.");
1982
1983                                 nicoViewController = INicoViewController(hug1);
1984
1985                                 if(!nicoViewController) throw new Error("NicoPlayer._loadThumbControllerSWF: content is not INicoViewController.");
1986                                 nicoViewController.startInit(nicoViewControllerClient);
1987                                 EventSequence.current.next();
1988                         }), this.configure.THUMBPLAYER_CONTROLLER_URL, {t:this.playerVersion.thumbplayerController});
1989                 }
1990
1991                 private function _loadThumbVideoInfo():void
1992                 {       //MethodID:116, LocalCount= 2 , MaxScope= 2, MaxStack= 6, CodeLength= 148
1993                         internal var apiParams:Object;                                  //slotID:1
1994
1995                         apiParams = {};
1996                         apiParams["as3"] = "1";
1997                         apiParams["v"] = this.flashVars.watchID;
1998                         apiParams["k"] = this.flashVars.thumbFlashVars.thumbPlayKey;
1999
2000                         if(this.flashVars.forceLowMode) apiParams["lo"] = "1";
2001
2002                         if(this.flashVars.economyMode) apiParams["eco"] = this.flashVars.economyMode;
2003
2004                         this.getFLV = new GetFLV(this.configure.THUMBWATCH_URL, apiParams, EventSequence.bind(function(hug1:Boolean):void{      //MethodID:115, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 41
2005                                 nicoViewControllerClient.getFLVData = getFLV;
2006                                 initializeInfo = InitializeInfo.getInstance();
2007                                 nicoViewControllerClient.initializeInfo = initializeInfo;
2008
2009                                 EventSequence.current.next();
2010                         }));
2011                 }
2012
2013                 private function _initializeModelAndViewThumbWatch():void
2014                 {       //MethodID:119, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 118
2015                         if(this.flashVars.thumbFlashVars.thumbComment){
2016                                 this.commentRouter = new CommentRouter(this.flashVars, this.playerConfig, null, this.nicosClient, this.initializeInfo.isPremium);
2017
2018                                 this.commentRouter.onCommentPostErorr.add(function(hug1:String):void{   //MethodID:117, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 346
2019                                         var hug2:String = hug1;
2020
2021                                         switch(hug2){
2022                                         case CommentRouter.ERROR_POST_184:
2023                                                 systemMessage.informComment(__MSG__("チャンネルとコミュニティ動画では184コマンドを使用できません。"));
2024                                                 break;
2025                                         case CommentRouter.ERROR_POST_BUTTON_ARGUMENTS:
2026                                         case CommentRouter.ERROR_POST_BUTTON_ONCE:
2027                                         case CommentRouter.ERROR_POST_BUTTON_PREMIUM_ONLY:
2028                                         case CommentRouter.ERROR_POST_BUTTON_DISABLED:
2029                                                 systemMessage.informComment(__MSG__("@ボタンは、使用できません。"));
2030                                                 break;
2031                                         case CommentRouter.ERROR_POST_AT_COMMENT_UNDEFINED:
2032                                                 systemMessage.informComment(__MSG__("その@コメントは存在しないか、投稿者以外は使えないかのどちらかです。"));
2033                                                 break;
2034                                         case CommentRouter.ERROR_POST_INITIALIZE:
2035                                                 systemMessage.informComment(__MSG__("コメント投稿の準備が未完了です。"));
2036                                                 break;
2037                                         case CommentRouter.ERROR_POST_SAME_COMMENT:
2038                                                 systemMessage.informComment(__MSG__("同じコメントを連続で投稿することができません。"));
2039                                                 break;
2040                                         case CommentRouter.ERROR_POST_CHANNEL_FILTER:
2041                                                 systemMessage.informComment(__MSG__("入力されたコメントはチャンネルにより規制されています。"));
2042                                                 break;
2043                                         default:
2044                                                 break;
2045                                         }
2046                                 });
2047                                 this.commentRouter.onCommentHavingMacro.add(function(hug1:IMacroParserResult):void{     //MethodID:118, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
2048                                         if(hug1.macroName == "ピザ") systemMessage.informComment("@ピザは、使用できません。");
2049                                 });
2050
2051                                 if(this.nicosClient) this.nicosClient.commentRouter = this.commentRouter;
2052
2053                                 this.nicoViewControllerClient.commentRouter = this.commentRouter;
2054                         }
2055
2056                         EventSequence.current.next();
2057                 }
2058         }
2059 }
2060
2061 //■script002■
2062
2063 package{
2064
2065         import jp.nicovideo.nicoplayer.NicoPlayer
2066
2067         //■class(instance)_index:2
2068         public class nicoplayer extends NicoPlayer
2069         {
2070                 //static constructor
2071                 public static function nicoplayer$cinit()
2072                 {       //MethodID:121, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
2073                 }
2074
2075                 //constructor
2076                 public function nicoplayer()
2077                 {       //MethodID:122, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2078                         super();
2079                 }
2080         }
2081 }
2082
2083 //■script003■
2084
2085 package jp.nicovideo.ext.config{
2086
2087         //■class(instance)_index:3
2088         public interface IThumbConfig
2089         {
2090                 //static constructor
2091                 public static function IThumbConfig$cinit()
2092                 {       //MethodID:124, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2093                 }
2094
2095                 //variables/etc.
2096                 function get nicovideoURL():String;                                         //MethodID:125, dispID:0
2097
2098                 function get playerURL():String;                                            //MethodID:126, dispID:0
2099
2100                 //constructor
2101                 public function IThumbConfig();                                             //MethodID:127, dispID:0
2102         }
2103 }
2104
2105 //■script004■
2106
2107 package jp.nicovideo.nicoplayer.models.flashvars{
2108
2109         //■class(instance)_index:4
2110         public class NicoFlashVars extends Object
2111         {
2112                 //static constructor
2113                 public static function NicoFlashVars$cinit()
2114                 {       //MethodID:129, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
2115                         LEAF_NO_LOCK = 0;
2116                         LEAF_HIDDEN_MENU = 1;
2117                         LEAF_DISABLE = 2;
2118                 }
2119
2120                 //static variables/etc.
2121                 public static const LEAF_NO_LOCK:uint = 0;                      //slotID:1
2122                 public static const LEAF_HIDDEN_MENU:uint = 1;                  //slotID:2
2123                 public static const LEAF_DISABLE:uint = 2;                      //slotID:3
2124
2125                 //variables/etc.
2126                 private var _watchFlashVars:WatchFlashVars;                     //slotID:0
2127                 private var _thumbFlashVars:ThumbFlashVars;                     //slotID:0
2128                 private var _watchID:String;                                    //slotID:0
2129                 private var _originalVideoID:String;                            //slotID:0
2130                 private var _mylistCount:uint;                                  //slotID:0
2131                 private var _videoType:String;                                  //slotID:0
2132                 private var _videoTitle:String = "";                            //slotID:0
2133                 private var _videoDescription:String = "";                      //slotID:0
2134                 private var _isMymemory:Boolean;                                //slotID:0
2135                 private var _waitsSWFVideoInit:Boolean;                         //slotID:0
2136                 private var _forceLowMode:Boolean;                              //slotID:0
2137                 private var _economyMode:String;                                //slotID:0
2138                 private var _playerVersionUpdated:String;                       //slotID:0
2139                 private var _playerInfoUpdated:String;                          //slotID:0
2140                 private var _isCommunityVideo:Boolean;                          //slotID:0
2141                 private var _isCommunityThread:Boolean;                         //slotID:0
2142                 private var _hasOwnerThread:Boolean;                            //slotID:0
2143                 private var _isDeepenedCommentForce:Boolean;                    //slotID:0
2144                 private var _isChannel:Boolean;                                 //slotID:0
2145                 private var _isNoComment:Boolean;                               //slotID:0
2146                 private var _importedBGMVideos:Array;                           //slotID:0
2147                 private var _category:String;                                   //slotID:0
2148                 private var _categoryGroup:String;                              //slotID:0
2149                 private var _communityID:String;                                //slotID:0
2150                 private var _communityGlobalID:String;                          //slotID:0
2151                 private var _isNoCommand:Boolean;                               //slotID:0
2152                 private var _isNoAtComment:Boolean;                             //slotID:0
2153                 private var _isWide:Boolean;                                    //slotID:0
2154                 private var _countryCode:String;                                //slotID:0
2155                 private var _videoDetail:Object;                                //slotID:0
2156                 private var _leafSwitch:uint = 0;                               //slotID:0
2157                 private var _noRelation:Boolean;                                //slotID:0
2158                 private var _noRelatedVideo:Boolean;                            //slotID:0
2159
2160                 public function get watchID():String
2161                 {       //MethodID:130, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2162                         return this._watchID;
2163                 }
2164
2165                 internal function set watchID(hug1:String):void
2166                 {       //MethodID:131, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2167                         this._watchID = hug1;
2168                 }
2169
2170                 public function get originalVideoID():String
2171                 {       //MethodID:132, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2172                         return this._originalVideoID;
2173                 }
2174
2175                 internal function set originalVideoID(hug1:String):void
2176                 {       //MethodID:133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2177                         this._originalVideoID = hug1;
2178                 }
2179
2180                 public function get mylistCount():uint
2181                 {       //MethodID:134, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2182                         return this._mylistCount;
2183                 }
2184
2185                 internal function set mylistCount(hug1:uint):void
2186                 {       //MethodID:135, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2187                         this._mylistCount = hug1;
2188                 }
2189
2190                 public function get videoType():String
2191                 {       //MethodID:136, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2192                         return this._videoType;
2193                 }
2194
2195                 internal function set videoType(hug1:String):void
2196                 {       //MethodID:137, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2197                         this._videoType = hug1;
2198                 }
2199
2200                 public function get videoTitle():String
2201                 {       //MethodID:138, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2202                         return this._videoTitle;
2203                 }
2204
2205                 internal function set videoTitle(hug1:String):void
2206                 {       //MethodID:139, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2207                         this._videoTitle = hug1;
2208                 }
2209
2210                 public function get videoDescription():String
2211                 {       //MethodID:140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2212                         return this._videoDescription;
2213                 }
2214
2215                 internal function set videoDescription(hug1:String):void
2216                 {       //MethodID:141, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2217                         this._videoDescription = hug1;
2218                 }
2219
2220                 public function get isMymemory():Boolean
2221                 {       //MethodID:142, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2222                         return this._isMymemory;
2223                 }
2224
2225                 internal function set isMymemory(hug1:Boolean):void
2226                 {       //MethodID:143, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2227                         this._isMymemory = hug1;
2228                 }
2229
2230                 public function get waitsSWFVideoInit():Boolean
2231                 {       //MethodID:144, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2232                         return this._waitsSWFVideoInit;
2233                 }
2234
2235                 internal function set waitsSWFVideoInit(hug1:Boolean):void
2236                 {       //MethodID:145, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2237                         this._waitsSWFVideoInit = hug1;
2238                 }
2239
2240                 public function get forceLowMode():Boolean
2241                 {       //MethodID:146, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2242                         return this._forceLowMode;
2243                 }
2244
2245                 internal function set forceLowMode(hug1:Boolean):void
2246                 {       //MethodID:147, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2247                         this._forceLowMode = hug1;
2248                 }
2249
2250                 public function get economyMode():String
2251                 {       //MethodID:148, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2252                         return this._economyMode;
2253                 }
2254
2255                 internal function set economyMode(hug1:String):void
2256                 {       //MethodID:149, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2257                         this._economyMode = hug1;
2258                 }
2259
2260                 public function get playerVersionUpdated():String
2261                 {       //MethodID:150, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2262                         return this._playerVersionUpdated;
2263                 }
2264
2265                 internal function set playerVersionUpdated(hug1:String):void
2266                 {       //MethodID:151, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2267                         this._playerVersionUpdated = hug1;
2268                 }
2269
2270                 public function get playerInfoUpdated():String
2271                 {       //MethodID:152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2272                         return this._playerInfoUpdated;
2273                 }
2274
2275                 internal function set playerInfoUpdated(hug1:String):void
2276                 {       //MethodID:153, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2277                         this._playerInfoUpdated = hug1;
2278                 }
2279
2280                 public function get isCommunityVideo():Boolean
2281                 {       //MethodID:154, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2282                         return this._isCommunityVideo;
2283                 }
2284
2285                 internal function set isCommunityVideo(hug1:Boolean):void
2286                 {       //MethodID:155, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2287                         this._isCommunityVideo = hug1;
2288                 }
2289
2290                 public function get isCommunityThread():Boolean
2291                 {       //MethodID:156, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2292                         return this._isCommunityThread;
2293                 }
2294
2295                 internal function set isCommunityThread(hug1:Boolean):void
2296                 {       //MethodID:157, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2297                         this._isCommunityThread = hug1;
2298                 }
2299
2300                 public function get hasOwnerThread():Boolean
2301                 {       //MethodID:158, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2302                         return this._hasOwnerThread;
2303                 }
2304
2305                 internal function set hasOwnerThread(hug1:Boolean):void
2306                 {       //MethodID:159, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2307                         this._hasOwnerThread = hug1;
2308                 }
2309
2310                 public function get isDeepenedCommentForce():Boolean
2311                 {       //MethodID:160, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2312                         return this._isDeepenedCommentForce;
2313                 }
2314
2315                 internal function set isDeepenedCommentForce(hug1:Boolean):void
2316                 {       //MethodID:161, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2317                         this._isDeepenedCommentForce = hug1;
2318                 }
2319
2320                 public function get importedBGMVideos():Array
2321                 {       //MethodID:162, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2322                         return this._importedBGMVideos;
2323                 }
2324
2325                 internal function set importedBGMVideos(hug1:Array):void
2326                 {       //MethodID:163, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2327                         this._importedBGMVideos = hug1;
2328                 }
2329
2330                 public function get isChannel():Boolean
2331                 {       //MethodID:164, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2332                         return this._isChannel;
2333                 }
2334
2335                 internal function set isChannel(hug1:Boolean):void
2336                 {       //MethodID:165, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2337                         this._isChannel = hug1;
2338                 }
2339
2340                 public function get isNoComment():Boolean
2341                 {       //MethodID:166, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2342                         return this._isNoComment;
2343                 }
2344
2345                 internal function set isNoComment(hug1:Boolean):void
2346                 {       //MethodID:167, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2347                         this._isNoComment = hug1;
2348                 }
2349
2350                 public function get category():String
2351                 {       //MethodID:168, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2352                         return this._category;
2353                 }
2354
2355                 internal function set category(hug1:String):void
2356                 {       //MethodID:169, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2357                         this._category = hug1;
2358                 }
2359
2360                 public function get categoryGroup():String
2361                 {       //MethodID:170, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2362                         return this._categoryGroup;
2363                 }
2364
2365                 internal function set categoryGroup(hug1:String):void
2366                 {       //MethodID:171, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2367                         this._categoryGroup = hug1;
2368                 }
2369
2370                 public function get watchFlashVars():WatchFlashVars
2371                 {       //MethodID:172, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2372                         return this._watchFlashVars;
2373                 }
2374
2375                 internal function set watchFlashVars(hug1:WatchFlashVars):void
2376                 {       //MethodID:173, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2377                         this._watchFlashVars = hug1;
2378                 }
2379
2380                 public function get thumbFlashVars():ThumbFlashVars
2381                 {       //MethodID:174, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2382                         return this._thumbFlashVars;
2383                 }
2384
2385                 internal function set thumbFlashVars(hug1:ThumbFlashVars):void
2386                 {       //MethodID:175, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2387                         this._thumbFlashVars = hug1;
2388                 }
2389
2390                 public function get communityID():String
2391                 {       //MethodID:176, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2392                         return this._communityID;
2393                 }
2394
2395                 internal function set communityID(hug1:String):void
2396                 {       //MethodID:177, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2397                         this._communityID = hug1;
2398                 }
2399
2400                 public function get communityGlobalID():String
2401                 {       //MethodID:178, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2402                         return this._communityGlobalID;
2403                 }
2404
2405                 internal function set communityGlobalID(hug1:String):void
2406                 {       //MethodID:179, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2407                         this._communityGlobalID = hug1;
2408                 }
2409
2410                 public function get isNoCommand():Boolean
2411                 {       //MethodID:180, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2412                         return this._isNoCommand;
2413                 }
2414
2415                 internal function set isNoCommand(hug1:Boolean):void
2416                 {       //MethodID:181, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2417                         this._isNoCommand = hug1;
2418                 }
2419
2420                 public function get isNoAtComment():Boolean
2421                 {       //MethodID:182, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2422                         return this._isNoAtComment;
2423                 }
2424
2425                 internal function set isNoAtComment(hug1:Boolean):void
2426                 {       //MethodID:183, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2427                         this._isNoAtComment = hug1;
2428                 }
2429
2430                 public function get isWide():Boolean
2431                 {       //MethodID:184, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2432                         return this._isWide;
2433                 }
2434
2435                 internal function set isWide(hug1:Boolean):void
2436                 {       //MethodID:185, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2437                         this._isWide = hug1;
2438                 }
2439
2440                 public function get countryCode():String
2441                 {       //MethodID:186, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2442                         return this._countryCode;
2443                 }
2444
2445                 internal function set countryCode(hug1:String):void
2446                 {       //MethodID:187, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2447                         this._countryCode = hug1;
2448                 }
2449
2450                 public function get videoDetail():Object
2451                 {       //MethodID:188, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2452                         return this._videoDetail;
2453                 }
2454
2455                 internal function set videoDetail(hug1:Object):void
2456                 {       //MethodID:189, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2457                         this._videoDetail = hug1;
2458                 }
2459
2460                 public function get leafSwitch():uint
2461                 {       //MethodID:190, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2462                         return this._leafSwitch;
2463                 }
2464
2465                 internal function set leafSwitch(hug1:uint):void
2466                 {       //MethodID:191, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2467                         this._leafSwitch = hug1;
2468                 }
2469
2470                 public function get forceRelationInvisible():Boolean
2471                 {       //MethodID:192, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2472                         return this._noRelation;
2473                 }
2474
2475                 internal function set forceRelationInvisible(hug1:Boolean):void
2476                 {       //MethodID:193, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2477                         this._noRelation = hug1;
2478                 }
2479
2480                 public function get noRelatedVideo():Boolean
2481                 {       //MethodID:194, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2482                         return this._noRelatedVideo;
2483                 }
2484
2485                 internal function set noRelatedVideo(hug1:Boolean):void
2486                 {       //MethodID:195, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
2487                         this._noRelatedVideo = hug1;
2488                 }
2489
2490                 //constructor
2491                 public function NicoFlashVars()
2492                 {       //MethodID:196, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2493                         super();
2494                 }
2495         }
2496 }
2497
2498 //■script005■
2499
2500 package jp.nicovideo.nicoplayer.models.video{
2501
2502         //■class(instance)_index:5
2503         public class VideoType extends Object
2504         {
2505                 //static constructor
2506                 public static function VideoType$cinit()
2507                 {       //MethodID:198, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
2508                         FLV = "flv";
2509                         MP4 = "mp4";
2510                         SWF = "swf";
2511                 }
2512
2513                 //static variables/etc.
2514                 public static const FLV:String = "flv";                         //slotID:1
2515                 public static const MP4:String = "mp4";                         //slotID:2
2516                 public static const SWF:String = "swf";                         //slotID:3
2517
2518                 //constructor
2519                 public function VideoType()
2520                 {       //MethodID:199, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2521                         super();
2522                 }
2523         }
2524 }
2525
2526 //■script006■
2527
2528 package jp.nicovideo.nicoplayer.views.comment{
2529
2530         //■class(instance)_index:6
2531         public class CommentLayerID extends Object
2532         {
2533                 //static constructor
2534                 public static function CommentLayerID$cinit()
2535                 {       //MethodID:201, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
2536                         MAIN = "main";
2537                         OWNER = "owner";
2538                         OPTION = "option";
2539                 }
2540
2541                 //static variables/etc.
2542                 public static const MAIN:String = "main";                       //slotID:1
2543                 public static const OWNER:String = "owner";                     //slotID:2
2544                 public static const OPTION:String = "option";                   //slotID:3
2545
2546                 //constructor
2547                 public function CommentLayerID()
2548                 {       //MethodID:202, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
2549                         super();
2550                 }
2551         }
2552 }
2553
2554 //■script007■
2555
2556 package jp.nicovideo.nicoplayer.models.video.swf{
2557
2558         //■class(instance)_index:7
2559         public interface ISWFVideoClient
2560         {
2561                 //static constructor
2562                 public static function ISWFVideoClient$cinit()
2563                 {       //MethodID:204, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2564                 }
2565
2566                 //variables/etc.
2567                 function getSourceData(hug1:Function):void;                                 //MethodID:205, dispID:0
2568
2569                 //constructor
2570                 public function ISWFVideoClient();                                          //MethodID:206, dispID:0
2571         }
2572 }
2573
2574 //■script008■
2575
2576 package jp.nicovideo.nicoplayer.models.video{
2577
2578         //■class(instance)_index:8
2579         public interface ITimeline
2580         {
2581                 //static constructor
2582                 public static function ITimeline$cinit()
2583                 {       //MethodID:208, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2584                 }
2585
2586                 //variables/etc.
2587                 function get length():Number;                                               //MethodID:209, dispID:0
2588
2589                 function get vpos():Number;                                                 //MethodID:210, dispID:0
2590
2591                 function get isInitialized():Boolean;                                       //MethodID:211, dispID:0
2592
2593                 //constructor
2594                 public function ITimeline();                                                //MethodID:212, dispID:0
2595         }
2596 }
2597
2598 //■script009■
2599
2600 package jp.nicovideo.nicoplayer.models.video{
2601
2602         import flash.display.DisplayObject
2603         import jp.nicovideo.util.Functions
2604
2605         //■class(instance)_index:9
2606         public interface IVideo implements ITimeline
2607         {
2608                 //static constructor
2609                 public static function IVideo$cinit()
2610                 {       //MethodID:214, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2611                 }
2612
2613                 //variables/etc.
2614                 function load(hug1:Function):void;                                          //MethodID:215, dispID:0
2615
2616                 function play():void;                                                       //MethodID:216, dispID:0
2617
2618                 function stop():void;                                                       //MethodID:217, dispID:0
2619
2620                 function seek(hug1:Number):void;                                            //MethodID:218, dispID:0
2621
2622                 function resize(hug1:Number, hug2:Number):void;                             //MethodID:219, dispID:0
2623
2624                 function get loadedLength():Number;                                         //MethodID:220, dispID:0
2625
2626                 function get isPlaying():Boolean;                                           //MethodID:221, dispID:0
2627
2628                 function get isPausing():Boolean;                                           //MethodID:222, dispID:0
2629
2630                 function get isSeeking():Boolean;                                           //MethodID:223, dispID:0
2631
2632                 function get isEnd():Boolean;                                               //MethodID:224, dispID:0
2633
2634                 function get isBuffering():Boolean;                                         //MethodID:225, dispID:0
2635
2636                 function set isLoop(hug1:Boolean):void;                                     //MethodID:226, dispID:0
2637
2638                 function set volume(hug1:Number):void;                                      //MethodID:227, dispID:0
2639
2640                 function get isControllable():Boolean;                                      //MethodID:228, dispID:0
2641
2642                 function get videoPlayerStatus():String;                                    //MethodID:229, dispID:0
2643
2644                 function get layer():DisplayObject;                                         //MethodID:230, dispID:0
2645
2646                 function get onVideoBufferingStarted():Functions;                           //MethodID:231, dispID:0
2647
2648                 function get onVideoLoadComplete():Functions;                               //MethodID:232, dispID:0
2649
2650                 function get contentWidth():int;                                            //MethodID:233, dispID:0
2651
2652                 function get contentHeight():int;                                           //MethodID:234, dispID:0
2653
2654                 //constructor
2655                 public function IVideo();                                                   //MethodID:235, dispID:0
2656         }
2657 }
2658
2659 //■script010■
2660
2661 package jp.nicovideo.nicoplayer.models.video{
2662
2663         import flash.display.DisplayObject
2664         import jp.nicovideo.util.Functions
2665
2666         //■class(instance)_index:10
2667         public interface IChildVideo implements IVideo
2668         {
2669                 //static constructor
2670                 public static function IChildVideo$cinit()
2671                 {       //MethodID:237, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2672                 }
2673
2674                 //variables/etc.
2675                 function close():void;                                                      //MethodID:238, dispID:0
2676
2677                 function get onVideoEnded():Functions;                                      //MethodID:239, dispID:0
2678
2679                 function get onVideoSeeked():Functions;                                     //MethodID:240, dispID:0
2680
2681                 function get onVideoSeeking():Functions;                                    //MethodID:241, dispID:0
2682
2683                 function get onVideoPlayed():Functions;                                     //MethodID:242, dispID:0
2684
2685                 function get onVideoStopped():Functions;                                    //MethodID:243, dispID:0
2686
2687                 function get onVideoError():Functions;                                      //MethodID:244, dispID:0
2688
2689                 function get source():DisplayObject;                                        //MethodID:245, dispID:0
2690
2691                 //constructor
2692                 public function IChildVideo();                                              //MethodID:246, dispID:0
2693         }
2694 }
2695
2696 //■script011■
2697
2698 package jp.nicovideo.nicoplayer.models.video.swf{
2699
2700         //■class(instance)_index:11
2701         public interface IGameRankingClient implements ISWFVideoClient
2702         {
2703                 //static constructor
2704                 public static function IGameRankingClient$cinit()
2705                 {       //MethodID:248, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
2706                 }
2707
2708                 //variables/etc.
2709                 function getThumbnailURL(hug1:String, hug2:Function):void;                  //MethodID:249, dispID:0
2710
2711                 //constructor
2712                 public function IGameRankingClient();                                       //MethodID:250, dispID:0
2713         }
2714 }
2715
2716 //■script012■
2717
2718 package jp.nicovideo.nicoplayer.models.video{
2719
2720         import flash.display.DisplayObject
2721         import flash.display.Loader
2722         import flash.display.LoaderInfo
2723         import flash.display.MovieClip
2724         import flash.display.Sprite
2725         import flash.events.Event
2726         import flash.events.EventDispatcher
2727         import flash.events.IOErrorEvent
2728         import flash.events.ProgressEvent
2729         import flash.events.SecurityErrorEvent
2730         import flash.media.SoundTransform
2731         import flash.net.URLRequest
2732         import flash.system.ApplicationDomain
2733         import flash.system.LoaderContext
2734         import flash.system.Security
2735         import flash.system.SecurityDomain
2736         import jp.nicovideo.nicoplayer.config.NicoConfig
2737         import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoClient
2738         import jp.nicovideo.nicoplayer.models.video.swf.ISWFVideoContent
2739         import jp.nicovideo.nicoplayer.models.video.swf.SWFVideoType
2740         import jp.nicovideo.util.Functions
2741         import jp.nicovideo.util.ObjectUtils
2742         import jp.nicovideo.util.StringUtils
2743         import org.libspark.utils.ForcibleLoader
2744
2745         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
2746
2747         //■class(instance)_index:12
2748         public class SWFVideo extends Object implements IChildVideo
2749         {
2750                 //static constructor
2751                 public static function SWFVideo$cinit()
2752                 {       //MethodID:252, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
2753                 }
2754
2755                 //constructor
2756                 public function SWFVideo(hug1:String, hug2:Sprite, hug3:Number, hug4:Boolean=false, hug5:String, hug6:NicoConfig=null, hug7:String, hug8:Boolean=false)
2757                 {       //MethodID:253, LocalCount= 9 , MaxScope= 1, MaxStack= 2, CodeLength= 156
2758                         this._onVideoEnded = new Functions();
2759                         this._onVideoSeeked = new Functions();
2760                         this._onVideoSeeking = new Functions();
2761                         this._onVideoPlayed = new Functions();
2762                         this._onVideoStopped = new Functions();
2763                         this._onVideoBufferingStarted = new Functions();
2764                         this._onVideoLoadComplete = new Functions();
2765                         this._onVideoError = new Functions();
2766
2767                         super();
2768
2769                         this._this = this;
2770                         this._url = hug1;
2771                         this._length = hug3;
2772                         this._videoLayer = hug2;
2773                         this._layerWidth = this._videoLayer.width;
2774                         this._layerHeight = this._videoLayer.height;
2775                         this._isAS3 = hug8;
2776
2777                         if(!hug4) return;
2778
2779                         this._waitingLoad = true;
2780                         this._videoTitle = hug5;
2781                         this._configure = hug6;
2782                         this._videoID = hug7;
2783                 }
2784
2785                 //variables/etc.
2786                 private var _this:IVideo;                                       //slotID:0
2787                 private var _videoLayer:Sprite;                                 //slotID:0
2788                 private var _video:MovieClip;                                   //slotID:0
2789                 private var _url:String;                                        //slotID:0
2790                 private var _length:Number;                                     //slotID:0
2791                 private var _bytesLoaded:uint = 0;                              //slotID:0
2792                 private var _bytesTotal:uint;                                   //slotID:0
2793                 private var _isInitialized:Boolean = false;                     //slotID:0
2794                 private var _isLoaded:Boolean = false;                          //slotID:0
2795                 private var _isPlaying:Boolean = false;                         //slotID:0
2796                 private var _waitingLoad:Boolean = false;                       //slotID:0
2797                 private var _videoTitle:String;                                 //slotID:0
2798                 private var _configure:NicoConfig;                              //slotID:0
2799                 private var _videoID:String;                                    //slotID:0
2800                 private var _isLoop:Boolean;                                    //slotID:0
2801                 private const _onVideoEnded:Functions;                          //slotID:0
2802                 private const _onVideoSeeked:Functions;                         //slotID:0
2803                 private const _onVideoSeeking:Functions;                        //slotID:0
2804                 private const _onVideoPlayed:Functions;                         //slotID:0
2805                 private const _onVideoStopped:Functions;                        //slotID:0
2806                 private const _onVideoBufferingStarted:Functions;               //slotID:0
2807                 private const _onVideoLoadComplete:Functions;                   //slotID:0
2808                 private const _onVideoError:Functions;                          //slotID:0
2809                 private var _isAS3:Boolean = false;                             //slotID:0
2810                 private var _isLoading:Boolean = false;                         //slotID:0
2811                 private var _isPausing:Boolean = true;                          //slotID:0
2812                 private var _isEnd:Boolean = false;                             //slotID:0
2813                 private var _isSeeking:Boolean = false;                         //slotID:0
2814                 private var _layerWidth:int;                                    //slotID:0
2815                 private var _layerHeight:int;                                   //slotID:0
2816                 private var _contentWidth:int;                                  //slotID:0
2817                 private var _contentHeight:int;                                 //slotID:0
2818
2819                 public function get movieClip():MovieClip
2820                 {       //MethodID:254, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2821                         return this._video;
2822                 }
2823
2824                 public function load(hug1:Function):void
2825                 {       //MethodID:261, LocalCount= 4 , MaxScope= 5, MaxStack= 6, CodeLength= 414
2826                         internal var f:Function;                                        //slotID:1
2827                         internal var loader:Loader;                                     //slotID:2
2828                         internal var context:LoaderContext;                             //slotID:3
2829                         internal var request:URLRequest;                                //slotID:4
2830                         internal var info:LoaderInfo;                                   //slotID:5
2831                         internal var applied:Boolean;                                   //slotID:6
2832                         internal var ioErrorHandler:Function;                           //slotID:7
2833                         internal var securityErrorHandler:Function;                     //slotID:8
2834                         internal var eventDispatcher:EventDispatcher;                   //slotID:9
2835
2836                         info = null;
2837                         applied = false;
2838                         ioErrorHandler = null;
2839                         securityErrorHandler = null;
2840                         eventDispatcher = null;
2841                         f = hug1;
2842                         ioErrorHandler = function(hug1:IOErrorEvent):void{      //MethodID:255, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
2843                                 _isLoading = false;
2844
2845                                 f(false);
2846                         };
2847
2848                         securityErrorHandler = function(hug1:SecurityErrorEvent):void{  //MethodID:256, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
2849                                 _isLoading = false;
2850
2851                                 f(false);
2852                         };
2853
2854                         loader = new Loader();
2855                         context = new LoaderContext(false, ApplicationDomain.currentDomain, ((Security.sandboxType == Security.REMOTE) ? SecurityDomain.currentDomain : null));
2856                         request = new URLRequest(this._url);
2857                         info = loader.contentLoaderInfo;
2858
2859                         info.addEventListener(Event.INIT, function(hug1:Event):void{    //MethodID:257, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 160
2860                                 _bytesLoaded = info.bytesLoaded;
2861                                 _video = (hug1.target.content as MovieClip);
2862                                 _contentWidth = hug1.target.width;
2863                                 _contentHeight = hug1.target.height;
2864
2865                                 if(!_video){
2866                                         f(false);
2867
2868                                         return;
2869                                 }
2870
2871                                 _video.stop();
2872
2873                                 _video.soundTransform = new SoundTransform(0.0);
2874                                 _length = ((_video.totalFrames / 25) * 1000);
2875
2876                                 resize(_layerWidth, _layerHeight);
2877
2878                                 if(_waitingLoad){
2879                                         initializeSWFVideo(f);
2880
2881                                         return;
2882                                 }
2883
2884                                 _isInitialized = true;
2885
2886                                 f(true);
2887                         });
2888                         info.addEventListener(Event.COMPLETE, function(hug1:Event):void{        //MethodID:258, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 15
2889                                 _isLoaded = true;
2890                                 _isLoading = false;
2891                         });
2892
2893                         applied = false;
2894                         info.addEventListener(ProgressEvent.PROGRESS, function(hug1:ProgressEvent):void{        //MethodID:259, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 55
2895                                 _bytesTotal = hug1.bytesTotal;
2896                                 _bytesLoaded = hug1.bytesLoaded;
2897
2898                                 if(!applied && (_bytesTotal > 0)){
2899                                         applied = true;
2900
2901                                         _onVideoBufferingStarted.apply();
2902                                 }
2903                         });
2904                         info.addEventListener(Event.COMPLETE, function(hug1:Event):void{        //MethodID:260, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 11
2905                                 _onVideoLoadComplete.apply(_bytesTotal);
2906                         });
2907                         info.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
2908                         info.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
2909                         this._videoLayer.addChild(loader);
2910
2911                         this._isLoading = true;
2912
2913                         try{
2914                                 if(this._isAS3){
2915                                         loader.load(request, context);
2916                                 }else{
2917                                         eventDispatcher = new EventDispatcher();
2918
2919                                         eventDispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
2920                                         eventDispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
2921                                         new ForcibleLoader(loader, eventDispatcher).load(request);
2922                                 }
2923                         }
2924                         catch(error:Error){
2925                                 ObjectUtils.callLater(f, false);
2926                         }
2927                 }
2928
2929                 public function resize(hug1:Number, hug2:Number):void
2930                 {       //MethodID:262, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 199
2931                         this._layerWidth = hug1;
2932                         this._layerHeight = hug2;
2933
2934                         if(!this._video || (this._contentWidth <= 0) || (this._contentHeight <= 0)) return;
2935
2936                         var hug3:Number = 1;
2937
2938                         if((this._contentHeight / this._contentWidth) < (hug2 / hug1)){
2939                                 hug3 = (this._layerWidth / this._contentWidth);
2940                                 var hug4:Number = hug3;
2941                                 this._video.scaleY = hug4;
2942                                 this._video.scaleX = hug4;
2943                                 this._video.x = 0;
2944                                 this._video.y = ((this._layerHeight - (this._contentHeight * hug3)) / 2);
2945                         }else{
2946                                 hug3 = (this._layerHeight / this._contentHeight);
2947                                 var hug4:Number = hug3;
2948                                 this._video.scaleY = hug4;
2949                                 this._video.scaleX = hug4;
2950                                 this._video.x = ((this._layerWidth - (this._contentWidth * hug3)) / 2);
2951                                 this._video.y = 0;
2952                         }
2953                 }
2954
2955                 public function get isPlaying():Boolean
2956                 {       //MethodID:263, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2957                         return this._isPlaying;
2958                 }
2959
2960                 public function get isPausing():Boolean
2961                 {       //MethodID:264, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2962                         return this._isPausing;
2963                 }
2964
2965                 public function get isSeeking():Boolean
2966                 {       //MethodID:265, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2967                         return this._isSeeking;
2968                 }
2969
2970                 public function get isEnd():Boolean
2971                 {       //MethodID:266, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2972                         return this._isEnd;
2973                 }
2974
2975                 public function get isBuffering():Boolean
2976                 {       //MethodID:267, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
2977                         return this._isLoading;
2978                 }
2979
2980                 public function set volume(hug1:Number):void
2981                 {       //MethodID:268, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 149
2982                         if((hug1 < 0) || (hug1 > 1)) return;
2983
2984                         hug1 *= 100;
2985
2986                         if(hug1 == 0){
2987                                 this._video.soundTransform = new SoundTransform(0);
2988                                 return;
2989                         }
2990
2991                         if(hug1 == 100){
2992                                 this._video.soundTransform = new SoundTransform(1);
2993                                 return;
2994                         }
2995
2996                         hug1 = ((hug1 * (4 / 5)) + 20);
2997                         var hug2:Number = this._getACurb(100);
2998                         var hug3:Number = (this._getACurb(hug1) * (1 / hug2));
2999
3000                         if(hug3 < 0.01){
3001                                 this._video.soundTransform = new SoundTransform(0.01);
3002                                 return;
3003                         }
3004
3005                         this._video.soundTransform = new SoundTransform(hug3);
3006                 }
3007
3008                 private function _getACurb(hug1:Number):Number
3009                 {       //MethodID:269, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 35
3010                         return (((0.6838 * Math.pow(hug1, 3)) - (1.7262 * Math.pow(hug1, 2))) + (2.4252 * hug1));
3011                 }
3012
3013                 private function initializeSWFVideo(hug1:Function):void
3014                 {       //MethodID:271, LocalCount= 3 , MaxScope= 2, MaxStack= 7, CodeLength= 198
3015                         internal var f:Function;                                        //slotID:1
3016                         internal var content:ISWFVideoContent;                          //slotID:2
3017                         internal var client:ISWFVideoClient;                            //slotID:3
3018
3019                         client = null;
3020                         f = hug1;
3021                         content = ISWFVideoContent(this._video);
3022
3023                         if(!content) throw new Error("SWFVideo.initializeSWFVideo: invalid type.");
3024
3025                         if(content.videoType == SWFVideoType.INTERRUPT_GAME_RANKING){
3026                                 client = new _GameRankingClient(this._videoID, this._configure.GETGAMERANKING_URL, this._configure.GETTHUMBINFO_URL);
3027                         }else if(content.videoType == SWFVideoType.INTERRUPT_ENQUETE_RESULT){
3028                                 client = new _SWFVideoClient(this._videoID, StringUtils.joinQuery(this._configure.GETENQUESTERESULT_URL, {enquete_id:this._videoID}));
3029                         }else{
3030                                 throw new Error("SWFVideo.initializeSWFVideo: invalid videoType.");
3031                         }
3032
3033                         content.initialize(client, function():void{     //MethodID:270, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 17
3034                                 _isInitialized = true;
3035
3036                                 f(true);
3037                         });
3038                 }
3039
3040                 private function _onEnterFrame(hug1:Event):void
3041                 {       //MethodID:272, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 68
3042                         if(!this._isEnd && (this._video.currentFrame == this._video.totalFrames)){
3043                                 this._video.stop();
3044
3045                                 this._isPausing = false;
3046                                 this._isPlaying = false;
3047                                 this._isEnd = true;
3048
3049                                 this._onVideoEnded.apply(this._isLoop);
3050                         }
3051                 }
3052
3053                 public function play():void
3054                 {       //MethodID:273, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 64
3055                         this._video.gotoAndPlay(this._video.currentFrame);
3056
3057                         this._isPlaying = true;
3058                         this._isPausing = false;
3059                         this._isEnd = false;
3060
3061                         this._video.addEventListener(Event.ENTER_FRAME, this._onEnterFrame);
3062                         ObjectUtils.callLater(this._onVideoPlayed.apply);
3063                 }
3064
3065                 public function stop():void
3066                 {       //MethodID:274, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 47
3067                         this._video.stop();
3068
3069                         this._isPausing = true;
3070
3071                         this._video.removeEventListener(Event.ENTER_FRAME, this._onEnterFrame);
3072                         ObjectUtils.callLater(this._onVideoStopped.apply);
3073                 }
3074
3075                 public function close():void
3076                 {       //MethodID:275, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3077                 }
3078
3079                 public function seek(hug1:Number):void
3080                 {       //MethodID:277, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 65
3081                         internal var vpos:Number;                                       //slotID:1
3082                         internal var _frame:uint;                                       //slotID:2
3083
3084                         _frame = 0;
3085                         vpos = hug1;
3086                         this._isEnd = false;
3087                         this._isSeeking = true;
3088                         _frame = (Math.round((vpos / 1000) * 25) + 1);
3089
3090                         ObjectUtils.callLater(function():void{  //MethodID:276, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 49
3091                                 _isSeeking = false;
3092
3093                                 if(_isPausing){
3094                                         _video.gotoAndStop(_frame);
3095                                 }else{
3096                                         _video.gotoAndPlay(_frame);
3097                                 }
3098
3099                                 _onVideoSeeked.apply(vpos);
3100                         });
3101                 }
3102
3103                 public function get length():Number
3104                 {       //MethodID:278, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3105                         return this._length;
3106                 }
3107
3108                 public function get loadedLength():Number
3109                 {       //MethodID:279, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 32
3110                         return ((Number(this._bytesLoaded) / Number(this._bytesTotal)) * Number(this._length));
3111                 }
3112
3113                 public function get vpos():Number
3114                 {       //MethodID:280, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 18
3115                         return (((this._video.currentFrame - 1) / 25) * 1000);
3116                 }
3117
3118                 public function get isInitialized():Boolean
3119                 {       //MethodID:281, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3120                         return this._isInitialized;
3121                 }
3122
3123                 public function get isControllable():Boolean
3124                 {       //MethodID:282, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3125                         return this._isInitialized;
3126                 }
3127
3128                 public function set isLoop(hug1:Boolean):void
3129                 {       //MethodID:283, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
3130                         this._isLoop = hug1;
3131                 }
3132
3133                 public function get onVideoSeeked():Functions
3134                 {       //MethodID:284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3135                         return this._onVideoSeeked;
3136                 }
3137
3138                 public function get onVideoSeeking():Functions
3139                 {       //MethodID:285, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3140                         return this._onVideoSeeking;
3141                 }
3142
3143                 public function get onVideoPlayed():Functions
3144                 {       //MethodID:286, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3145                         return this._onVideoPlayed;
3146                 }
3147
3148                 public function get onVideoStopped():Functions
3149                 {       //MethodID:287, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3150                         return this._onVideoStopped;
3151                 }
3152
3153                 public function get onVideoEnded():Functions
3154                 {       //MethodID:288, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3155                         return this._onVideoEnded;
3156                 }
3157
3158                 public function get onVideoBufferingStarted():Functions
3159                 {       //MethodID:289, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3160                         return this._onVideoBufferingStarted;
3161                 }
3162
3163                 public function get onVideoLoadComplete():Functions
3164                 {       //MethodID:290, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3165                         return this._onVideoLoadComplete;
3166                 }
3167
3168                 public function get onVideoError():Functions
3169                 {       //MethodID:291, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3170                         return this._onVideoError;
3171                 }
3172
3173                 public function get layer():DisplayObject
3174                 {       //MethodID:292, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3175                         return this._videoLayer;
3176                 }
3177
3178                 public function get source():DisplayObject
3179                 {       //MethodID:293, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3180                         return this._video;
3181                 }
3182
3183                 public function get videoPlayerStatus():String
3184                 {       //MethodID:294, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 69
3185                         if(this._isEnd) return VideoPlayerStatus.END;
3186
3187                         if(this._isPlaying){
3188                                 if(this._isPausing) return VideoPlayerStatus.PAUSED;
3189
3190                                 return VideoPlayerStatus.PLAYING;
3191                         }
3192
3193                         if(this._isLoading) return VideoPlayerStatus.LOADING;
3194
3195                         return VideoPlayerStatus.STOPPED;
3196                 }
3197
3198                 public function get contentWidth():int
3199                 {       //MethodID:295, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3200                         return this._contentWidth;
3201                 }
3202
3203                 public function get contentHeight():int
3204                 {       //MethodID:296, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3205                         return this._contentHeight;
3206                 }
3207
3208                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get videoLayer():Sprite
3209                 {       //MethodID:297, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3210                         return this._videoLayer;
3211                 }
3212
3213                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get video():MovieClip
3214                 {       //MethodID:298, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3215                         return this._video;
3216                 }
3217
3218                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get isLoop():Boolean
3219                 {       //MethodID:299, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3220                         return this._isLoop;
3221                 }
3222
3223                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get waitingLoad():Boolean
3224                 {       //MethodID:300, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3225                         return this._waitingLoad;
3226                 }
3227         }
3228 }
3229
3230 import flash.events.Event
3231 import flash.events.IOErrorEvent
3232 import flash.events.SecurityErrorEvent
3233 import flash.net.URLLoader
3234 import flash.net.URLRequest
3235 import jp.nicovideo.util.StringUtils
3236
3237 //■class(instance)_index:13
3238 //private
3239 class _SWFVideoClient extends Object implements ISWFVideoClient
3240 {
3241         //static constructor
3242         public static function _SWFVideoClient$cinit()
3243         {       //MethodID:301, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3244         }
3245
3246         //constructor
3247         public function _SWFVideoClient(hug1:String, hug2:String):void
3248         {       //MethodID:302, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
3249                 super();
3250
3251                 this._videoID = hug1;
3252                 this._apiURL = hug2;
3253         }
3254
3255         //variables/etc.
3256         private var _videoID:String;                                    //slotID:0
3257         private var _apiURL:String;                                     //slotID:0
3258
3259         public function getSourceData(hug1:Function):void
3260         {       //MethodID:306, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 99
3261                 private var callback:Function;                                  //slotID:1
3262                 private var loader:URLLoader;                                   //slotID:2
3263
3264                 loader = null;
3265                 callback = hug1;
3266                 loader = new URLLoader();
3267
3268                 loader.load(new URLRequest(this._apiURL));
3269                 loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:303, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 58
3270                         var hug2:XML = new XML(loader.data);
3271
3272                         if(hug2.attribute("status").toString() == "ok"){
3273                                 callback(true, hug2);
3274                         }else{
3275                                 callback(false, null);
3276                         }
3277                 });
3278                 loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{        //MethodID:304, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3279                         callback(false, null);
3280                 });
3281                 loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{      //MethodID:305, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3282                         callback(false, null);
3283                 });
3284         }
3285 }
3286
3287 //■class(instance)_index:14
3288 //private
3289 class _GameRankingClient extends Object implements IGameRankingClient
3290 {
3291         //static constructor
3292         public static function _GameRankingClient$cinit()
3293         {       //MethodID:307, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3294         }
3295
3296         //constructor
3297         public function _GameRankingClient(hug1:String, hug2:String, hug3:String):void
3298         {       //MethodID:308, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 34
3299                 super();
3300
3301                 this._videoID = hug1;
3302                 this._getGameRankURL = StringUtils.joinQuery(hug2, {game_id:hug1});
3303                 this._getThumbInfoURL = hug3;
3304         }
3305
3306         //variables/etc.
3307         private var _videoID:String;                                    //slotID:0
3308         private var _getGameRankURL:String;                             //slotID:0
3309         private var _getThumbInfoURL:String;                            //slotID:0
3310
3311         public function getSourceData(hug1:Function):void
3312         {       //MethodID:312, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 99
3313                 private var callback:Function;                                  //slotID:1
3314                 private var loader:URLLoader;                                   //slotID:2
3315
3316                 loader = null;
3317                 callback = hug1;
3318                 loader = new URLLoader();
3319
3320                 loader.load(new URLRequest(this._getGameRankURL));
3321                 loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:309, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 21
3322                         callback(true, new XML(loader.data));
3323                 });
3324                 loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{        //MethodID:310, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3325                         callback(false, null);
3326                 });
3327                 loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{      //MethodID:311, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3328                         callback(false, null);
3329                 });
3330         }
3331
3332         public function getThumbnailURL(hug1:String, hug2:Function):void
3333         {       //MethodID:316, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 109
3334                 private var videoID:String;                                     //slotID:1
3335                 private var callback:Function;                                  //slotID:2
3336                 private var loader:URLLoader;                                   //slotID:3
3337
3338                 loader = null;
3339                 videoID = hug1;
3340                 callback = hug2;
3341                 loader = new URLLoader();
3342
3343                 loader.load(new URLRequest(this._getThumbInfoURL + videoID));
3344                 loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:313, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 49
3345                         var hug2:String = XML(loader.data).thumb.thumbnail_url;
3346
3347                         if(!hug2){
3348                                 callback(false, null);
3349                         }else{
3350                                 callback(true, hug2);
3351                         }
3352                 });
3353                 loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{        //MethodID:314, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3354                         callback(false, null);
3355                 });
3356                 loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{      //MethodID:315, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 11
3357                         callback(false, null);
3358                 });
3359         }
3360 }
3361
3362 //■script013■
3363
3364 package jp.nicovideo.util.events{
3365
3366         import flash.errors.IllegalOperationError
3367
3368         //■class(instance)_index:15
3369         public class EventBarrier extends Object
3370         {
3371                 //static constructor
3372                 public static function EventBarrier$cinit()
3373                 {       //MethodID:318, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3374                 }
3375
3376                 //constructor
3377                 public function EventBarrier()
3378                 {       //MethodID:319, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
3379                         super();
3380                 }
3381
3382                 //variables/etc.
3383                 private var __counter:int = 0;                                  //slotID:0
3384                 private var __f:Function;                                       //slotID:0
3385
3386                 public function bind(hug1:Function):Function
3387                 {       //MethodID:321, LocalCount= 5 , MaxScope= 2, MaxStack= 2, CodeLength= 55
3388                         internal var f:Function;                                        //slotID:1
3389
3390                         f = hug1;
3391
3392                         if(this.__counter <= (-1)) throw new IllegalOperationError("Barrier have been broken.");
3393
3394                         this.__counter++;
3395                         return function(... rest):*{    //MethodID:320, LocalCount= 7 , MaxScope= 4, MaxStack= 5, CodeLength= 151
3396                                 public var args:Array;                                          //slotID:1
3397
3398                                 internal var args:Object = rest;
3399
3400                                 try{
3401                                         var hug3:* = f.apply(null, args);
3402                                         return hug3;
3403                                 }
3404                                 finally{
3405                                         if(((--__counter) <= 0) && (__f is Function)) __finish_0();
3406                                 }
3407                         };
3408                 }
3409
3410                 public function finish(hug1:Function=null):void
3411                 {       //MethodID:322, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 37
3412                         if(!(hug1 is Function) || (this.__counter <= 0)){
3413                                 this.__finish_0(hug1);
3414
3415                                 return;
3416                         }
3417
3418                         this.__f = hug1;
3419                 }
3420
3421                 private function __finish_0(hug1:Function=null):void
3422                 {       //MethodID:323, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 52
3423                         if(this.__counter <= (-1)) return;
3424
3425                         this.__counter = -1;
3426                         var hug2:Function = this.__f;
3427                         hug1 = hug2;
3428
3429                         if(hug1 || hug2) hug1();
3430                 }
3431         }
3432 }
3433
3434 //■script014■
3435
3436 package jp.nicovideo.util.api{
3437
3438         //■class(instance)_index:16
3439         public interface IAPICacheProxy
3440         {
3441                 //static constructor
3442                 public static function IAPICacheProxy$cinit()
3443                 {       //MethodID:325, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
3444                 }
3445
3446                 //variables/etc.
3447                 function load(hug1:Function, hug2:Boolean):void;                            //MethodID:326, dispID:0
3448
3449                 function get isCacheUsable():Boolean;                                       //MethodID:327, dispID:0
3450
3451                 //constructor
3452                 public function IAPICacheProxy();                                           //MethodID:328, dispID:0
3453         }
3454 }
3455
3456 //■script015■
3457
3458 package jp.nicovideo.util.api{
3459
3460         import flash.events.Event
3461         import flash.events.IOErrorEvent
3462         import flash.events.TimerEvent
3463         import flash.net.URLLoader
3464         import flash.net.URLRequest
3465         import flash.utils.Timer
3466         import jp.nicovideo.util.CrossSharedObject
3467         import jp.nicovideo.util.ObjectUtils
3468         import jp.nicovideo.util.TimeUtils
3469         import jp.nicovideo.util.storage.LocalStorage
3470
3471         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
3472
3473         //■class(instance)_index:18
3474         public class APICacheProxy extends Object implements IAPICacheProxy
3475         {
3476                 //static constructor
3477                 public static function APICacheProxy$cinit()
3478                 {       //MethodID:332, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3479                 }
3480
3481                 //constructor
3482                 public function APICacheProxy(hug1:URLRequest, hug2:Number=0.0, hug3:Number=0.0, hug4:String=null, hug5:Boolean=true)
3483                 {       //MethodID:333, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 147
3484                         this._loader = new URLLoader();
3485                         this._onLoaded = [];
3486
3487                         super();
3488
3489                         if((hug1 == null) || (hug1.url == null)) throw new ArgumentError("APICacheProxy.APICacheProxy: illegal parameter.");
3490
3491                         this._request = hug1;
3492                         this._interval = ((isNaN(hug2) || (hug2 < 0)) ? 0 : hug2);
3493                         this._cacheExpire = ((isNaN(hug3) || (hug3 < 0)) ? 0 : hug3);
3494                         this._cacheKey = hug4;
3495                         this._useCommonCache = hug5;
3496
3497                         this._constructor();
3498                 }
3499
3500                 //variables/etc.
3501                 private var _request:URLRequest;                                //slotID:0
3502                 private var _loader:URLLoader;                                  //slotID:0
3503                 private var _interval:Number;                                   //slotID:0
3504                 private var _cacheExpire:Number = 0.0;                          //slotID:0
3505                 private var _cache:LocalStorage;                                //slotID:0
3506                 private var _cacheData:_CacheData;                              //slotID:0
3507                 private var _onLoaded:Array;                                    //slotID:0
3508                 private var _loadTimer:Timer;                                   //slotID:0
3509                 private var _isLocked:Boolean = false;                          //slotID:0
3510                 private var _cacheKey:String;                                   //slotID:0
3511                 private var _useCommonCache:Boolean;                            //slotID:0
3512
3513                 private function _constructor():void
3514                 {       //MethodID:337, LocalCount= 3 , MaxScope= 5, MaxStack= 5, CodeLength= 295
3515                         internal var path:String;                                       //slotID:1
3516
3517                         path = this._request.url.replace(new RegExp("[\.\/~\\%&:;\"',<>?#]", "g"), "_");
3518
3519                         try{
3520                                 this._cache = (this._useCommonCache ? CrossSharedObject.getStorage(path) : CrossSharedObject.getStorageNative(path));
3521                                 this._cacheData = new _CacheData(this._cache.data);
3522                         }
3523                         catch(e:Error){
3524                                 _cache = null;
3525                                 _cacheData = new _CacheData();
3526                         }
3527
3528                         if((((this._cacheData.cacheKey == null) || ((this._cacheKey != null) && (this._cacheData.cacheKey != this._cacheKey))) || isNaN(this._cacheData.lastAccessTime)) || (this._cacheData.source == undefined)){
3529                                 this._cacheData.cacheKey = "";
3530                                 this._cacheData.lastAccessTime = -1;
3531                                 this._cacheData.source = null;
3532
3533                                 this._updateCacheData();
3534                         }
3535
3536                         this._loadTimer = new Timer(0, 1);
3537
3538                         this._loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{        //MethodID:335, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 81
3539                                 internal var event:Event;                                       //slotID:1
3540
3541                                 event = hug1;
3542                                 _isLocked = true;
3543                                 _cacheData.cacheKey = _cacheKey;
3544                                 _cacheData.lastAccessTime = TimeUtils.time;
3545                                 _cacheData.source = _loader.data;
3546
3547                                 _updateCacheData();
3548                                 _reflect(true, _cacheData.source);
3549                                 ObjectUtils.callLater(function():void{  //MethodID:334, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 8
3550                                         _isLocked = false;
3551                                 });
3552                         });
3553                         this._loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{  //MethodID:336, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 10
3554                                 _reflect(false, null);
3555                         });
3556                 }
3557
3558                 public function load(hug1:Function, hug2:Boolean):void
3559                 {       //MethodID:340, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 253
3560                         internal var callback:Function;                                 //slotID:1
3561                         internal var useCache:Boolean;                                  //slotID:2
3562                         internal var delay:Number;                                      //slotID:3
3563                         internal var source:*;                                          //slotID:4
3564
3565                         source = undefined;
3566                         callback = hug1;
3567                         useCache = hug2;
3568
3569                         if(useCache && (this._cache != null) && (this._cache.data.source != null)){
3570                                 source = this._cache.data.source;
3571
3572                                 ObjectUtils.callLater(callback, (source != null), source);
3573
3574                                 return;
3575                         }
3576
3577                         this._onLoaded.push(callback);
3578
3579                         if(!this._hasExpired){
3580                                 ObjectUtils.callLater(function():void{  //MethodID:338, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 15
3581                                         _reflect(true, _cacheData.source);
3582                                 });
3583
3584                                 return;
3585                         }
3586
3587                         if(this._isLocked || this._loadTimer.running) return;
3588
3589                         delay = (this._cacheData.lastAccessTime + this._interval - TimeUtils.time);
3590                         delay = ((delay < 1) ? 1 : delay);
3591                         this._loadTimer.delay = delay;
3592                         this._loadTimer.repeatCount = 1;
3593
3594                         this._loadTimer.addEventListener(TimerEvent.TIMER_COMPLETE, function(hug1:TimerEvent):void{     //MethodID:339, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 18
3595                                 _loadTimer.reset();
3596                                 _loader.load(_request);
3597                         });
3598                         this._loadTimer.start();
3599                 }
3600
3601                 public function get isCacheUsable():Boolean
3602                 {       //MethodID:341, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
3603                         return ((this._cacheData != null) && (this._cacheData.source != null));
3604                 }
3605
3606                 private function get _hasExpired():Boolean
3607                 {       //MethodID:342, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 41
3608                         return ((this._cacheKey != this._cacheData.cacheKey) || ((this._cacheData.lastAccessTime + this._cacheExpire) < TimeUtils.time));
3609                 }
3610
3611                 private function _reflect(hug1:Boolean, hug2:*):void
3612                 {       //MethodID:343, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 68
3613                         var hug4:Function = null;
3614                         var hug3:Array = this._onLoaded.concat();
3615                         this._onLoaded = [];
3616
3617                         for each(hug4 in hug3){
3618                                 hug4.apply(null, [hug1, hug2]);
3619                         }
3620                 }
3621
3622                 private function _updateCacheData():void
3623                 {       //MethodID:344, LocalCount= 3 , MaxScope= 5, MaxStack= 3, CodeLength= 102
3624                         if(!this._cache) return;
3625
3626                         try{
3627                                 this._cache.data.cacheKey = this._cacheData.cacheKey;
3628                                 this._cache.data.lastAccessTime = this._cacheData.lastAccessTime;
3629                                 this._cache.data.source = this._cacheData.source;
3630
3631                                 this._cache.flush();
3632                         }
3633                         catch(e:Error){
3634                                 _cache = null;
3635                         }
3636                 }
3637
3638                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get cache():LocalStorage
3639                 {       //MethodID:345, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3640                         return this._cache;
3641                 }
3642
3643                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get hasExpired():Boolean
3644                 {       //MethodID:346, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3645                         return this._hasExpired;
3646                 }
3647
3648                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get loadTimer():Timer
3649                 {       //MethodID:347, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3650                         return this._loadTimer;
3651                 }
3652         }
3653 }
3654
3655
3656 //■class(instance)_index:17
3657 //private
3658 class _CacheData extends Object
3659 {
3660         //static constructor
3661         public static function _CacheData$cinit()
3662         {       //MethodID:330, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3663         }
3664
3665         //constructor
3666         public function _CacheData(hug1:Object=null)
3667         {       //MethodID:331, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
3668                 super();
3669
3670                 if(!hug1) return;
3671
3672                 this.source = hug1.source;
3673                 this.lastAccessTime = hug1.lastAccessTime;
3674                 this.cacheKey = hug1.cacheKey;
3675         }
3676
3677         //variables/etc.
3678         public var source:*;                                            //slotID:0
3679         public var lastAccessTime:Number;                               //slotID:0
3680         public var cacheKey:String;                                     //slotID:0
3681 }
3682
3683 //■script016■
3684
3685 package jp.nicovideo.nicoplayer.models.video.userSponsor{
3686
3687         import flash.display.Sprite
3688         import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
3689         import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
3690         import jp.nicovideo.nicoplayer.models.video.IVposWatcher
3691
3692         //■class(instance)_index:19
3693         public interface IUserSponsorVideoClient
3694         {
3695                 //static constructor
3696                 public static function IUserSponsorVideoClient$cinit()
3697                 {       //MethodID:349, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
3698                 }
3699
3700                 //variables/etc.
3701                 function get info():IGetSponsorInfo;                                        //MethodID:350, dispID:0
3702
3703                 function get layer():Sprite;                                                //MethodID:351, dispID:0
3704
3705                 function get linkURL():String;                                              //MethodID:352, dispID:0
3706
3707                 function get youAlsoLink():String;                                          //MethodID:353, dispID:0
3708
3709                 function get capturableVideoContainer():ICapturableVideoContainer;          //MethodID:354, dispID:0
3710
3711                 function get vposWatcher():IVposWatcher;                                    //MethodID:355, dispID:0
3712
3713                 //constructor
3714                 public function IUserSponsorVideoClient();                                  //MethodID:356, dispID:0
3715         }
3716 }
3717
3718 //■script017■
3719
3720 package jp.nicovideo.nicoplayer.models.video.userSponsor{
3721
3722         import flash.display.Sprite
3723         import jp.nicovideo.nicoplayer.models.api.ICapturableVideoContainer
3724         import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
3725         import jp.nicovideo.nicoplayer.models.video.IVposWatcher
3726
3727         //■class(instance)_index:20
3728         public class UserSponsorVideoClient extends Object implements IUserSponsorVideoClient
3729         {
3730                 //static constructor
3731                 public static function UserSponsorVideoClient$cinit()
3732                 {       //MethodID:358, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
3733                 }
3734
3735                 //constructor
3736                 public function UserSponsorVideoClient(hug1:IGetSponsorInfo, hug2:Sprite, hug3:String, hug4:String, hug5:ICapturableVideoContainer, hug6:IVposWatcher)
3737                 {       //MethodID:359, LocalCount= 7 , MaxScope= 1, MaxStack= 2, CodeLength= 39
3738                         super();
3739
3740                         this._info = hug1;
3741                         this._layer = hug2;
3742                         this._linkURL = hug3;
3743                         this._youAlsoLink = hug4;
3744                         this._capturableVideoContainer = hug5;
3745                         this._vposWatcher = hug6;
3746                 }
3747
3748                 //variables/etc.
3749                 private var _info:IGetSponsorInfo;                              //slotID:0
3750                 private var _layer:Sprite;                                      //slotID:0
3751                 private var _linkURL:String;                                    //slotID:0
3752                 private var _youAlsoLink:String;                                //slotID:0
3753                 private var _capturableVideoContainer:ICapturableVideoContainer;//slotID:0
3754                 private var _vposWatcher:IVposWatcher;                          //slotID:0
3755
3756                 public function get info():IGetSponsorInfo
3757                 {       //MethodID:360, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3758                         return this._info;
3759                 }
3760
3761                 public function get layer():Sprite
3762                 {       //MethodID:361, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3763                         return this._layer;
3764                 }
3765
3766                 public function get linkURL():String
3767                 {       //MethodID:362, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3768                         return this._linkURL;
3769                 }
3770
3771                 public function get youAlsoLink():String
3772                 {       //MethodID:363, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3773                         return this._youAlsoLink;
3774                 }
3775
3776                 public function get capturableVideoContainer():ICapturableVideoContainer
3777                 {       //MethodID:364, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3778                         return this._capturableVideoContainer;
3779                 }
3780
3781                 public function get vposWatcher():IVposWatcher
3782                 {       //MethodID:365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
3783                         return this._vposWatcher;
3784                 }
3785         }
3786 }
3787
3788 //■script018■
3789
3790 package jp.nicovideo.nicoplayer.models{
3791
3792         import jp.nicovideo.util.CrossSharedObject
3793         import jp.nicovideo.util.TimeUtils
3794         import jp.nicovideo.util.storage.LocalStorage
3795
3796         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
3797
3798         //■class(instance)_index:21
3799         public class PlayDelay extends Object
3800         {
3801                 //static constructor
3802                 public static function PlayDelay$cinit()
3803                 {       //MethodID:367, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 71
3804                         OPENPLAYER_INTERVAL = 3000;
3805                         OPENPLAYER_INTERVAL_PREMIUM = 0;
3806                         OPENPLAYER_INTERVAL_THUMBWATCH = 1000;
3807                         SO_RUSH_HOUR_PLAY_COUNT = "rush_hour_play_count";
3808                         soRushHourPlayCount = CrossSharedObject.getStorage(SO_RUSH_HOUR_PLAY_COUNT);
3809                         RUSH_HOUR = "1800-0300";
3810                         RUSH_HOUR_PLAY_COUNTER_TTL = 10;
3811                 }
3812
3813                 //static variables/etc.
3814                 private static const OPENPLAYER_INTERVAL:Number = 3000.0;       //slotID:1
3815                 private static const OPENPLAYER_INTERVAL_PREMIUM:Number = 0.0;  //slotID:2
3816                 private static const OPENPLAYER_INTERVAL_THUMBWATCH:Number = 1000.0;//slotID:3
3817                 private static const SO_RUSH_HOUR_PLAY_COUNT:String = "rush_hour_play_count";//slotID:4
3818                 private static var soRushHourPlayCount:LocalStorage;            //slotID:5
3819                 private static const RUSH_HOUR:String = "1800-0300";            //slotID:6
3820                 private static const RUSH_HOUR_PLAY_COUNTER_TTL:Number = 10.0;  //slotID:7
3821
3822                 private static function _getCount():uint
3823                 {       //dispID:3, MethodID:368, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 155
3824                         var hug1:Date = TimeUtils.now();
3825
3826                         if(soRushHourPlayCount.data.count == undefined) soRushHourPlayCount.data.count = 0;
3827
3828                         if(soRushHourPlayCount.data.lastCountUp == undefined) soRushHourPlayCount.data.lastCountUp = hug1;
3829
3830                         var hug2:uint = soRushHourPlayCount.data.count;
3831                         var hug3:Date = soRushHourPlayCount.data.lastCountUp;
3832
3833                         if(!_isRushHour(RUSH_HOUR) || _isRsetCount(RUSH_HOUR_PLAY_COUNTER_TTL, hug3)){
3834                                 soRushHourPlayCount.data.count = 0;
3835                                 hug2 = 0;
3836                         }
3837
3838                         soRushHourPlayCount.data.lastCountUp = hug1;
3839
3840                         soRushHourPlayCount.flush();
3841
3842                         return hug2;
3843                 }
3844
3845                 private static function _isRsetCount(hug1:Number, hug2:Date):Boolean
3846                 {       //dispID:4, MethodID:369, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 42
3847                         var hug3:Date = TimeUtils.now();
3848
3849                         if((hug2.getTime() + ((hug1 * 60 * 60) * 1000)) <= hug3.getTime()) return true;
3850
3851                         return false;
3852                 }
3853
3854                 private static function _isRushHour(hug1:String):Boolean
3855                 {       //dispID:5, MethodID:370, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 132
3856                         var hug2:Array = hug1.split("-");
3857                         var hug3:Date = TimeUtils.now();
3858                         var hug4:Number = ((hug3.getHours() * 100) + hug3.getMinutes());
3859                         var hug5:Number = Number(hug2[0]);
3860                         var hug6:Number = Number(hug2[1]);
3861                         var hug7:Boolean = false;
3862
3863                         if(hug5 < hug6){
3864                                 if((hug5 <= hug4) && (hug4 <= hug6)) hug7 = true;
3865                         }else if((hug5 <= hug4) || (hug4 <= hug6)){
3866                                 hug7 = true;
3867                         }
3868
3869                         return hug7;
3870                 }
3871
3872                 public static function getPlayDelayTime(hug1:Boolean, hug2:Boolean):Number
3873                 {       //dispID:6, MethodID:371, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 80
3874                         if(hug2) return Math.max(Math.min((_getCount() * 500), 15000), OPENPLAYER_INTERVAL_THUMBWATCH);
3875
3876                         if(hug1) return OPENPLAYER_INTERVAL_PREMIUM;
3877
3878                         return Math.max(Math.min((_getCount() * 500), 15000), OPENPLAYER_INTERVAL);
3879                 }
3880
3881                 public static function countUp():void
3882                 {       //dispID:7, MethodID:372, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 49
3883                         if(soRushHourPlayCount.data.count == undefined) return;
3884
3885                         soRushHourPlayCount.data.count++;
3886                         soRushHourPlayCount.flush();
3887                 }
3888
3889                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) static function isRushHour(hug1:String):Boolean
3890                 {       //dispID:8, MethodID:373, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
3891                         return _isRushHour(hug1);
3892                 }
3893
3894                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) static function isRsetCount(hug1:Number, hug2:Date):Boolean
3895                 {       //dispID:9, MethodID:374, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 12
3896                         return _isRsetCount(hug1, hug2);
3897                 }
3898
3899                 //constructor
3900                 public function PlayDelay()
3901                 {       //MethodID:375, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
3902                         super();
3903                 }
3904         }
3905 }
3906
3907 //■script019■
3908
3909 package jp.nicovideo.nicoplayer.models.video{
3910
3911         import flash.events.TimerEvent
3912         import flash.utils.Timer
3913         import jp.nicovideo.util.Functions
3914         import jp.nicovideo.util.events.EventResult
3915         import jp.nicovideo.util.events.event_sender
3916
3917         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
3918         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
3919
3920         //■class(instance)_index:22
3921         public class VideoLoadWatcher extends Object
3922         {
3923                 //static constructor
3924                 public static function VideoLoadWatcher$cinit()
3925                 {       //MethodID:377, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
3926                         WATCH_DELAY = 1000;
3927                 }
3928
3929                 //static variables/etc.
3930                 public static const WATCH_DELAY:Number = 1000.0;                //slotID:1
3931
3932                 //constructor
3933                 public function VideoLoadWatcher()
3934                 {       //MethodID:378, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 53
3935                         this.onPlaybackStopped = new Functions();
3936                         this.onVideoLoadCompleted = new Functions();
3937                         this._watchTimer = new Timer(WATCH_DELAY);
3938
3939                         super();
3940                         this._watchTimer.addEventListener(TimerEvent.TIMER, this._onWatchTimer);
3941                 }
3942
3943                 //variables/etc.
3944                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaybackStopped:Functions;//slotID:0
3945                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoLoadCompleted:Functions;//slotID:0
3946                 private var _prevVpos:Number = -1.0;                            //slotID:0
3947                 private var _watchTimer:Timer;                                  //slotID:0
3948                 private var _stoppedCount:uint;                                 //slotID:0
3949                 private var _enabled:Boolean = true;                            //slotID:0
3950                 private var _onPlaybackStoppedEventSended:Boolean = false;      //slotID:0
3951                 private var _hasJustSeeked:Boolean = false;                     //slotID:0
3952                 private var _video:IVideo;                                      //slotID:0
3953
3954                 private function _startWatching():void
3955                 {       //MethodID:380, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 103
3956                         if(this._video == null) throw new Error("VideoLoadWatcher._startWatching: _video is null.");
3957
3958                         if(!this._video.isBuffering){
3959                                 onVideoLoadCompleted.apply();
3960
3961                                 return;
3962                         }
3963
3964                         this._video.onVideoLoadComplete.add(function(hug1:uint, ...args):void{  //MethodID:379, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 44
3965                                 stopWatching();
3966                                 onVideoLoadCompleted.apply();
3967                                 _video.onVideoLoadComplete.remove(args.calee);
3968                         });
3969                         this._watchTimer.reset();
3970                         this._watchTimer.start();
3971
3972                         this._stoppedCount = 0;
3973                         this._prevVpos = -1;
3974                 }
3975
3976                 public function stopWatching():void
3977                 {       //MethodID:381, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
3978                         this._watchTimer.stop();
3979                 }
3980
3981                 private function _onWatchTimer(hug1:TimerEvent):void
3982                 {       //MethodID:382, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 195
3983                         if(this._video.isPausing || (this._video.vpos != this._prevVpos) || this._video.isSeeking || !this._video.isBuffering){
3984                                 if(!this._video.isSeeking && !this._video.isPausing && (this._video.vpos != this._prevVpos)) this._hasJustSeeked = false;
3985
3986                                 this._prevVpos = this._video.vpos;
3987                                 this._onPlaybackStoppedEventSended = false;
3988                                 return;
3989                         }
3990
3991                         if(this._hasJustSeeked) return;
3992
3993                         if(this._onPlaybackStoppedEventSended) return;
3994
3995                         this._onPlaybackStoppedEventSended = true;
3996                         this._stoppedCount++;
3997                         onPlaybackStopped.apply(this._stoppedCount);
3998                 }
3999
4000                 public function set enabled(hug1:Boolean):void
4001                 {       //MethodID:383, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
4002                         this._enabled = hug1;
4003
4004                         if(!this._enabled) this.stopWatching();
4005                 }
4006
4007                 public function get enabled():Boolean
4008                 {       //MethodID:384, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4009                         return this._enabled;
4010                 }
4011
4012                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoInitialized(hug1:Boolean, hug2:IVideo):EventResult
4013                 {       //MethodID:385, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 32
4014                         if(!this._enabled) return EventResult.THROUGH;
4015
4016                         this._video = hug2;
4017
4018                         this._startWatching();
4019
4020                         return EventResult.THROUGH;
4021                 }
4022
4023                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
4024                 {       //MethodID:386, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
4025                         this._hasJustSeeked = true;
4026                         return EventResult.THROUGH;
4027                 }
4028         }
4029 }
4030
4031 //■script020■
4032
4033 package jp.nicovideo.nicoplayer.storages{
4034
4035         //■class(instance)_index:23
4036         public class CommentStorageError extends Object
4037         {
4038                 //static constructor
4039                 public static function CommentStorageError$cinit()
4040                 {       //MethodID:388, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
4041                 }
4042
4043                 //constructor
4044                 public function CommentStorageError(hug1:int, hug2:String, hug3:Boolean=false)
4045                 {       //MethodID:389, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
4046                         super();
4047
4048                         this.__status = hug1;
4049                         this.__message = hug2;
4050                         this.__isInLowerLayer = hug3;
4051                 }
4052
4053                 //variables/etc.
4054                 private var __status:int;                                       //slotID:0
4055                 private var __message:String;                                   //slotID:0
4056                 private var __isInLowerLayer:Boolean;                           //slotID:0
4057
4058                 public function get status():int
4059                 {       //MethodID:390, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4060                         return this.__status;
4061                 }
4062
4063                 public function get message():String
4064                 {       //MethodID:391, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4065                         return this.__message;
4066                 }
4067
4068                 public function get isInLowerLayer():Boolean
4069                 {       //MethodID:392, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4070                         return this.__isInLowerLayer;
4071                 }
4072         }
4073 }
4074
4075 //■script021■
4076
4077 package jp.nicovideo.nicoplayer.models.mylist{
4078
4079         import jp.nicovideo.util.Functions
4080
4081         //■class(instance)_index:24
4082         public interface IDefaultMylistAppendable
4083         {
4084                 //static constructor
4085                 public static function IDefaultMylistAppendable$cinit()
4086                 {       //MethodID:394, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4087                 }
4088
4089                 //variables/etc.
4090                 function get onAppendedDefaultMylist():Functions;                           //MethodID:395, dispID:0
4091
4092                 function appendDefaultMylist(hug1:String=null):void;                        //MethodID:396, dispID:0
4093
4094                 function get hasAppendedDefaultMylist():Boolean;                            //MethodID:397, dispID:0
4095
4096                 //constructor
4097                 public function IDefaultMylistAppendable();                                 //MethodID:398, dispID:0
4098         }
4099 }
4100
4101 //■script022■
4102
4103 package jp.nicovideo.nicoplayer.models.mylist{
4104
4105         import flash.errors.IllegalOperationError
4106         import flash.net.URLRequestMethod
4107         import jp.nicovideo.util.CrossSharedObject
4108         import jp.nicovideo.util.Functions
4109         import jp.nicovideo.util.TimeUtils
4110         import jp.nicovideo.util.storage.LocalStorage
4111
4112         //■class(instance)_index:30
4113         public class DefaultMylistAppender extends Object implements IDefaultMylistAppendable
4114         {
4115                 //static constructor
4116                 public static function DefaultMylistAppender$cinit()
4117                 {       //MethodID:410, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 35
4118                         _LOG_TERM = ((3 * 24 * 60 * 60) * 1000);
4119                         _ON_APPENDED_DEFAULT_MYLIST = new Functions();
4120                 }
4121
4122                 //static variables/etc.
4123                 private static const _LOG_TERM:Number = 0xF731400;              //slotID:1
4124                 private static const _ON_APPENDED_DEFAULT_MYLIST:Functions;     //slotID:2
4125
4126                 //constructor
4127                 public function DefaultMylistAppender(hug1:Function, hug2:String, hug3:String, hug4:Boolean, hug5:String)
4128                 {       //MethodID:411, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 49
4129                         this._appendedLogStorage = CrossSharedObject.getStorage((_SOSetting).NAME, (_SOSetting).PATH);
4130
4131                         super();
4132
4133                         this._loadFunc = hug1;
4134                         this._apiURL = hug2;
4135
4136                         this.initialize(hug3, hug4, hug5);
4137                 }
4138
4139                 //variables/etc.
4140                 private var _loadFunc:Function;                                 //slotID:0
4141                 private var _apiURL:String;                                     //slotID:0
4142                 private var _threadID:String;                                   //slotID:0
4143                 private var _hasAppended:Boolean;                               //slotID:0
4144                 private var _csrfToken:String;                                  //slotID:0
4145                 private var _appendedLogStorage:LocalStorage;                   //slotID:0
4146
4147                 public function initialize(hug1:String, hug2:Boolean, hug3:String=null):void
4148                 {       //MethodID:412, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 169
4149                         var hug4:String = null;
4150                         var hug5:Number = NaN;
4151                         this._threadID = hug1;
4152                         this._hasAppended = hug2;
4153
4154                         if(hug3 != null) this._csrfToken = hug3;
4155                         _ON_APPENDED_DEFAULT_MYLIST.clear();
4156
4157                         if(!this._hasAppended){
4158                                 for(hug4 in this._appendedLogStorage.data){
4159                                         hug5 = Number(this._appendedLogStorage.data[hug4]);
4160
4161                                         if(isNaN(hug5) || ((hug5 + _LOG_TERM) < TimeUtils.time)){
4162                                                 delete this._appendedLogStorage.data[hug4];
4163                                         }else if(hug4 == this._threadID){
4164                                                 this._hasAppended = true;
4165                                         }
4166                                 }
4167                         }
4168                 }
4169
4170                 public function get onAppendedDefaultMylist():Functions
4171                 {       //MethodID:413, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4172                         return _ON_APPENDED_DEFAULT_MYLIST;
4173                 }
4174
4175                 public function appendDefaultMylist(hug1:String=null):void
4176                 {       //MethodID:415, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 140
4177                         internal var description:String = null;                         //slotID:1
4178                         internal var parameters:Object;                                 //slotID:2
4179
4180                         description = hug1;
4181
4182                         if(this._hasAppended) throw new IllegalOperationError("DefaultMylistAppender.appendDefaultMylist: has appended already.");
4183
4184                         parameters = {};
4185                         parameters[(_RequestParameterKey).ITEM_TYPE] = (_ItemType).VIDEO;
4186                         parameters[(_RequestParameterKey).ITEM_ID] = this._threadID;
4187
4188                         if(description != null) parameters[(_RequestParameterKey).DESCRIPTION] = description;
4189
4190                         parameters[(_RequestParameterKey).TOKEN] = this._csrfToken;
4191
4192                         this._loadFunc(function(hug1:Object):void{      //MethodID:414, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 72
4193                                 var hug2:Boolean = _hasAppended = (hug1[(_ResponseKey).STATUS] == (_ResponseValue).OK);
4194
4195                                 if((hug1 != null) && hug2) _appendedLogStorage.data[_threadID] = TimeUtils.time;
4196                                 onAppendedDefaultMylist.apply(hug2);
4197                         }, this._apiURL, parameters, URLRequestMethod.POST);
4198                 }
4199
4200                 public function get hasAppendedDefaultMylist():Boolean
4201                 {       //MethodID:416, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4202                         return this._hasAppended;
4203                 }
4204         }
4205 }
4206
4207
4208 //■class(instance)_index:25
4209 //private
4210 class _SOSetting extends Object
4211 {
4212         //static constructor
4213         public static function _SOSetting$cinit()
4214         {       //MethodID:400, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
4215                 NAME = "jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender";
4216                 PATH = "/";
4217         }
4218
4219         //static variables/etc.
4220         public static const NAME:String = "jp.nicovideo.nicoplayer.models.mylist.DefaultMylistAppender";//slotID:1
4221         public static const PATH:String = "/";                          //slotID:2
4222
4223         //constructor
4224         public function _SOSetting()
4225         {       //MethodID:401, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4226                 super();
4227         }
4228 }
4229
4230 //■class(instance)_index:26
4231 //private
4232 class _RequestParameterKey extends Object
4233 {
4234         //static constructor
4235         public static function _RequestParameterKey$cinit()
4236         {       //MethodID:402, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
4237                 ITEM_TYPE = "item_type";
4238                 ITEM_ID = "item_id";
4239                 DESCRIPTION = "description";
4240                 TOKEN = "token";
4241         }
4242
4243         //static variables/etc.
4244         public static const ITEM_TYPE:String = "item_type";             //slotID:1
4245         public static const ITEM_ID:String = "item_id";                 //slotID:2
4246         public static const DESCRIPTION:String = "description";         //slotID:3
4247         public static const TOKEN:String = "token";                     //slotID:4
4248
4249         //constructor
4250         public function _RequestParameterKey()
4251         {       //MethodID:403, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4252                 super();
4253         }
4254 }
4255
4256 //■class(instance)_index:27
4257 //private
4258 class _ItemType extends Object
4259 {
4260         //static constructor
4261         public static function _ItemType$cinit()
4262         {       //MethodID:404, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
4263                 VIDEO = 0;
4264         }
4265
4266         //static variables/etc.
4267         public static const VIDEO:uint = 0;                             //slotID:1
4268
4269         //constructor
4270         public function _ItemType()
4271         {       //MethodID:405, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4272                 super();
4273         }
4274 }
4275
4276 //■class(instance)_index:28
4277 //private
4278 class _ResponseKey extends Object
4279 {
4280         //static constructor
4281         public static function _ResponseKey$cinit()
4282         {       //MethodID:406, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
4283                 STATUS = "status";
4284         }
4285
4286         //static variables/etc.
4287         public static const STATUS:String = "status";                   //slotID:1
4288
4289         //constructor
4290         public function _ResponseKey()
4291         {       //MethodID:407, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4292                 super();
4293         }
4294 }
4295
4296 //■class(instance)_index:29
4297 //private
4298 class _ResponseValue extends Object
4299 {
4300         //static constructor
4301         public static function _ResponseValue$cinit()
4302         {       //MethodID:408, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
4303                 OK = "ok";
4304         }
4305
4306         //static variables/etc.
4307         public static const OK:String = "ok";                           //slotID:1
4308
4309         //constructor
4310         public function _ResponseValue()
4311         {       //MethodID:409, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4312                 super();
4313         }
4314 }
4315
4316 //■script023■
4317
4318 package jp.nicovideo.nicoplayer.models.comment{
4319
4320         //■class(instance)_index:31
4321         public final class CommentConstants extends Object
4322         {
4323                 //static constructor
4324                 public static function CommentConstants$cinit()
4325                 {       //MethodID:418, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
4326                         CL_MAIN = "commentlist:main";
4327                         CL_OWNER = "commentlist:owner";
4328                         CL_NICOS = "commentlist:nicos";
4329                         CL_LOCAL = "commentlist:local";
4330                         CL_PRIVATE = "commentlist:private";
4331                 }
4332
4333                 //static variables/etc.
4334                 public static const CL_MAIN:String = "commentlist:main";        //slotID:1
4335                 public static const CL_OWNER:String = "commentlist:owner";      //slotID:2
4336                 public static const CL_NICOS:String = "commentlist:nicos";      //slotID:3
4337                 public static const CL_LOCAL:String = "commentlist:local";      //slotID:4
4338                 public static const CL_PRIVATE:String = "commentlist:private";  //slotID:5
4339
4340                 //constructor
4341                 public function CommentConstants()
4342                 {       //MethodID:419, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
4343                         super();
4344                 }
4345         }
4346 }
4347
4348 //■script024■
4349
4350 package jp.nicovideo.nicoplayer.models.api{
4351
4352         //■class(instance)_index:32
4353         public interface IGetChecklist
4354         {
4355                 //static constructor
4356                 public static function IGetChecklist$cinit()
4357                 {       //MethodID:421, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4358                 }
4359
4360                 //variables/etc.
4361                 function get communities():Array;                                           //MethodID:422, dispID:0
4362
4363                 function get channels():Array;                                              //MethodID:423, dispID:0
4364
4365                 function get friends():Array;                                               //MethodID:424, dispID:0
4366
4367                 function get watchUsers():Array;                                            //MethodID:425, dispID:0
4368
4369                 //constructor
4370                 public function IGetChecklist();                                            //MethodID:426, dispID:0
4371         }
4372 }
4373
4374 //■script025■
4375
4376 package jp.nicovideo.nicoplayer.models.api{
4377
4378         //■class(instance)_index:33
4379         public interface IChannelInfo
4380         {
4381                 //static constructor
4382                 public static function IChannelInfo$cinit()
4383                 {       //MethodID:428, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4384                 }
4385
4386                 //variables/etc.
4387                 function get channel_id():Number;                                           //MethodID:429, dispID:0
4388
4389                 function get community_id():Number;                                         //MethodID:430, dispID:0
4390
4391                 //constructor
4392                 public function IChannelInfo();                                             //MethodID:431, dispID:0
4393         }
4394 }
4395
4396 //■script026■
4397
4398 package jp.nicovideo.nicoplayer.models.api{
4399
4400         import com.adobe.serialization.json.JSON
4401         import jp.nicovideo.util.api.IAPICacheProxy
4402
4403         //■class(instance)_index:34
4404         public class GetChecklist extends Object implements IGetChecklist
4405         {
4406                 //static constructor
4407                 public static function GetChecklist$cinit()
4408                 {       //MethodID:433, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
4409                 }
4410
4411                 //constructor
4412                 public function GetChecklist(hug1:Function, hug2:IAPICacheProxy, hug3:Boolean, hug4:Boolean)
4413                 {       //MethodID:436, LocalCount= 6 , MaxScope= 2, MaxStack= 3, CodeLength= 122
4414                         internal var callback:Function;                                 //slotID:1
4415                         internal var apiCahceProxy:IAPICacheProxy;                      //slotID:2
4416                         internal var useCache:Boolean;                                  //slotID:3
4417                         internal var noLoad:Boolean;                                    //slotID:4
4418
4419                         callback = hug1;
4420                         apiCahceProxy = hug2;
4421                         useCache = hug3;
4422                         noLoad = hug4;
4423                         this._communities = [];
4424                         this._channels = [];
4425                         this._friends = [];
4426                         this._watchUsers = [];
4427
4428                         super();
4429
4430                         if((callback == null) || (apiCahceProxy == null)) throw new ArgumentError("GetCheckList.GetCheckList: invalid parameter.");
4431
4432                         if(noLoad){
4433                                 callback(false);
4434
4435                                 return;
4436                         }
4437
4438                         apiCahceProxy.load(function(hug1:Boolean, hug2:*):void{ //MethodID:435, LocalCount= 6 , MaxScope= 3, MaxStack= 6, CodeLength= 354
4439                                 internal var succeeded:Boolean;                                 //slotID:1
4440                                 internal var source:*;                                          //slotID:2
4441                                 internal var castItem:Function;                                 //slotID:3
4442                                 internal var data:Object;                                       //slotID:4
4443                                 internal var map:Object;                                        //slotID:5
4444                                 internal var channel_id:String;                                 //slotID:6
4445
4446                                 castItem = null;
4447                                 data = null;
4448                                 map = null;
4449                                 channel_id = null;
4450                                 succeeded = hug1;
4451                                 source = hug2;
4452                                 castItem = function(hug1:*, hug2:int, hug3:Array):void{ //MethodID:434, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 174
4453                                         var hug4:Number = parseInt(hug1);
4454
4455                                         if(isNaN(hug4)) return;
4456
4457                                         var hug5:Array = hug3;
4458
4459                                         switch(hug5){
4460                                         case data["community_id"]:
4461                                                 _communities.push(hug4);
4462                                                 break;
4463                                         case data["friend"]:
4464                                                 _friends.push(hug4);
4465                                                 break;
4466                                         case data["watchuser"]:
4467                                                 _watchUsers.push(hug4);
4468                                                 break;
4469                                         default:
4470                                                 break;
4471                                         }
4472                                 };
4473
4474                                 if(!succeeded){
4475                                         callback(false);
4476
4477                                         return;
4478                                 }
4479
4480                                 try{
4481                                         data = JSON.decode(source);
4482
4483                                         if(data["community_id"] is Array) (data["community_id"] as Array).forEach(castItem);
4484
4485                                         if(data["friend"] is Array) (data["friend"] as Array).forEach(castItem);
4486
4487                                         if(data["watchuser"] is Array) (data["watchuser"] as Array).forEach(castItem);
4488
4489                                         if(data["channel_id"] is Object){
4490                                                 map = (data["channel_id"] as Object);
4491
4492                                                 for(channel_id in map){
4493                                                         _channels.push(new _ChannelInfo(parseInt(channel_id), parseInt(map[channel_id])));
4494                                                 }
4495                                         }
4496                                 }
4497                                 catch(error:Error){
4498                                         callback(false);
4499
4500                                         return;
4501                                 }
4502
4503                                 callback(true);
4504                         }, useCache);
4505                 }
4506
4507                 //variables/etc.
4508                 private var _communities:Array;                                 //slotID:0
4509                 private var _channels:Array;                                    //slotID:0
4510                 private var _friends:Array;                                     //slotID:0
4511                 private var _watchUsers:Array;                                  //slotID:0
4512
4513                 public function get communities():Array
4514                 {       //MethodID:437, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4515                         return this._communities;
4516                 }
4517
4518                 public function get channels():Array
4519                 {       //MethodID:438, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4520                         return this._channels;
4521                 }
4522
4523                 public function get friends():Array
4524                 {       //MethodID:439, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4525                         return this._friends;
4526                 }
4527
4528                 public function get watchUsers():Array
4529                 {       //MethodID:440, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4530                         return this._watchUsers;
4531                 }
4532         }
4533 }
4534
4535
4536 //■class(instance)_index:35
4537 //private
4538 class _ChannelInfo extends Object implements IChannelInfo
4539 {
4540         //static constructor
4541         public static function _ChannelInfo$cinit()
4542         {       //MethodID:441, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
4543         }
4544
4545         //constructor
4546         public function _ChannelInfo(hug1:Number, hug2:Number)
4547         {       //MethodID:442, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
4548                 super();
4549
4550                 this._channel_id = hug1;
4551                 this._community_id = hug2;
4552         }
4553
4554         //variables/etc.
4555         private var _channel_id:Number;                                 //slotID:0
4556         private var _community_id:Number;                               //slotID:0
4557
4558         public function get channel_id():Number
4559         {       //MethodID:443, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4560                 return this._channel_id;
4561         }
4562
4563         public function get community_id():Number
4564         {       //MethodID:444, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4565                 return this._community_id;
4566         }
4567 }
4568
4569 //■script027■
4570
4571 package jp.nicovideo.nicoplayer.models.filter{
4572
4573         import jp.nicovideo.nicoplayer.models.comment.IComment
4574
4575         //■class(instance)_index:36
4576         public class NGInfo extends Object
4577         {
4578                 //static constructor
4579                 public static function NGInfo$cinit()
4580                 {       //MethodID:446, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
4581                 }
4582
4583                 //constructor
4584                 public function NGInfo(hug1:String, hug2:String, hug3:Date, hug4:IComment=null):void
4585                 {       //MethodID:447, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 49
4586                         super();
4587
4588                         this.__type = hug1;
4589                         this.__source = hug2;
4590                         this.__comment = hug4;
4591
4592                         if(hug3){
4593                                 this.__lastHit = new Date(hug3.time);
4594                         }else{
4595                                 this.__lastHit = null;
4596                         }
4597                 }
4598
4599                 //variables/etc.
4600                 private var __type:String;                                      //slotID:0
4601                 private var __source:String;                                    //slotID:0
4602                 private var __lastHit:Date;                                     //slotID:0
4603                 private var __comment:IComment;                                 //slotID:0
4604
4605                 public function get type():String
4606                 {       //MethodID:448, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4607                         return this.__type;
4608                 }
4609
4610                 public function get source():String
4611                 {       //MethodID:449, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4612                         return this.__source;
4613                 }
4614
4615                 public function get lastHit():Date
4616                 {       //MethodID:450, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4617                         return this.__lastHit;
4618                 }
4619
4620                 public function set lastHit(hug1:Date):void
4621                 {       //MethodID:451, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 16
4622                         this.__lastHit = new Date(hug1.time);
4623                 }
4624
4625                 public function get comment():IComment
4626                 {       //MethodID:452, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4627                         return this.__comment;
4628                 }
4629         }
4630 }
4631
4632 //■script028■
4633
4634 package jp.nicovideo.marquee{
4635
4636         import flash.display.DisplayObjectContainer
4637
4638         //■class(instance)_index:37
4639         public interface IMarqueeClient
4640         {
4641                 //static constructor
4642                 public static function IMarqueeClient$cinit()
4643                 {       //MethodID:454, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4644                 }
4645
4646                 //variables/etc.
4647                 function jumpToURL(hug1:String):void;                                       //MethodID:455, dispID:0
4648
4649                 function showComment():void;                                                //MethodID:456, dispID:0
4650
4651                 function hideComment():void;                                                //MethodID:457, dispID:0
4652
4653                 function readyParade(hug1:Array):void;                                      //MethodID:458, dispID:0
4654
4655                 function startParade():void;                                                //MethodID:459, dispID:0
4656
4657                 function endParade():void;                                                  //MethodID:460, dispID:0
4658
4659                 function get userID():String;                                               //MethodID:461, dispID:0
4660
4661                 function get category():String;                                             //MethodID:462, dispID:0
4662
4663                 function get marqueeLayer():DisplayObjectContainer;                         //MethodID:463, dispID:0
4664
4665                 function get videoLayer():DisplayObjectContainer;                           //MethodID:464, dispID:0
4666
4667                 function get volume():Number;                                               //MethodID:465, dispID:0
4668
4669                 function get isNicowariSkipEnabled():Boolean;                               //MethodID:466, dispID:0
4670
4671                 function get videoID():String;                                              //MethodID:467, dispID:0
4672
4673                 function get videoTitle():String;                                           //MethodID:468, dispID:0
4674
4675                 function get videoTime():String;                                            //MethodID:469, dispID:0
4676
4677                 function get videoCode():String;                                            //MethodID:470, dispID:0
4678
4679                 function get nowTime():Number;                                              //MethodID:471, dispID:0
4680
4681                 function get isChannel():Boolean;                                           //MethodID:472, dispID:0
4682
4683                 function get segmentInfo():Object;                                          //MethodID:473, dispID:0
4684
4685                 function get isVideoPlaying():Boolean;                                      //MethodID:474, dispID:0
4686
4687                 //constructor
4688                 public function IMarqueeClient();                                           //MethodID:475, dispID:0
4689         }
4690 }
4691
4692 //■script029■
4693
4694 package jp.nicovideo.marquee{
4695
4696         import jp.nicovideo.util.Functions
4697
4698         //■class(instance)_index:38
4699         public interface INicoMarqueeClient implements IMarqueeClient
4700         {
4701                 //static constructor
4702                 public static function INicoMarqueeClient$cinit()
4703                 {       //MethodID:477, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4704                 }
4705
4706                 //variables/etc.
4707                 function get categoryGroup():String;                                        //MethodID:478, dispID:0
4708
4709                 function get isOfficialAnime():Boolean;                                     //MethodID:479, dispID:0
4710
4711                 function get isNoLoadAdsLiveBanner():Boolean;                               //MethodID:480, dispID:0
4712
4713                 function get onCommentVisibleEnabledUpdated():Functions;                    //MethodID:481, dispID:0
4714
4715                 function get onParadeReady():Functions;                                     //MethodID:482, dispID:0
4716
4717                 //constructor
4718                 public function INicoMarqueeClient();                                       //MethodID:483, dispID:0
4719         }
4720 }
4721
4722 //■script030■
4723
4724 package jp.nicovideo.util.events{
4725
4726         //■class(instance)_index:39
4727         public interface EventSender
4728         {
4729                 //static constructor
4730                 public static function EventSender$cinit()
4731                 {       //MethodID:485, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
4732                 }
4733
4734                 //variables/etc.
4735                 function get eventNames():Array;                                            //MethodID:486, dispID:0
4736
4737                 //constructor
4738                 public function EventSender();                                              //MethodID:487, dispID:0
4739         }
4740 }
4741
4742 //■script031■
4743
4744 package jp.nicovideo.marquee{
4745
4746         import flash.display.DisplayObjectContainer
4747         import flash.display.MovieClip
4748         import flash.display.Sprite
4749         import flash.net.URLRequest
4750         import flash.net.navigateToURL
4751         import jp.nicovideo.marquee.events.MarqueeErrorEvent
4752         import jp.nicovideo.marquee.events.MarqueeEvent
4753         import jp.nicovideo.marquee.events.MarqueeFullEvent
4754         import jp.nicovideo.marquee.models.MarqueeAspectRatio
4755         import jp.nicovideo.marquee.models.info.IMarqueeInfo
4756         import jp.nicovideo.nicoplayer.models.IPlayerConfig
4757         import jp.nicovideo.nicoplayer.models.PlayerInfo
4758         import jp.nicovideo.nicoplayer.models.PlayerVersion
4759         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
4760         import jp.nicovideo.nicoplayer.models.ScreenMode
4761         import jp.nicovideo.nicoplayer.models.SystemMessage
4762         import jp.nicovideo.nicoplayer.models.api.IInitializeInfo
4763         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
4764         import jp.nicovideo.nicoplayer.models.video.IVideoController
4765         import jp.nicovideo.nicoplayer.views.IVideoLayerManager
4766         import jp.nicovideo.util.Functions
4767         import jp.nicovideo.util.HTTPUtils
4768         import jp.nicovideo.util.TimeUtils
4769         import jp.nicovideo.util.events.EventResult
4770         import jp.nicovideo.util.events.event_sender
4771         import jp.nicovideo.util.loka.__MSG__
4772
4773         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
4774         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
4775
4776         //■class(instance)_index:40
4777         public class MarqueeClient extends Object
4778                         implements INicoMarqueeClient, EventSender
4779         {
4780                 //static constructor
4781                 public static function MarqueeClient$cinit()
4782                 {       //MethodID:489, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
4783                         _OffFullScreenPriority = 10;
4784                 }
4785
4786                 //static variables/etc.
4787                 private static const _OffFullScreenPriority:uint = 10;          //slotID:1
4788
4789                 //constructor
4790                 public function MarqueeClient(hug1:String, hug2:PlayerVersion, hug3:PlayerInfo, hug4:MovieClip, hug5:IVideoLayerManager, hug6:IPlayerConfig, hug7:IInitializeInfo, hug8:Function)
4791                 {       //MethodID:491, LocalCount= 10 , MaxScope= 2, MaxStack= 4, CodeLength= 246
4792                         internal var playerURL:String;                                  //slotID:1
4793                         internal var playerVersion:PlayerVersion;                       //slotID:2
4794                         internal var playerInfo:PlayerInfo;                             //slotID:3
4795                         internal var marqueeLayer:MovieClip;                            //slotID:4
4796                         internal var videoLayerManager:IVideoLayerManager;              //slotID:5
4797                         internal var playerConfig:IPlayerConfig;                        //slotID:6
4798                         internal var initializeInfo:IInitializeInfo;                    //slotID:7
4799                         internal var callback:Function;                                 //slotID:8
4800                         internal var params:Object;                                     //slotID:9
4801
4802                         playerURL = hug1;
4803                         playerVersion = hug2;
4804                         playerInfo = hug3;
4805                         marqueeLayer = hug4;
4806                         videoLayerManager = hug5;
4807                         playerConfig = hug6;
4808                         initializeInfo = hug7;
4809                         callback = hug8;
4810                         this.onMarqueeClientMarqueeStarted = new Functions();
4811                         this.onMarqueeClientMarqueeEnded = new Functions();
4812                         this.onMarqueeClientNicowariStarted = new Functions();
4813                         this.onMarqueeClientNicowariEnded = new Functions();
4814                         this._onCommentVisibleEnabledUpdated = new Functions();
4815                         this._onParadeReady = new Functions();
4816
4817                         super();
4818
4819                         this._this = this;
4820                         this._marqueeLayer = marqueeLayer;
4821                         this._videoLayerManager = videoLayerManager;
4822                         this._playerConfig = playerConfig;
4823                         this._isNicowariSkip = this._playerConfig.isNicowariSkip;
4824                         this._playerInfo = playerInfo;
4825                         this._initializeInfo = initializeInfo;
4826                         this._systemMessage = SystemMessage.instance;
4827                         this._callback = callback;
4828                         this._playerVersion = playerVersion;
4829                         params = {t:playerVersion.marqueePlayer};
4830
4831                         this._systemMessage.informln(__MSG__("マーキーの初期化開始"));
4832                         HTTPUtils.loadSWF(function(hug1:*):void{        //MethodID:490, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 204
4833                                 if(!hug1){
4834                                         _systemMessage.informln(__MSG__("マーキーの取得に失敗"));
4835
4836                                         return;
4837                                 }
4838
4839                                 _player = IMarqueePlayer(hug1);
4840                                 _setVolume = _player.setVolume;
4841
4842                                 _player.addEventListener(MarqueeErrorEvent.ERROR, onErrorPlayer);
4843                                 _player.addEventListener(MarqueeEvent.COMPLETE_PLAYER, onCompletePlayer);
4844                                 _player.addEventListener(MarqueeEvent.STARTED_MARQUEE, onStartedMarquee);
4845                                 _player.addEventListener(MarqueeEvent.ENDED_MARQUEE, onEndedMarquee);
4846                                 _player.addEventListener(MarqueeEvent.CLICK_PLAY_BUTTON, onClickedPlayButton);
4847                                 _player.addEventListener(MarqueeFullEvent.PLAY_VIDEO, onClickedNicowariPlayButton);
4848                                 _player.addEventListener(MarqueeFullEvent.PAUSE_VIDEO, onClickedVideoPlayButton);
4849                                 _player.initialize(IMarqueeClient(_this));
4850                                 INicoMarqueePlayer(_player).setRecentPremiumUsers(initializeInfo.recentPremiumUsers);
4851
4852                                 if(_isLoadLater) load();
4853                         }, playerURL, params);
4854                 }
4855
4856                 //variables/etc.
4857                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientMarqueeStarted:Functions;//slotID:0
4858                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientMarqueeEnded:Functions;//slotID:0
4859                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientNicowariStarted:Functions;//slotID:0
4860                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onMarqueeClientNicowariEnded:Functions;//slotID:0
4861                 private var _this:IMarqueeClient;                               //slotID:0
4862                 private var _player:IMarqueePlayer;                             //slotID:0
4863                 private var _systemMessage:SystemMessage;                       //slotID:0
4864                 private var _setVolume:Function;                                //slotID:0
4865                 private var _marqueeLayer:Sprite;                               //slotID:0
4866                 private var _videoLayer:Sprite;                                 //slotID:0
4867                 private var _playerConfig:IPlayerConfig;                        //slotID:0
4868                 private var _videoLayerManager:IVideoLayerManager;              //slotID:0
4869                 private var _videoController:IVideoController;                  //slotID:0
4870                 private var _vars:NicoFlashVars;                                //slotID:0
4871                 private var _initializeInfo:IInitializeInfo;                    //slotID:0
4872                 private var _videoPlayed:Boolean;                               //slotID:0
4873                 private var _isNicowariSkip:Boolean;                            //slotID:0
4874                 private var _onceSetupTimeUtils:Boolean = false;                //slotID:0
4875                 private var _completePlayer:Boolean = false;                    //slotID:0
4876                 private const _onCommentVisibleEnabledUpdated:Functions;        //slotID:0
4877                 private const _onParadeReady:Functions;                         //slotID:0
4878                 private var _callback:Function;                                 //slotID:0
4879                 private var _playerVersion:PlayerVersion;                       //slotID:0
4880                 private var _playerInfo:PlayerInfo;                             //slotID:0
4881                 private var _isLoadLater:Boolean = false;                       //slotID:0
4882                 private var _isLarqueeLoaded:Boolean = false;                   //slotID:0
4883
4884                 public function load():void
4885                 {       //MethodID:492, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 88
4886                         if(!this._player && !this._isLoadLater){
4887                                 this._isLoadLater = true;
4888                                 return;
4889                         }
4890
4891                         if(this._isLarqueeLoaded) return;
4892
4893                         this._isLarqueeLoaded = true;
4894
4895                         if(!this._vars.watchFlashVars.isNoGetMarquee) this._player.load(this._playerVersion.larquee);
4896
4897                         if(this._callback is Function) this._callback();
4898                 }
4899
4900                 public function get eventNames():Array
4901                 {       //MethodID:493, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 17
4902                         return ["onMarqueeClientMarqueeStarted", "onMarqueeClientMarqueeEnded", "onMarqueeClientNicowariStarted", "onMarqueeClientNicowariEnded"];
4903                 }
4904
4905                 public function get marqueePlayer():IMarqueePlayer
4906                 {       //MethodID:494, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
4907                         return this._player;
4908                 }
4909
4910                 private function onStartedMarquee(hug1:MarqueeEvent):void
4911                 {       //MethodID:495, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 174
4912                         var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
4913
4914                         if(!hug2) return;
4915
4916                         if((hug2.enabled && !this.isNicowariSkipEnabled) && ((hug2.priority >= _OffFullScreenPriority) && (this._playerConfig.screenMode != ScreenMode.NORMAL))){
4917                                 this._playerConfig.screenMode = ScreenMode.NORMAL;
4918
4919                                 SystemMessage.instance.inform(__MSG__("ニコ割を再生"), false);
4920                         }
4921
4922                         if(hug2.enabled && hug2.pauseVideo) onMarqueeClientNicowariStarted.apply(hug2);
4923                         onMarqueeClientMarqueeStarted.apply(hug2);
4924                 }
4925
4926                 private function onEndedMarquee(hug1:MarqueeEvent):void
4927                 {       //MethodID:496, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 106
4928                         var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
4929
4930                         if(!hug2) return;
4931
4932                         if(this._videoLayer){
4933                                 this._videoLayerManager.deleteMarqueeVideoLayer();
4934
4935                                 this._videoLayer = null;
4936                         }
4937
4938                         if(hug2.enabled && hug2.pauseVideo) onMarqueeClientNicowariEnded.apply(hug2);
4939                         onMarqueeClientMarqueeEnded.apply(hug2);
4940                 }
4941
4942                 private function onClickedPlayButton(hug1:MarqueeEvent):void
4943                 {       //MethodID:497, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 42
4944                         var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
4945
4946                         if(!hug2) return;
4947                         onMarqueeClientNicowariStarted.apply(hug2);
4948                 }
4949
4950                 private function onClickedNicowariPlayButton(hug1:MarqueeEvent):void
4951                 {       //MethodID:498, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 115
4952                         var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
4953
4954                         if(!hug2) return;
4955
4956                         if((hug2.enabled && !this.isNicowariSkipEnabled) && ((hug2.priority >= _OffFullScreenPriority) && (this._playerConfig.screenMode != ScreenMode.NORMAL))) this._playerConfig.screenMode = ScreenMode.NORMAL;
4957                         this.hideComment();
4958                         onMarqueeClientNicowariStarted.apply(hug2);
4959                 }
4960
4961                 private function onClickedVideoPlayButton(hug1:MarqueeEvent):void
4962                 {       //MethodID:499, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 47
4963                         var hug2:IMarqueeInfo = (hug1.origin as IMarqueeInfo);
4964
4965                         if(!hug2) return;
4966                         this.showComment();
4967                         onMarqueeClientNicowariEnded.apply(hug2);
4968                 }
4969
4970                 private function onCompletePlayer(hug1:MarqueeEvent):void
4971                 {       //MethodID:500, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
4972                         this._completePlayer = true;
4973
4974                         if(this._onceSetupTimeUtils) this.startPlayer();
4975                 }
4976
4977                 private function startPlayer():void
4978                 {       //MethodID:501, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 102
4979                         this._player.start();
4980
4981                         var hug1:uint = ((this._playerConfig.aspectRatio == ScreenAspectRatio.NORMAL) ? MarqueeAspectRatio.NORMAL : MarqueeAspectRatio.WIDE);
4982
4983                         INicoMarqueePlayer(this._player).updateAspect(hug1);
4984                         INicoMarqueePlayer(this._player).updateNicowariSkip(this._isNicowariSkip);
4985
4986                         if(this._playerConfig.isMute) this._setVolume.call(null, 0.0);
4987                 }
4988
4989                 private function onErrorPlayer(hug1:MarqueeErrorEvent):void
4990                 {       //MethodID:502, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 129
4991                         if((hug1.errorId == MarqueeErrorEvent.INITIALIZE_DOWNLOAD_ERROR) || (hug1.errorId == MarqueeErrorEvent.INITIALIZE_XML_FAIL)){
4992                                 this._player = null;
4993                                 this._completePlayer = false;
4994
4995                                 this._systemMessage.informln(__MSG__("マーキーの初期化に失敗"));
4996                         }else if((hug1.errorId == MarqueeErrorEvent.SENDED_FAIL) || (hug1.errorId == MarqueeErrorEvent.SENDED_ERROR) || (hug1.errorId == MarqueeErrorEvent.SENDED_NOAUTH)){
4997                                 this._systemMessage.informln(__MSG__("ゲームまたはアンケートの情報の送信に失敗"));
4998                         }
4999                 }
5000
5001                 public function get userID():String
5002                 {       //MethodID:503, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5003                         return this._initializeInfo.userID;
5004                 }
5005
5006                 public function get category():String
5007                 {       //MethodID:504, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5008                         return this._vars.category;
5009                 }
5010
5011                 public function get categoryGroup():String
5012                 {       //MethodID:505, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5013                         return this._vars.categoryGroup;
5014                 }
5015
5016                 public function get isNoLoadAdsLiveBanner():Boolean
5017                 {       //MethodID:506, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5018                         return this._playerInfo.isNoLoadAdsLiveBanner;
5019                 }
5020
5021                 public function get onCommentVisibleEnabledUpdated():Functions
5022                 {       //MethodID:507, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5023                         return this._onCommentVisibleEnabledUpdated;
5024                 }
5025
5026                 public function get onParadeReady():Functions
5027                 {       //MethodID:508, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5028                         return this._onParadeReady;
5029                 }
5030
5031                 public function get marqueeLayer():DisplayObjectContainer
5032                 {       //MethodID:509, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5033                         return this._marqueeLayer;
5034                 }
5035
5036                 public function get videoLayer():DisplayObjectContainer
5037                 {       //MethodID:510, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
5038                         if(!this._videoLayer) this._videoLayer = this._videoLayerManager.createMarqueeVideoLayer();
5039
5040                         return this._videoLayer;
5041                 }
5042
5043                 public function get volume():Number
5044                 {       //MethodID:511, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 29
5045                         return (this._playerConfig.isMute ? 0 : this._playerConfig.volume);
5046                 }
5047
5048                 public function jumpToURL(hug1:String):void
5049                 {       //MethodID:512, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 27
5050                         this._videoController.stop();
5051                         navigateToURL(new URLRequest(hug1), "_blank");
5052                 }
5053
5054                 public function get isNicowariSkipEnabled():Boolean
5055                 {       //MethodID:513, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 38
5056                         if(this._vars.watchFlashVars.forceNicowariOff) return true;
5057
5058                         return (this._isNicowariSkip && this._initializeInfo.isPremium);
5059                 }
5060
5061                 public function showComment():void
5062                 {       //MethodID:514, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
5063                         this.onCommentVisibleEnabledUpdated.apply(true);
5064                 }
5065
5066                 public function hideComment():void
5067                 {       //MethodID:515, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
5068                         this.onCommentVisibleEnabledUpdated.apply(false);
5069                 }
5070
5071                 public function readyParade(hug1:Array):void
5072                 {       //MethodID:516, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5073                 }
5074
5075                 public function startParade():void
5076                 {       //MethodID:517, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5077                 }
5078
5079                 public function endParade():void
5080                 {       //MethodID:518, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5081                 }
5082
5083                 public function get videoID():String
5084                 {       //MethodID:519, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5085                         return this._vars.watchFlashVars.watchVideoID;
5086                 }
5087
5088                 public function get videoTitle():String
5089                 {       //MethodID:520, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5090                         return this._vars.videoTitle;
5091                 }
5092
5093                 public function get videoTime():String
5094                 {       //MethodID:521, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5095                         return this._vars.watchFlashVars.gameTime;
5096                 }
5097
5098                 public function get videoCode():String
5099                 {       //MethodID:522, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5100                         return this._vars.watchFlashVars.gameKey;
5101                 }
5102
5103                 public function get nowTime():Number
5104                 {       //MethodID:523, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
5105                         return TimeUtils.time;
5106                 }
5107
5108                 public function get isChannel():Boolean
5109                 {       //MethodID:524, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5110                         return this._vars.isChannel;
5111                 }
5112
5113                 public function get segmentInfo():Object
5114                 {       //MethodID:525, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 121
5115                         var hug1:Object = {};
5116
5117                         if(this._vars.watchFlashVars.userSex != null) hug1.userSex = this._vars.watchFlashVars.userSex;
5118
5119                         if(this._vars.watchFlashVars.userAge != null) hug1.userAge = this._vars.watchFlashVars.userAge;
5120
5121                         if(this._vars.watchFlashVars.userPrefecture != null) hug1.userPrefecture = this._vars.watchFlashVars.userPrefecture;
5122
5123                         hug1.memberType = (this._initializeInfo.isPremium ? 1 : 0);
5124                         return hug1;
5125                 }
5126
5127                 public function get isVideoPlaying():Boolean
5128                 {       //MethodID:526, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
5129                         return this._videoController.isPlaying;
5130                 }
5131
5132                 public function set videoController(hug1:IVideoController):void
5133                 {       //MethodID:527, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
5134                         this._videoController = hug1;
5135                 }
5136
5137                 public function set flashVars(hug1:NicoFlashVars):void
5138                 {       //MethodID:528, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
5139                         this._vars = hug1;
5140                 }
5141
5142                 public function get isOfficialAnime():Boolean
5143                 {       //MethodID:529, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5144                         return this._vars.watchFlashVars.isOfficialAnime;
5145                 }
5146
5147                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
5148                 {       //MethodID:530, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 77
5149                         if(!this._player) return EventResult.THROUGH;
5150
5151                         if(!Boolean(this._setVolume)) return EventResult.THROUGH;
5152
5153                         if(hug1){
5154                                 this._setVolume.call(null, 0.0);
5155                         }else{
5156                                 this._setVolume.call(null, this._playerConfig.volume);
5157                         }
5158
5159                         return EventResult.THROUGH;
5160                 }
5161
5162                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
5163                 {       //MethodID:531, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 51
5164                         if(!this._player) return EventResult.THROUGH;
5165
5166                         if(!Boolean(this._setVolume)) return EventResult.THROUGH;
5167                         this._setVolume.call(null, hug1);
5168
5169                         return EventResult.THROUGH;
5170                 }
5171
5172                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsNicowariSkipUpdated(hug1:Boolean):EventResult
5173                 {       //MethodID:532, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
5174                         if(!this._player) return EventResult.THROUGH;
5175
5176                         this._isNicowariSkip = hug1;
5177
5178                         INicoMarqueePlayer(this._player).updateNicowariSkip(hug1);
5179
5180                         return EventResult.THROUGH;
5181                 }
5182
5183                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onServerTimeUpdated():EventResult
5184                 {       //MethodID:533, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 34
5185                         if(!this._onceSetupTimeUtils){
5186                                 this._onceSetupTimeUtils = true;
5187
5188                                 if(this._completePlayer) this.startPlayer();
5189                         }
5190
5191                         return EventResult.THROUGH;
5192                 }
5193
5194                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onFeedListUpdated(hug1:XML):EventResult
5195                 {       //MethodID:534, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
5196                         if(!this._player) return EventResult.THROUGH;
5197                         INicoMarqueePlayer(this._player).updateFeedList(hug1);
5198
5199                         return EventResult.THROUGH;
5200                 }
5201
5202                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAspectRatioUpdate(hug1:uint):EventResult
5203                 {       //MethodID:535, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 68
5204                         if(!this._player) return EventResult.THROUGH;
5205
5206                         var hug2:uint = ((hug1 == ScreenAspectRatio.NORMAL) ? MarqueeAspectRatio.NORMAL : MarqueeAspectRatio.WIDE);
5207
5208                         INicoMarqueePlayer(this._player).updateAspect(hug2);
5209
5210                         return EventResult.THROUGH;
5211                 }
5212
5213                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
5214                 {       //MethodID:536, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
5215                         if(!this._player) return EventResult.THROUGH;
5216                         INicoMarqueePlayer(this._player).updateScreenMode(hug1);
5217
5218                         return EventResult.THROUGH;
5219                 }
5220         }
5221 }
5222
5223 //■script032■
5224
5225 package jp.nicovideo.nicoplayer.hiroba.events{
5226
5227         //■class(instance)_index:41
5228         public class HirobaErrorStatus extends Object
5229         {
5230                 //static constructor
5231                 public static function HirobaErrorStatus$cinit()
5232                 {       //MethodID:538, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
5233                         HIROBA_INFO_NOT_FOUND = "hirobaInfoNotFound";
5234                         HIROBA_CONNECTOR_NOT_FOUND = "hirobaConnectorNotFound";
5235                 }
5236
5237                 //static variables/etc.
5238                 public static const HIROBA_INFO_NOT_FOUND:String = "hirobaInfoNotFound";//slotID:1
5239                 public static const HIROBA_CONNECTOR_NOT_FOUND:String = "hirobaConnectorNotFound";//slotID:2
5240
5241                 //constructor
5242                 public function HirobaErrorStatus()
5243                 {       //MethodID:539, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
5244                         super();
5245                 }
5246         }
5247 }
5248
5249 //■script033■
5250
5251 package jp.nicovideo.nicoplayer.models{
5252
5253         //■class(instance)_index:42
5254         public class ScreenAspectRatio extends Object
5255         {
5256                 //static constructor
5257                 public static function ScreenAspectRatio$cinit()
5258                 {       //MethodID:541, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
5259                         NORMAL = 0;
5260                         WIDE = 1;
5261                 }
5262
5263                 //static variables/etc.
5264                 public static const NORMAL:uint = 0;                            //slotID:1
5265                 public static const WIDE:uint = 1;                              //slotID:2
5266
5267                 //constructor
5268                 public function ScreenAspectRatio()
5269                 {       //MethodID:542, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
5270                         super();
5271                 }
5272         }
5273 }
5274
5275 //■script034■
5276
5277 package jp.nicovideo.nicoplayer.remocon{
5278
5279         import flash.events.Event
5280         import jp.nicovideo.marquee.models.info.IMarqueeInfo
5281         import jp.nicovideo.nicoplayer.models.comment.CommentRouter
5282         import jp.nicovideo.nicoplayer.storages.CommentPostResultStatus
5283         import jp.nicovideo.util.events.EventResult
5284
5285         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
5286
5287         //■class(instance)_index:43
5288         public class RemoconPlayerStateObserver extends Object
5289         {
5290                 //static constructor
5291                 public static function RemoconPlayerStateObserver$cinit()
5292                 {       //MethodID:544, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5293                 }
5294
5295                 //constructor
5296                 public function RemoconPlayerStateObserver(hug1:Function, hug2:IRemoconEventNotifier, hug3:IRemoconFullScreenKeeper)
5297                 {       //MethodID:546, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 87
5298                         internal var updateRemoconState:Function;                       //slotID:1
5299                         internal var notifier:IRemoconEventNotifier;                    //slotID:2
5300                         internal var fullScreenKeeper:IRemoconFullScreenKeeper;         //slotID:3
5301                         internal var remoconState:RemoconState;                         //slotID:4
5302
5303                         remoconState = null;
5304                         updateRemoconState = hug1;
5305                         notifier = hug2;
5306                         fullScreenKeeper = hug3;
5307
5308                         super();
5309
5310                         this._updateRemoconState = updateRemoconState;
5311                         this._notifier = notifier;
5312                         this._fullScreenKeeper = fullScreenKeeper;
5313                         remoconState = RemoconState.instance;
5314
5315                         remoconState.addEventListener(Event.CONNECT, function(hug1:Event, ...args):void{        //MethodID:545, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 24
5316                                 remoconState.removeEventListener(Event.CONNECT, args.callee);
5317                                 _updateRemoconState();
5318                         });
5319                 }
5320
5321                 //variables/etc.
5322                 private var _updateRemoconState:Function;                       //slotID:0
5323                 private var _isHirobaMode:Boolean;                              //slotID:0
5324                 private var _isNicowariMode:Boolean;                            //slotID:0
5325                 private var _notifier:IRemoconEventNotifier;                    //slotID:0
5326                 private var _fullScreenKeeper:IRemoconFullScreenKeeper;         //slotID:0
5327
5328                 private function _onChangedStatus():void
5329                 {       //MethodID:547, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 24
5330                         if(RemoconState.instance.isConnecting) this._updateRemoconState.apply();
5331                 }
5332
5333                 public function get isHirobaMode():Boolean
5334                 {       //MethodID:548, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5335                         return this._isHirobaMode;
5336                 }
5337
5338                 public function get isNicowariMode():Boolean
5339                 {       //MethodID:549, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5340                         return this._isNicowariMode;
5341                 }
5342
5343                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
5344                 {       //MethodID:550, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5345                         this._onChangedStatus();
5346
5347                         return EventResult.THROUGH;
5348                 }
5349
5350                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsLoopUpdated(hug1:Boolean):EventResult
5351                 {       //MethodID:551, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5352                         this._onChangedStatus();
5353
5354                         return EventResult.THROUGH;
5355                 }
5356
5357                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
5358                 {       //MethodID:552, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5359                         this._onChangedStatus();
5360
5361                         return EventResult.THROUGH;
5362                 }
5363
5364                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigCommentVisibleUpdated(hug1:Boolean):EventResult
5365                 {       //MethodID:553, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5366                         this._onChangedStatus();
5367
5368                         return EventResult.THROUGH;
5369                 }
5370
5371                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
5372                 {       //MethodID:554, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
5373                         this._onChangedStatus();
5374                         this._fullScreenKeeper.screenModeUpdateListener(hug1);
5375
5376                         return EventResult.THROUGH;
5377                 }
5378
5379                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
5380                 {       //MethodID:555, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5381                         this._onChangedStatus();
5382
5383                         return EventResult.THROUGH;
5384                 }
5385
5386                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
5387                 {       //MethodID:556, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
5388                         this._onChangedStatus();
5389
5390                         return EventResult.THROUGH;
5391                 }
5392
5393                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
5394                 {       //MethodID:557, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
5395                         this._isHirobaMode = hug1;
5396                         return EventResult.THROUGH;
5397                 }
5398
5399                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariStarted(hug1:IMarqueeInfo):EventResult
5400                 {       //MethodID:558, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
5401                         this._isNicowariMode = true;
5402                         return EventResult.THROUGH;
5403                 }
5404
5405                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariEnded(hug1:IMarqueeInfo):EventResult
5406                 {       //MethodID:559, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
5407                         this._isNicowariMode = false;
5408                         return EventResult.THROUGH;
5409                 }
5410
5411                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentPostFinished(hug1:String, hug2:String, hug3:Number):EventResult
5412                 {       //MethodID:560, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 47
5413                         var hug4:Boolean = (hug2 == CommentPostResultStatus.SUCCESS);
5414
5415                         this._notifier.receiveCommentPostResult(hug4, (hug4 ? null : RemoconPostCommentErrorStatus.OTHER));
5416
5417                         return EventResult.THROUGH;
5418                 }
5419
5420                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
5421                 {       //MethodID:561, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
5422                         this._notifier.receiveVideoSeekResult(hug1);
5423
5424                         return EventResult.THROUGH;
5425                 }
5426
5427                 public function onCommentRouterPostError(hug1:String):void
5428                 {       //MethodID:562, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 42
5429                         this._notifier.receiveCommentPostResult(false, ((hug1 == CommentRouter.ERROR_POST_SAME_COMMENT) ? RemoconPostCommentErrorStatus.SAME_MESSAGE : RemoconPostCommentErrorStatus.OTHER));
5430                 }
5431         }
5432 }
5433
5434 //■script035■
5435
5436 package jp.nicovideo.nicoplayer.config{
5437
5438
5439         public function getDebugMode():uint
5440         {       //dispID:1, MethodID:564, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
5441                 return DebugMode.NON;
5442         }
5443
5444 }
5445
5446 //■script036■
5447
5448 package jp.nicovideo.nicoplayer.models.api{
5449
5450         //■class(instance)_index:44
5451         public interface IRegisterBGM
5452         {
5453                 //static constructor
5454                 public static function IRegisterBGM$cinit()
5455                 {       //MethodID:566, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
5456                 }
5457
5458                 //variables/etc.
5459                 function registerBGMVideoIDs(hug1:Function, hug2:String, hug3:Array):void;  //MethodID:567, dispID:0
5460
5461                 function registerCMVideoIDs(hug1:Function, hug2:String, hug3:Array):void;   //MethodID:568, dispID:0
5462
5463                 //constructor
5464                 public function IRegisterBGM();                                             //MethodID:569, dispID:0
5465         }
5466 }
5467
5468 //■script037■
5469
5470 package jp.nicovideo.nicoplayer.models.api{
5471
5472         import jp.nicovideo.nicoplayer.config.NicoConfig
5473         import jp.nicovideo.util.HTTPUtils
5474
5475         //■class(instance)_index:45
5476         public class RegisterBGM extends Object implements IRegisterBGM
5477         {
5478                 //static constructor
5479                 public static function RegisterBGM$cinit()
5480                 {       //MethodID:571, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5481                 }
5482
5483                 //constructor
5484                 public function RegisterBGM(hug1:NicoConfig)
5485                 {       //MethodID:572, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
5486                         super();
5487
5488                         this.__cfg = hug1;
5489                 }
5490
5491                 //variables/etc.
5492                 private var __cfg:NicoConfig;                                   //slotID:0
5493
5494                 public function registerBGMVideoIDs(hug1:Function, hug2:String, hug3:Array):void
5495                 {       //MethodID:573, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 14
5496                         this.__callAPI(hug1, hug2, hug3, "bgm");
5497                 }
5498
5499                 public function registerCMVideoIDs(hug1:Function, hug2:String, hug3:Array):void
5500                 {       //MethodID:574, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 14
5501                         this.__callAPI(hug1, hug2, hug3, "cm");
5502                 }
5503
5504                 private function __callAPI(hug1:Function, hug2:String, hug3:Array, hug4:String):void
5505                 {       //MethodID:576, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 112
5506                         internal var f:Function;                                        //slotID:1
5507                         internal var threadID:String;                                   //slotID:2
5508                         internal var videoIDs:Array;                                    //slotID:3
5509                         internal var type:String;                                       //slotID:4
5510                         internal var param:Object;                                      //slotID:5
5511
5512                         f = hug1;
5513                         threadID = hug2;
5514                         videoIDs = hug3;
5515                         type = hug4;
5516                         param = {id:threadID, type:type};
5517
5518                         if(videoIDs && (videoIDs.length != 0)) param["bgm_id[]"] = videoIDs;
5519                         HTTPUtils.loadXML(function(hug1:XML):void{      //MethodID:575, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 56
5520                                 if(hug1 === null){
5521                                         f(false, null);
5522
5523                                         return;
5524                                 }
5525
5526                                 if(hug1.@status == "fail"){
5527                                         f(false, hug1.error.code);
5528
5529                                         return;
5530                                 }
5531
5532                                 f(true, null);
5533                         }, this.__cfg.REGISTERBGM_API_URL, param);
5534                 }
5535         }
5536 }
5537
5538 //■script038■
5539
5540 package jp.nicovideo.nicoplayer.models.comment{
5541
5542         import jp.nicovideo.util.Functions
5543         import jp.nicovideo.util.events.EventResult
5544         import jp.nicovideo.util.events.event_sender
5545
5546         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
5547         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
5548
5549         //■class(instance)_index:46
5550         public class CommentPoolContainer extends Object
5551         {
5552                 //static constructor
5553                 public static function CommentPoolContainer$cinit()
5554                 {       //MethodID:578, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5555                 }
5556
5557                 //constructor
5558                 public function CommentPoolContainer()
5559                 {       //MethodID:579, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
5560                         this._list = {};
5561                         this.onCommentPoolContainerUpdated = new Functions();
5562
5563                         super();
5564                 }
5565
5566                 //variables/etc.
5567                 private var _list:Object;                                       //slotID:0
5568                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPoolContainerUpdated:Functions;//slotID:0
5569
5570                 public function get lists():Object
5571                 {       //MethodID:580, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
5572                         return this._list;
5573                 }
5574
5575                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
5576                 {       //MethodID:581, LocalCount= 5 , MaxScope= 1, MaxStack= 7, CodeLength= 88
5577                         if(!this._list.hasOwnProperty(hug4)) this._list[hug4] = [];
5578
5579                         this._list[hug4] = CommentListUtils.update(this._list[hug4], hug1, hug2, hug3);
5580
5581                         onCommentPoolContainerUpdated.apply(hug1, hug2, hug3, hug4);
5582
5583                         return EventResult.THROUGH;
5584                 }
5585         }
5586 }
5587
5588 //■script039■
5589
5590 package jp.nicovideo.nicoplayer.models.flashvars{
5591
5592         import flash.utils.unescapeMultiByte
5593         import jp.nicovideo.ext.models.ThumbWatchViaName
5594         import jp.nicovideo.nicoplayer.models.comment.CommentListPublicStatus
5595         import jp.nicovideo.nicoplayer.models.video.VideoType
5596         import jp.nicovideo.util.Assert
5597         import jp.nicovideo.util.StringUtils
5598
5599         //■class(instance)_index:47
5600         public class NicoFlashVarsInitializer extends Object
5601         {
5602                 //static constructor
5603                 public static function NicoFlashVarsInitializer$cinit()
5604                 {       //MethodID:583, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5605                 }
5606
5607                 //static variables/etc.
5608                 public static function setFlashVars(hug1:NicoFlashVars, hug2:Object):void
5609                 {       //dispID:3, MethodID:584, LocalCount= 5 , MaxScope= 1, MaxStack= 7, CodeLength= 837
5610                         var hug3:Array = null;
5611                         var hug4:int = 0;
5612
5613                         if(StringUtils.isValidVideoID(hug2.v)){
5614                                 nico_flashvars.watchID = hug2.v;
5615                         }else if(!hug2.playlistId){
5616                                 throw new Error("WatchFlashVars.WatchFlashVars. invalid variable:v=" + hug2.v);
5617                         }
5618
5619                         if(StringUtils.isPureVideoID(hug2.videoId)) nico_flashvars.originalVideoID = hug2.videoId;
5620
5621                         if(hug2.mylist_count) hug1.mylistCount = uint(Number(hug2.mylist_count));
5622
5623                         if((hug2.movie_type == VideoType.FLV) || (hug2.movie_type == VideoType.MP4) || (hug2.movie_type == VideoType.SWF)) nico_flashvars.videoType = hug2.movie_type;
5624
5625                         nico_flashvars.isMymemory = (hug2.mm == "1");
5626                         nico_flashvars.hasOwnerThread = (hug2.has_owner_thread == "1");
5627                         nico_flashvars.forceLowMode = (hug2.lo == "1");
5628
5629                         if(hug2.eco) nico_flashvars.economyMode = hug2.eco;
5630
5631                         nico_flashvars.isCommunityThread = (hug2.is_community_thread == "1");
5632                         nico_flashvars.waitsSWFVideoInit = (hug2.dlcw == "1");
5633
5634                         if(hug2.thumbTitle) nico_flashvars.videoTitle = hug2.thumbTitle;
5635
5636                         if(hug2.thumbDescription) nico_flashvars.videoDescription = hug2.thumbDescription;
5637
5638                         if(hug2.player_version_xml) nico_flashvars.playerVersionUpdated = hug2.player_version_xml;
5639
5640                         if(hug2.player_info_xml) nico_flashvars.playerInfoUpdated = hug2.player_info_xml;
5641
5642                         nico_flashvars.isChannel = (hug2.is_channel == "1");
5643                         nico_flashvars.category = hug2.category;
5644                         nico_flashvars.categoryGroup = hug2.categoryGroup;
5645                         nico_flashvars.isDeepenedCommentForce = (hug2.isBackComment == "1");
5646
5647                         if(hug2.noComment) nico_flashvars.isNoComment = (hug2.noComment == "1");
5648
5649                         if(hug2.bgms){
5650                                 hug3 = hug2.bgms.toString().split(new RegExp("\s*,\s*"));
5651
5652                                 Assert.assert((hug3.length % 2) == 0);
5653
5654                                 nico_flashvars.importedBGMVideos = [];
5655                                 hug4 = 0;
5656
5657                                 while(hug4 < hug3.length){
5658                                         hug1.importedBGMVideos.push({id:hug3[hug4], type:hug3[hug4 + 1]});
5659
5660                                         hug4 += 2;
5661                                 }
5662                         }
5663
5664                         nico_flashvars.noRelatedVideo = (hug2.no_related_video == "1");
5665                         nico_flashvars.forceRelationInvisible = (hug2.noRelation == "1");
5666
5667                         if(hug2.country_code) nico_flashvars.countryCode = hug2.country_code;
5668
5669                         if(hug2.thumbWatch == "1"){
5670                                 setThumbFlashVars(hug1, hug2);
5671                         }else{
5672                                 setWatchFlashVars(hug1, hug2);
5673                         }
5674
5675                         if(hug2.community_id) nico_flashvars.communityID = hug2.community_id;
5676
5677                         if(hug2.community_global_id) nico_flashvars.communityGlobalID = hug2.community_global_id;
5678
5679                         nico_flashvars.isNoCommand = (hug2.noCommand == "1");
5680                         nico_flashvars.isNoAtComment = (hug2.noAtComment == "1");
5681                         nico_flashvars.isWide = (hug2.isWide == "1");
5682
5683                         if(hug2.videoDetail) nico_flashvars.videoDetail = hug2.videoDetail;
5684
5685                         if(hug2.leaf_switch) hug1.leafSwitch = int(hug2.leaf_switch);
5686                 }
5687
5688                 private static function setThumbFlashVars(hug1:NicoFlashVars, hug2:Object):void
5689                 {       //dispID:4, MethodID:585, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 509
5690                         var hug3:ThumbFlashVars = new ThumbFlashVars();
5691                         nico_flashvars.thumbFlashVars = hug3;
5692                         hug3.isThumbWatch = Boolean(hug2.thumbWatch);
5693                         nico_flashvars.playerTimestamp = (hug2.playerTimestamp || "");
5694                         nico_flashvars.thumbImage = hug2.thumbImage;
5695                         hug3.thumbWidth = Number(hug2.thumbWidth);
5696                         hug3.thumbHeight = Number(hug2.thumbHeight);
5697                         nico_flashvars.openNewWindow = (hug2.fv_new_window == "1");
5698                         hug3.transparent = Number(hug2.fv_transparent);
5699                         nico_flashvars.watchRef = hug2.fv_watch_ref;
5700                         var hug4:String = unescapeMultiByte(String(hug2.thumbPlayKey));
5701                         nico_flashvars.thumbPlayKey = hug4;
5702                         nico_flashvars.isP4Mode = (hug2.fv_p4_mode == "1");
5703                         nico_flashvars.noController = (hug2.fv_no_controller == "1");
5704                         nico_flashvars.thumbComment = (hug2.thumbComment == "1");
5705                         nico_flashvars.bySwf = (hug2.bySwf == "1");
5706                         nico_flashvars.noAdSense = (hug2.noAdSense == "1");
5707                         nico_flashvars.noLogo = (hug2.fv_no_logo == "1");
5708                         nico_flashvars.isNoLogin = (hug2.isNoLogin == "1");
5709
5710                         if(ThumbWatchViaName.contains(hug2.via)) nico_flashvars.via = hug2.via;
5711
5712                         if(new RegExp("^[0-9]+\.1\.").test(hug4)){
5713                                 nico_flashvars.isAutoPlay = (hug2.fv_autoplay == "1");
5714                                 nico_flashvars.noJumpMessage = (hug2.fv_no_jump_msg == "1");
5715                                 nico_flashvars.noComment = (hug2.fv_no_comment == "1");
5716                                 nico_flashvars.noCommentButton = (hug2.fv_no_comment_btn == "1");
5717                                 nico_flashvars.noLink = (hug2.fv_no_link == "1");
5718                                 nico_flashvars.noSound = (hug2.fv_no_sound == "1");
5719                         }
5720
5721                         if(hug1.isNoComment){
5722                                 nico_flashvars.noComment = true;
5723                                 nico_flashvars.noCommentButton = true;
5724                         }
5725                 }
5726
5727                 private static function setWatchFlashVars(hug1:NicoFlashVars, hug2:Object):void
5728                 {       //dispID:5, MethodID:586, LocalCount= 8 , MaxScope= 1, MaxStack= 5, CodeLength= 1536
5729                         var hug6:uint = 0;
5730                         var hug3:WatchFlashVars = new WatchFlashVars();
5731                         nico_flashvars.watchFlashVars = hug3;
5732                         nico_flashvars.isEditMode = (hug2.e == "1");
5733                         nico_flashvars.isReadOnly = (hug2.ro == "1");
5734                         nico_flashvars.isOwnerThreadEditMode = (hug2.owner_thread_edit_mode == "1");
5735                         nico_flashvars.isPostLocked = (hug2.isHtrzm == "1");
5736                         nico_flashvars.isCommentShuttered = (hug2.post_locked == "1");
5737                         nico_flashvars.isVideoOwner = (hug2.is_video_owner == "1");
5738                         nico_flashvars.hasEconomyMode = (hug2.iee == "1");
5739                         nico_flashvars.isNoBanner = (hug2.noBanner == "1");
5740                         nico_flashvars.thumbImage = hug2.thumbImage;
5741
5742                         if(hug2.us) hug3.userStatus = uint(Number(hug2.us));
5743
5744                         nico_flashvars.noPostPlayStats = (hug2.unps == "1");
5745                         var hug7:Boolean = (hug2.noNicotic == "1");
5746                         nico_flashvars.noNicotic = hug7;
5747                         var hug4:Boolean = hug7;
5748                         nico_flashvars.noAtPizza = ((hug2.fv_no_pizza == "1") || hug4);
5749                         nico_flashvars.noHiroba = ((hug2.noHiroba == "1") || hug4);
5750
5751                         if(hug2.wv_id) nico_flashvars.watchVideoID = hug2.wv_id;
5752
5753                         if(hug2.wv_time) nico_flashvars.gameTime = hug2.wv_time;
5754
5755                         if(hug2.wv_code) nico_flashvars.gameKey = hug2.wv_code;
5756
5757                         if(hug2.button_threshold) hug3.buttonThreshold = uint(Number(hug2.button_threshold));
5758
5759                         nico_flashvars.commentListPublicStatus = (((hug2.threadPublic == 2) || (hug2.threadPublic == 4)) ? CommentListPublicStatus.MEMBER_ONLY : CommentListPublicStatus.ALL_ENABLE);
5760
5761                         if(hug2.fv_play_from) nico_flashvars.jumpVPosPlayFrom = hug2.fv_play_from;
5762
5763                         if(hug2.fv_play_length) nico_flashvars.jumpPlayLength = hug2.fv_play_length;
5764
5765                         if(hug2.fv_returnid) nico_flashvars.jumpReturnVideoID = hug2.fv_returnid;
5766
5767                         if(hug2.fv_returnto) nico_flashvars.jumpVPosReturnTo = hug2.fv_returnto;
5768
5769                         if(hug2.fv_returnmsg) nico_flashvars.jumpReturnMessage = hug2.fv_returnmsg;
5770
5771                         var hug5:Boolean = false;
5772
5773                         if(hug2.marqueeUrl){
5774                                 nico_flashvars.marqueeUrl = hug2.marqueeUrl;
5775                                 hug5 = true;
5776                         }
5777
5778                         nico_flashvars.isNoMarquee = ((hug2.noMarquee == "1") || hug5);
5779                         nico_flashvars.isNoGetMarquee = (hug2.noGetMarquee == "1");
5780
5781                         if(hug2.open_src) nico_flashvars.isOwnerThreadAvailable = (hug2.open_src == "1");
5782
5783                         nico_flashvars.isMonetized = (hug2.is_monetized == "1");
5784
5785                         if(hug2.userSex && ((hug2.userSex == "0") || (hug2.userSex == "1"))) nico_flashvars.userSex = hug2.userSex;
5786
5787                         if(hug2.userAge){
5788                                 hug6 = parseInt(hug2.userAge, 10);
5789
5790                                 if(hug6 && !isNaN(hug6)) nico_flashvars.userAge = hug6.toString();
5791                         }
5792
5793                         if(hug2.userPrefecture && !isNaN(hug2.userPrefecture)) hug3.userPrefecture = String(hug2.userPrefecture);
5794
5795                         nico_flashvars.forceNicowariOff = (hug2.forceNicowariOff == "1");
5796
5797                         if(hug2.originalThreadId) nico_flashvars.originalThreadId = hug2.originalThreadId;
5798
5799                         nico_flashvars.isNoNicomesse = (hug2.noNicomesse == "1");
5800
5801                         if(hug2.channelId) nico_flashvars.channelID = hug2.channelId;
5802
5803                         if(hug2.channelTopURL) nico_flashvars.channelTopURL = hug2.channelTopURL;
5804
5805                         if(hug2.channelVideoURL) nico_flashvars.channelVideoURL = hug2.channelVideoURL;
5806
5807                         if(hug2.channelName) nico_flashvars.channelName = hug2.channelName;
5808
5809                         if(hug2.dicArticleURL) nico_flashvars.dicArticleURL = hug2.dicArticleURL;
5810
5811                         if(hug2.blogEmbedURL) nico_flashvars.blogEmbedURL = hug2.blogEmbedURL;
5812
5813                         if(hug2.uadAdvertiseURL) nico_flashvars.uadAdvertiseURL = hug2.uadAdvertiseURL;
5814
5815                         if(hug2.communityPostURL) nico_flashvars.communityPostURL = hug2.communityPostURL;
5816
5817                         if(hug2.csrfToken) nico_flashvars.csrfToken = hug2.csrfToken;
5818
5819                         nico_flashvars.useChecklistCache = ((hug2.useChecklistCache != null) && (hug2.useChecklistCache != "0"));
5820
5821                         if(hug2.noMovie) nico_flashvars.isNoMovie = (hug2.noMovie == "1");
5822
5823                         if(hug2.noDeflistAdd) nico_flashvars.noDeflistAdd = (hug2.noDeflistAdd == "1");
5824
5825                         if(hug2.liveKick) nico_flashvars.liveKick = hug2.liveKick;
5826
5827                         if(hug2.liveKickId) nico_flashvars.liveKickId = hug2.liveKickId;
5828
5829                         if(hug2.hoihoiTitle) nico_flashvars.hoihoiTitle = hug2.hoihoiTitle;
5830
5831                         if(hug2.hoihoiButton) nico_flashvars.hoihoiButton = hug2.hoihoiButton;
5832
5833                         if(hug2.hoihoiURL) nico_flashvars.hoihoiURL = hug2.hoihoiURL;
5834
5835                         if(hug2.noVideoMenu) nico_flashvars.isNoVideoMenu = (hug2.noVideoMenu == "1");
5836
5837                         if(hug2.noColor) nico_flashvars.noColor = (hug2.noColor == "1");
5838
5839                         if(hug2.noAppli) nico_flashvars.isNoAppli = (hug2.noAppli == "1");
5840
5841                         if(hug2.bootApp) hug3.bootApp = String(hug2.bootApp);
5842
5843                         if(hug2.videoUserId) nico_flashvars.videoUserID = hug2.videoUserId;
5844
5845                         if(hug2.isOfficialAnime) nico_flashvars.isOfficialAnime = (hug2.isOfficialAnime == "1");
5846
5847                         if(hug2.appliInstalled) hug3.appliInstalled = Number(hug2.appliInstalled);
5848
5849                         if(hug2.isAppliPromotion) nico_flashvars.isAppliPromotion = true;
5850
5851                         if(hug2.useVideoEnder != undefined) nico_flashvars.useVideoEnder = (hug2.useVideoEnder == "1");
5852                 }
5853
5854                 //constructor
5855                 public function NicoFlashVarsInitializer()
5856                 {       //MethodID:587, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
5857                         super();
5858                 }
5859         }
5860 }
5861
5862 //■script040■
5863
5864 package jp.nicovideo.nicoplayer.models.comment{
5865
5866         //■class(instance)_index:48
5867         public interface ICommentList implements EventSender
5868         {
5869                 //static constructor
5870                 public static function ICommentList$cinit()
5871                 {       //MethodID:589, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
5872                 }
5873
5874                 //variables/etc.
5875                 function reload(hug1:Function):void;                                        //MethodID:590, dispID:0
5876
5877                 function update(hug1:Function):void;                                        //MethodID:591, dispID:0
5878
5879                 function post(hug1:IComment):void;                                          //MethodID:592, dispID:0
5880
5881                 function serveCommentList():void;                                           //MethodID:593, dispID:0
5882
5883                 function get name():String;                                                 //MethodID:594, dispID:0
5884
5885                 function get currentList():Array;                                           //MethodID:595, dispID:0
5886
5887                 function clickButtonComment(hug1:IComment):void;                            //MethodID:596, dispID:0
5888
5889                 function isClickable(hug1:IComment):Boolean;                                //MethodID:597, dispID:0
5890
5891                 function get leavesNum():String;                                            //MethodID:598, dispID:0
5892
5893                 function get threadID():String;                                             //MethodID:599, dispID:0
5894
5895                 //constructor
5896                 public function ICommentList();                                             //MethodID:600, dispID:0
5897         }
5898 }
5899
5900 //■script041■
5901
5902 package jp.nicovideo.nicoplayer.models.filter{
5903
5904         //■class(instance)_index:49
5905         public interface IReplaceInfo
5906         {
5907                 //static constructor
5908                 public static function IReplaceInfo$cinit()
5909                 {       //MethodID:602, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
5910                 }
5911
5912                 //variables/etc.
5913                 function get originalSource():String;                                       //MethodID:603, dispID:0
5914
5915                 function get replacedSource():String;                                       //MethodID:604, dispID:0
5916
5917                 function get isWholeReplaced():Boolean;                                     //MethodID:605, dispID:0
5918
5919                 function get isRegExp():Boolean;                                            //MethodID:606, dispID:0
5920
5921                 //constructor
5922                 public function IReplaceInfo();                                             //MethodID:607, dispID:0
5923         }
5924 }
5925
5926 //■script042■
5927
5928 package jp.nicovideo.nicoplayer.models.filter{
5929
5930         import flash.net.URLVariables
5931         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
5932         import jp.nicovideo.nicoplayer.models.comment.IComment
5933         import jp.nicovideo.util.events.EventResult
5934
5935         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
5936         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
5937
5938         //■class(instance)_index:50
5939         public class ChannelReplacer extends Object
5940         {
5941                 //static constructor
5942                 public static function ChannelReplacer$cinit()
5943                 {       //MethodID:609, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
5944                 }
5945
5946                 //constructor
5947                 public function ChannelReplacer(hug1:String)
5948                 {       //MethodID:610, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 94
5949                         var hug4:URLVariables = null;
5950                         var hug5:_ReplaceInfo = null;
5951                         this._replaceList = [];
5952
5953                         super();
5954
5955                         var hug2:Array = hug1.split("&");
5956                         var hug3:uint = 0;
5957
5958                         while(hug3 < hug2.length){
5959                                 hug4 = new URLVariables(hug2[hug3]);
5960                                 hug5 = new _ReplaceInfo(hug4);
5961
5962                                 this._replaceList.push(hug5);
5963
5964                                 hug3++;
5965                         }
5966                 }
5967
5968                 //variables/etc.
5969                 private var _replaceList:Array;                                 //slotID:0
5970
5971                 public function isPostable(hug1:String):Boolean
5972                 {       //MethodID:611, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 115
5973                         var hug2:_ReplaceInfo = null;
5974                         var hug3:* = undefined;
5975
5976                         for each(hug2 in this._replaceList){
5977                                 if(hug2.isWholeReplaced && (hug2.replacedSource == null)){
5978                                         hug3 = (hug2.isRegExp ? new RegExp(hug2.originalSource, "g") : hug2.originalSource);
5979
5980                                         if(hug1.search(hug3) != (-1)) return false;
5981                                 }
5982                         }
5983
5984                         return true;
5985                 }
5986
5987                 private function _replace(hug1:IComment):IComment
5988                 {       //MethodID:612, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 225
5989                         var hug3:_ReplaceInfo = null;
5990                         var hug5:Boolean = false;
5991                         var hug6:* = undefined;
5992                         var hug2:String = hug1.message;
5993
5994                         for each(hug3 in this._replaceList){
5995                                 hug5 = hug3.isRegExp;
5996                                 hug6 = (hug5 ? new RegExp(hug3.originalSource, "g") : hug3.originalSource);
5997
5998                                 if(!hug3.isWholeReplaced){
5999                                         hug2 = hug2.replace(hug6, hug3.replacedSource);
6000                                 }else{
6001                                         if((hug5 && RegExp(hug6).test(hug2)) || (!hug5 && (hug2.indexOf(String(hug6)) != (-1)))) hug2 = hug3.replacedSource;
6002
6003                                         if(hug2 == null) return null;
6004                                 }
6005                         }
6006
6007                         if(hug2 == hug1.message) return hug1;
6008
6009                         var hug4:CommentBuilder = new CommentBuilder(hug1);
6010                         hug4.message = hug2;
6011                         return hug4.make();
6012                 }
6013
6014                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
6015                 {       //MethodID:613, LocalCount= 10 , MaxScope= 1, MaxStack= 5, CodeLength= 111
6016                         var hug6:IComment = null;
6017                         var hug7:IComment = null;
6018
6019                         if(hug1.length == 0) return EventResult.THROUGH;
6020
6021                         var hug5:Array = [];
6022
6023                         for each(hug6 in hug1){
6024                                 hug7 = this._replace(hug6);
6025
6026                                 if(hug7 == null){
6027                                 }else{
6028                                         hug5.push(hug7);
6029                                 }
6030                         }
6031
6032                         return EventResult.replace([hug5, hug2, hug3, hug4]);
6033                 }
6034
6035                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get replaceList():Array
6036                 {       //MethodID:614, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6037                         return this._replaceList;
6038                 }
6039         }
6040 }
6041
6042 import flash.net.URLVariables
6043
6044 //■class(instance)_index:51
6045 //private
6046 class _ReplaceInfo extends Object implements IReplaceInfo
6047 {
6048         //static constructor
6049         public static function _ReplaceInfo$cinit()
6050         {       //MethodID:615, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
6051         }
6052
6053         //constructor
6054         public function _ReplaceInfo(hug1:URLVariables)
6055         {       //MethodID:616, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 128
6056                 var hug2:String = null;
6057
6058                 super();
6059
6060                 for(hug2 in hug1){
6061                         if(hug1[hug2] != ""){
6062                                 this._replaced = hug1[hug2];
6063                         }else{
6064                                 this._replaced = null;
6065                         }
6066
6067                         if(hug2.indexOf("/") == 0){
6068                                 this._isRegExp = true;
6069                                 hug2 = hug2.substring(1);
6070                         }
6071
6072                         if(hug2.indexOf("*") == 0){
6073                                 this._isWholeReplaced = true;
6074                                 hug2 = hug2.substring(1);
6075                         }
6076
6077                         this._original = hug2;
6078                 }
6079         }
6080
6081         //variables/etc.
6082         private var _original:String;                                   //slotID:0
6083         private var _replaced:String;                                   //slotID:0
6084         private var _isWholeReplaced:Boolean = false;                   //slotID:0
6085         private var _isRegExp:Boolean = false;                          //slotID:0
6086
6087         public function get originalSource():String
6088         {       //MethodID:617, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6089                 return this._original;
6090         }
6091
6092         public function get replacedSource():String
6093         {       //MethodID:618, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6094                 return this._replaced;
6095         }
6096
6097         public function get isWholeReplaced():Boolean
6098         {       //MethodID:619, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6099                 return this._isWholeReplaced;
6100         }
6101
6102         public function get isRegExp():Boolean
6103         {       //MethodID:620, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6104                 return this._isRegExp;
6105         }
6106 }
6107
6108 //■script043■
6109
6110 package jp.nicovideo.nicoplayer.views{
6111
6112         import flash.display.Sprite
6113
6114         //■class(instance)_index:52
6115         public interface IVideoLayerManager
6116         {
6117                 //static constructor
6118                 public static function IVideoLayerManager$cinit()
6119                 {       //MethodID:622, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
6120                 }
6121
6122                 //variables/etc.
6123                 function setVideoSize(hug1:int, hug2:int):void;                             //MethodID:623, dispID:0
6124
6125                 function refreshLayers():void;                                              //MethodID:624, dispID:0
6126
6127                 function updateWideNicoSLayer(hug1:Boolean=false):void;                     //MethodID:625, dispID:0
6128
6129                 function updateVideoMask(hug1:Boolean=false):void;                          //MethodID:626, dispID:0
6130
6131                 function deepenComment():void;                                              //MethodID:627, dispID:0
6132
6133                 function createMarqueeVideoLayer():Sprite;                                  //MethodID:628, dispID:0
6134
6135                 function deleteMarqueeVideoLayer():void;                                    //MethodID:629, dispID:0
6136
6137                 function updateNicowariVisible(hug1:Boolean):void;                          //MethodID:630, dispID:0
6138
6139                 function get baseLayer():Sprite;                                            //MethodID:631, dispID:0
6140
6141                 function get videoLayer():Sprite;                                           //MethodID:632, dispID:0
6142
6143                 function get nicosLayer():Sprite;                                           //MethodID:633, dispID:0
6144
6145                 function get nicosMaskLayer():Sprite;                                       //MethodID:634, dispID:0
6146
6147                 function get nicosBGMLayer():Sprite;                                        //MethodID:635, dispID:0
6148
6149                 function get commentLayer():Sprite;                                         //MethodID:636, dispID:0
6150
6151                 function get jumpMsgLayer():Sprite;                                         //MethodID:637, dispID:0
6152
6153                 function get marqueeVideoLayer():Sprite;                                    //MethodID:638, dispID:0
6154
6155                 function get hirobaCommentLayer():Sprite;                                   //MethodID:639, dispID:0
6156
6157                 function get pluginLayer():Sprite;                                          //MethodID:640, dispID:0
6158
6159                 //constructor
6160                 public function IVideoLayerManager();                                       //MethodID:641, dispID:0
6161         }
6162 }
6163
6164 //■script044■
6165
6166 package jp.nicovideo.nicoplayer.views{
6167
6168         import flash.display.CapsStyle
6169         import flash.display.DisplayObject
6170         import flash.display.JointStyle
6171         import flash.display.LineScaleMode
6172         import flash.display.MovieClip
6173         import flash.display.Sprite
6174         import flash.errors.IllegalOperationError
6175         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
6176         import jp.nicovideo.nicoplayer.models.ScreenMode
6177         import jp.nicovideo.nicoplayer.models.playlist.VideoInfo
6178         import jp.nicovideo.util.events.EventResult
6179         import jp.nicovideo.util.events.event_receiver
6180
6181         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
6182         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
6183
6184         //■class(instance)_index:53
6185         public class VideoLayerManager extends Object implements IVideoLayerManager
6186         {
6187                 //static constructor
6188                 public static function VideoLayerManager$cinit()
6189                 {       //MethodID:643, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
6190                         OPTIONAL_LAYER_SPONSORVIDEOLAYER = "opt_sponsorvideo_layer";
6191                 }
6192
6193                 //static variables/etc.
6194                 public static const OPTIONAL_LAYER_SPONSORVIDEOLAYER:String = "opt_sponsorvideo_layer";//slotID:1
6195
6196                 //constructor
6197                 public function VideoLayerManager(hug1:MovieClip, hug2:uint)
6198                 {       //MethodID:644, LocalCount= 3 , MaxScope= 1, MaxStack= 21, CodeLength= 241
6199                         this._LAYERS_ORDER_DEFAULT = [this._LAYER_KEY_VIDEOLAYER, this._LAYER_KEY_VIDEOMASK, OPTIONAL_LAYER_SPONSORVIDEOLAYER, this._OPTIONAL_LAYER_SPONSORVIDEOMASK, this._LAYER_KEY_NICOSMASKLAYER, this._LAYER_KEY_NICOSMASKLAYERMASK, this._LAYER_KEY_NICOSLAYER, this._LAYER_KEY_NICOSLAYERMASK, this._LAYER_KEY_NICOSBGMLAYER, this._LAYER_KEY_NICOSBGMLAYERMASK, this._LAYER_KEY_COMMENTLAYER, this._LAYER_KEY_COMMENTMASK, this._LAYER_KEY_PLUGIN, this._LAYER_KEY_MARQUEEVIDEOLAYER, this._LAYER_KEY_MARQUEEVIDEOMASK, this._LAYER_KEY_HIROBACOMMENTLAYER, this._LAYER_KEY_HIROBACOMMENTMASK, this._LAYER_KEY_JUMPMSG, this._LAYER_KEY_FRAMELAYER, this._LAYER_KEY_FRAMEMASK];
6200                         this._LAYERS_ORDER_DEEPENEDCOMMENT = [this._LAYER_KEY_COMMENTLAYER, this._LAYER_KEY_COMMENTMASK, this._LAYER_KEY_VIDEOLAYER, this._LAYER_KEY_VIDEOMASK, OPTIONAL_LAYER_SPONSORVIDEOLAYER, this._OPTIONAL_LAYER_SPONSORVIDEOMASK, this._LAYER_KEY_NICOSMASKLAYER, this._LAYER_KEY_NICOSMASKLAYERMASK, this._LAYER_KEY_NICOSLAYER, this._LAYER_KEY_NICOSLAYERMASK, this._LAYER_KEY_NICOSBGMLAYER, this._LAYER_KEY_NICOSBGMLAYERMASK, this._LAYER_KEY_PLUGIN, this._LAYER_KEY_HIROBACOMMENTLAYER, this._LAYER_KEY_HIROBACOMMENTMASK, this._LAYER_KEY_MARQUEEVIDEOLAYER, this._LAYER_KEY_MARQUEEVIDEOMASK, this._LAYER_KEY_JUMPMSG, this._LAYER_KEY_FRAMELAYER, this._LAYER_KEY_FRAMEMASK];
6201                         this._NICOS_LAYERS = [this._LAYER_KEY_NICOSLAYER, this._LAYER_KEY_NICOSMASKLAYER, this._LAYER_KEY_NICOSBGMLAYER];
6202                         this._NICOS_MASKS = [this._LAYER_KEY_NICOSLAYERMASK, this._LAYER_KEY_NICOSMASKLAYERMASK, this._LAYER_KEY_NICOSBGMLAYERMASK];
6203                         this._registered = {};
6204                         this._layersOrder = this._LAYERS_ORDER_DEFAULT;
6205
6206                         super();
6207
6208                         this._baseLayer = hug1;
6209                         this._aspectRatio = hug2;
6210
6211                         this._initializeLayers();
6212                 }
6213
6214                 //variables/etc.
6215                 private const _OPTIONAL_LAYER_SPONSORVIDEOMASK:String = "opt_sponsorvideo_mask";//slotID:0
6216                 private const _LAYER_KEY_FRAMELAYER:String = "framelayer";      //slotID:0
6217                 private const _LAYER_KEY_FRAMEMASK:String = "framemask";        //slotID:0
6218                 private const _LAYER_KEY_VIDEOLAYER:String = "videolayer";      //slotID:0
6219                 private const _LAYER_KEY_VIDEOMASK:String = "videomask";        //slotID:0
6220                 private const _LAYER_KEY_NICOSLAYER:String = "nicos";           //slotID:0
6221                 private const _LAYER_KEY_NICOSLAYERMASK:String = "nicoslayermask";//slotID:0
6222                 private const _LAYER_KEY_NICOSMASKLAYER:String = "nicosmask";   //slotID:0
6223                 private const _LAYER_KEY_NICOSMASKLAYERMASK:String = "nicosmasklayermask";//slotID:0
6224                 private const _LAYER_KEY_NICOSBGMLAYER:String = "nicosbgm";     //slotID:0
6225                 private const _LAYER_KEY_NICOSBGMLAYERMASK:String = "nicosbgmlayermask";//slotID:0
6226                 private const _LAYER_KEY_COMMENTLAYER:String = "commentlayer";  //slotID:0
6227                 private const _LAYER_KEY_COMMENTMASK:String = "commentmask";    //slotID:0
6228                 private const _LAYER_KEY_JUMPMSG:String = "jumpmsg";            //slotID:0
6229                 private const _LAYER_KEY_MARQUEEVIDEOLAYER:String = "marqueevideolayer";//slotID:0
6230                 private const _LAYER_KEY_MARQUEEVIDEOMASK:String = "marqueevideomask";//slotID:0
6231                 private const _LAYER_KEY_HIROBACOMMENTLAYER:String = "hirobacommentLayer";//slotID:0
6232                 private const _LAYER_KEY_HIROBACOMMENTMASK:String = "hirobacommentMask";//slotID:0
6233                 private const _LAYER_KEY_PLUGIN:String = "pluginLayer";         //slotID:0
6234                 private const _LAYERS_ORDER_DEFAULT:Array;                      //slotID:0
6235                 private const _LAYERS_ORDER_DEEPENEDCOMMENT:Array;              //slotID:0
6236                 private const _NICOS_LAYERS:Array;                              //slotID:0
6237                 private const _NICOS_MASKS:Array;                               //slotID:0
6238                 private var _registered:Object;                                 //slotID:0
6239                 private var _layersOrder:Array;                                 //slotID:0
6240                 private var _aspectRatio:uint = 1;                              //slotID:0
6241                 private var _screenMode:uint = 0;                               //slotID:0
6242                 private var _scale:Number = 1.0;                                //slotID:0
6243                 private var _videoWidth:int = 0;                                //slotID:0
6244                 private var _videoHeight:int = 0;                               //slotID:0
6245                 private var _isDeepenCommentMode:Boolean = false;               //slotID:0
6246                 private var _isWideNicoSLayer:Boolean = false;                  //slotID:0
6247                 private var _isNoMaskMask:Boolean = false;                      //slotID:0
6248                 private var _isNicowariVisible:Boolean = false;                 //slotID:0
6249                 private var _isHirobaVisible:Boolean = false;                   //slotID:0
6250                 private var _baseLayer:MovieClip;                               //slotID:0
6251                 private var _frameLayer:Sprite;                                 //slotID:0
6252                 private var _pluginLayer:Sprite;                                //slotID:0
6253                 private var _jumpMsg:Sprite;                                    //slotID:0
6254                 private var _videoLayer:Sprite;                                 //slotID:0
6255                 private var _videoMask:Sprite;                                  //slotID:0
6256                 private var _marqueeVideoLayer:Sprite;                          //slotID:0
6257                 private var _marqueeVideoMask:Sprite;                           //slotID:0
6258                 private var _commentLayer:Sprite;                               //slotID:0
6259                 private var _commentMask:Sprite;                                //slotID:0
6260                 private var _hirobaCommentLayer:Sprite;                         //slotID:0
6261                 private var _hirobaCommentMask:Sprite;                          //slotID:0
6262                 private var _nicosLayer:Sprite;                                 //slotID:0
6263                 private var _nicosLayerMask:Sprite;                             //slotID:0
6264                 private var _nicosMaskLayer:Sprite;                             //slotID:0
6265                 private var _nicosMaskLayerMask:Sprite;                         //slotID:0
6266                 private var _nicosBGMLayer:Sprite;                              //slotID:0
6267                 private var _nicosBGMLayerMask:Sprite;                          //slotID:0
6268
6269                 private function _initializeLayers():void
6270                 {       //MethodID:645, LocalCount= 2 , MaxScope= 1, MaxStack= 8, CodeLength= 1098
6271                         this._videoWidth = this._videoLayerWidth;
6272                         this._videoHeight = this._videoLayerHeight;
6273                         this._frameLayer = new Sprite();
6274
6275                         this._frameLayer.graphics.lineStyle(1, 0, 1, false, LineScaleMode.NONE, CapsStyle.NONE, JointStyle.MITER);
6276                         this._frameLayer.graphics.drawRect(0, 0, (VideoLayerConstants.BASE_LAYER_HD_WIDTH + 2), (VideoLayerConstants.BASE_LAYER_HD_HEIGHT + 2));
6277
6278                         this._frameLayer.width = (this._baseLayerWidth + 2);
6279                         this._frameLayer.height = (this._baseLayerHeight + 2);
6280                         this._jumpMsg = this._createSimpleLayer(VideoLayerConstants.BASE_LAYER_HD_WIDTH, VideoLayerConstants.BASE_LAYER_HD_HEIGHT, 0, 0, 0, 0);
6281                         this._pluginLayer = this._createSimpleLayer(VideoLayerConstants.BASE_LAYER_SD_WIDTH, VideoLayerConstants.BASE_LAYER_SD_HEIGHT, 0, 0, 0, 0);
6282                         this._videoMask = this._createSimpleLayer(this._maskLayerWidth, this._maskLayerHeight, 0xFF0000);
6283                         this._videoLayer = this._createSimpleLayer(this._videoLayerWidth, this._videoLayerHeight, 0, 0, 0, 0);
6284                         this._videoLayer.mask = this._videoMask;
6285                         this._commentMask = this._createSimpleLayer(VideoLayerConstants.COMMENT_LAYER_HD_WIDTH, VideoLayerConstants.COMMENT_LAYER_HD_HEIGHT, 0xFF0000, -((VideoLayerConstants.COMMENT_LAYER_HD_WIDTH - VideoLayerConstants.COMMENT_LAYER_SD_WIDTH) / 2));
6286                         this._commentLayer = this._createSimpleLayer(VideoLayerConstants.COMMENT_LAYER_SD_WIDTH, VideoLayerConstants.COMMENT_LAYER_SD_HEIGHT, 0, 0, 0, 0);
6287                         this._commentLayer.mask = this._commentMask;
6288                         this._hirobaCommentMask = this._createSimpleLayer(VideoLayerConstants.COMMENT_LAYER_HD_WIDTH, VideoLayerConstants.COMMENT_LAYER_HD_HEIGHT, 0xFF0000);
6289                         this._hirobaCommentLayer = this._createSimpleLayer(VideoLayerConstants.COMMENT_LAYER_HD_WIDTH, VideoLayerConstants.COMMENT_LAYER_HD_HEIGHT, 0, 0, 0, 0);
6290                         this._hirobaCommentLayer.mask = this._hirobaCommentMask;
6291                         this._nicosLayerMask = this._createSimpleLayer(VideoLayerConstants.BASE_LAYER_SD_WIDTH, VideoLayerConstants.BASE_LAYER_SD_HEIGHT, 0xFF0000);
6292                         this._nicosLayer = this._createSimpleLayer(VideoLayerConstants.VIDEO_LAYER_HD_WIDTH, VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT, 0, 0, 0, 0);
6293                         this._nicosLayer.mask = this._nicosLayerMask;
6294                         this._nicosMaskLayerMask = this._createSimpleLayer(VideoLayerConstants.BASE_LAYER_SD_WIDTH, VideoLayerConstants.BASE_LAYER_SD_HEIGHT, 0xFF0000);
6295                         this._nicosMaskLayer = this._createSimpleLayer(VideoLayerConstants.VIDEO_LAYER_HD_WIDTH, VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT, 0, 0, 0, 0);
6296                         this._nicosMaskLayer.mask = this._nicosMaskLayerMask;
6297                         this._nicosBGMLayerMask = this._createSimpleLayer(VideoLayerConstants.BASE_LAYER_SD_WIDTH, VideoLayerConstants.BASE_LAYER_SD_HEIGHT, 0xFF0000);
6298                         this._nicosBGMLayer = this._createSimpleLayer(VideoLayerConstants.VIDEO_LAYER_HD_WIDTH, VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT, 0, 0, 0, 0);
6299                         this._nicosBGMLayer.mask = this._nicosBGMLayerMask;
6300
6301                         if(this._aspectRatio == ScreenAspectRatio.WIDE){
6302                                 var hug1:int = -1;
6303                                 this._frameLayer.y = hug1;
6304                                 this._frameLayer.x = hug1;
6305                         }else{
6306                                 this._frameLayer.x = (((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.BASE_LAYER_SD_WIDTH) / 2) - 1);
6307                                 this._frameLayer.y = -1;
6308                         }
6309
6310                         this._videoLayer.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - this._videoLayerWidth) / 2);
6311                         this._videoLayer.y = ((this._baseLayerHeight - this._videoLayerHeight) / 2);
6312                         this._videoMask.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - this._maskLayerWidth) / 2);
6313                         this._videoMask.y = ((this._baseLayerHeight - this._maskLayerHeight) / 2);
6314                         var hug1:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.COMMENT_LAYER_SD_WIDTH) / 2);
6315                         this._commentMask.x = hug1;
6316                         this._commentLayer.x = hug1;
6317                         var hug1:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.VIDEO_LAYER_SD_WIDTH) / 2);
6318                         this._nicosBGMLayer.x = hug1;
6319                         this._nicosMaskLayer.x = hug1;
6320                         this._nicosLayer.x = hug1;
6321                         var hug1:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.BASE_LAYER_SD_WIDTH) / 2);
6322                         this._nicosBGMLayerMask.x = hug1;
6323                         this._nicosMaskLayerMask.x = hug1;
6324                         this._nicosLayerMask.x = hug1;
6325                         this._pluginLayer.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.BASE_LAYER_SD_WIDTH) / 2);
6326
6327                         this._append(this._LAYER_KEY_VIDEOLAYER, this._videoLayer);
6328                         this._append(this._LAYER_KEY_VIDEOMASK, this._videoMask);
6329                         this._append(this._LAYER_KEY_NICOSMASKLAYER, this._nicosMaskLayer);
6330                         this._append(this._LAYER_KEY_NICOSMASKLAYERMASK, this._nicosMaskLayerMask);
6331                         this._append(this._LAYER_KEY_NICOSLAYER, this._nicosLayer);
6332                         this._append(this._LAYER_KEY_NICOSLAYERMASK, this._nicosLayerMask);
6333                         this._append(this._LAYER_KEY_NICOSBGMLAYER, this._nicosBGMLayer);
6334                         this._append(this._LAYER_KEY_NICOSBGMLAYERMASK, this._nicosBGMLayerMask);
6335                         this._append(this._LAYER_KEY_COMMENTLAYER, this._commentLayer);
6336                         this._append(this._LAYER_KEY_COMMENTMASK, this._commentMask);
6337                         this._append(this._LAYER_KEY_FRAMELAYER, this._frameLayer);
6338                         this._append(this._LAYER_KEY_JUMPMSG, this._jumpMsg);
6339                         this._append(this._LAYER_KEY_HIROBACOMMENTLAYER, this._hirobaCommentLayer);
6340                         this._append(this._LAYER_KEY_HIROBACOMMENTMASK, this._hirobaCommentMask);
6341                         this._append(this._LAYER_KEY_PLUGIN, this._pluginLayer);
6342
6343                         this._jumpMsg.visible = false;
6344
6345                         this._updateIndex();
6346                         this.updateNicowariVisible(false);
6347                         onHirobaPlayerVisibleUpdated(false);
6348                 }
6349
6350                 public function refreshLayers():void
6351                 {       //MethodID:646, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 116
6352                         while(this._videoLayer.numChildren > 0){
6353                                 this._videoLayer.removeChildAt(0);
6354                         }
6355
6356                         while(this._commentLayer.numChildren > 0){
6357                                 this._commentLayer.removeChildAt(0);
6358                         }
6359
6360                         var hug1:Sprite = this._registered[OPTIONAL_LAYER_SPONSORVIDEOLAYER];
6361
6362                         delete this._registered[OPTIONAL_LAYER_SPONSORVIDEOLAYER];
6363
6364                         if((hug1 != null) && this._baseLayer.contains(hug1)) this._baseLayer.removeChild(hug1);
6365                 }
6366
6367                 public function deepenComment():void
6368                 {       //MethodID:647, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 9
6369                         this._updateLayerDepth(true);
6370                 }
6371
6372                 public function createMarqueeVideoLayer():Sprite
6373                 {       //MethodID:648, LocalCount= 2 , MaxScope= 1, MaxStack= 8, CodeLength= 144
6374                         this._marqueeVideoMask = this._createSimpleLayer(VideoLayerConstants.VIDEO_LAYER_SD_WIDTH, VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT, 0xFF0000, 0);
6375                         this._marqueeVideoLayer = this._createSimpleLayer(VideoLayerConstants.VIDEO_LAYER_SD_WIDTH, VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT, 0, 0, 0, 0);
6376                         this._marqueeVideoLayer.mask = this._marqueeVideoMask;
6377                         var hug1:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.VIDEO_LAYER_SD_WIDTH) / 2);
6378                         this._marqueeVideoMask.x = hug1;
6379                         this._marqueeVideoLayer.x = hug1;
6380
6381                         this._append(this._LAYER_KEY_MARQUEEVIDEOLAYER, this._marqueeVideoLayer);
6382                         this._append(this._LAYER_KEY_MARQUEEVIDEOMASK, this._marqueeVideoMask);
6383
6384                         this._marqueeVideoLayer.mouseEnabled = true;
6385
6386                         this._updateIndex();
6387
6388                         return this._marqueeVideoLayer;
6389                 }
6390
6391                 public function createOptionalLayer(hug1:String):Sprite
6392                 {       //MethodID:649, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 141
6393                         if(this._LAYERS_ORDER_DEFAULT.indexOf(hug1) == (-1)) throw new ArgumentError("VideoLayerManager.createOptionalLayer: invalid name.");
6394
6395                         if(this._registered[hug1]) throw new IllegalOperationError("VideoLayerManager.createOptionalLayer: \"" + hug1 + "\" layer has been already created");
6396
6397                         var hug2:Sprite = new Sprite();
6398
6399                         hug2.graphics.beginFill(0, 0);
6400                         hug2.graphics.drawRect(0, 0, VideoLayerConstants.VIDEO_LAYER_HD_WIDTH, VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT);
6401                         hug2.graphics.endFill();
6402
6403                         hug2.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.VIDEO_LAYER_SD_WIDTH) / 2);
6404
6405                         this._append(hug1, hug2);
6406                         this._updateIndex();
6407
6408                         return hug2;
6409                 }
6410
6411                 public function deleteMarqueeVideoLayer():void
6412                 {       //MethodID:650, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 158
6413                         var hug2:String = null;
6414                         var hug1:Object = {};
6415
6416                         for(hug2 in this._registered){
6417                                 if((hug2 == this._LAYER_KEY_MARQUEEVIDEOLAYER) || (hug2 == this._LAYER_KEY_MARQUEEVIDEOMASK)){
6418                                 }else{
6419                                         hug1[hug2] = this._registered[hug2];
6420                                 }
6421                         }
6422
6423                         this._registered = hug1;
6424
6425                         if(this._baseLayer.contains(this._marqueeVideoLayer)) this._baseLayer.removeChild(this._marqueeVideoLayer);
6426
6427                         if(this._baseLayer.contains(this._marqueeVideoMask)) this._baseLayer.removeChild(this._marqueeVideoMask);
6428                         this._updateIndex();
6429
6430                         this._marqueeVideoLayer = null;
6431                         this._marqueeVideoMask = null;
6432                 }
6433
6434                 private function _append(hug1:String, hug2:Sprite):void
6435                 {       //MethodID:651, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 26
6436                         hug2.mouseEnabled = false;
6437
6438                         this._baseLayer.addChild(hug2);
6439
6440                         this._registered[hug1] = hug2;
6441                 }
6442
6443                 private function _createSimpleLayer(hug1:Number, hug2:Number, hug3:uint=0, hug4:Number=0.0, hug5:Number=0.0, hug6:Number=1.0):Sprite
6444                 {       //MethodID:652, LocalCount= 8 , MaxScope= 1, MaxStack= 5, CodeLength= 49
6445                         var hug7:Sprite = new Sprite();
6446
6447                         hug7.graphics.beginFill(hug3, hug6);
6448                         hug7.graphics.drawRect(hug4, hug5, hug1, hug2);
6449                         hug7.graphics.endFill();
6450
6451                         return hug7;
6452                 }
6453
6454                 private function _updateIndex():void
6455                 {       //MethodID:653, LocalCount= 10 , MaxScope= 1, MaxStack= 3, CodeLength= 214
6456                         var hug2:String = null;
6457                         var hug3:uint = 0;
6458                         var hug4:String = null;
6459                         var hug5:uint = 0;
6460                         var hug6:String = null;
6461                         var hug7:Sprite = null;
6462                         var hug1:Array = [];
6463
6464                         for(hug2 in this._registered){
6465                                 hug1.push(hug2);
6466                         }
6467
6468                         hug3 = 0;
6469
6470                         while(hug1.length > 0){
6471                                 hug4 = hug1[0];
6472                                 hug5 = 1;
6473
6474                                 while(hug5 < hug1.length){
6475                                         hug6 = hug1[hug5];
6476                                         hug7 = this._registered[hug6];
6477
6478                                         if(this._layersOrder.indexOf(hug4) > this._layersOrder.indexOf(hug6)) hug4 = hug6;
6479
6480                                         hug5++;
6481                                 }
6482
6483                                 this._baseLayer.setChildIndex(this._registered[hug4], hug3);
6484                                 hug1.splice(hug1.indexOf(hug4), 1);
6485
6486                                 hug3++;
6487                         }
6488                 }
6489
6490                 private function _updateLayerDepth(hug1:Boolean):void
6491                 {       //MethodID:654, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 384
6492                         var hug2:String = null;
6493                         this._isDeepenCommentMode = hug1;
6494                         this._layersOrder = (hug1 ? this._LAYERS_ORDER_DEEPENEDCOMMENT : this._LAYERS_ORDER_DEFAULT);
6495                         this._scale = (hug1 ? 0.8 : 1);
6496
6497                         for(hug2 in this._registered){
6498                                 var hug5:String = hug2;
6499
6500                                 switch(hug5){
6501                                 case this._LAYER_KEY_VIDEOLAYER:
6502                                         this._updateLayerScaleAndPosition(this._videoLayer, this._videoLayerWidth, this._videoLayerHeight, this._scale);
6503                                         break;
6504                                 case this._LAYER_KEY_NICOSLAYER:
6505                                 case this._LAYER_KEY_NICOSMASKLAYER:
6506                                 case this._LAYER_KEY_NICOSBGMLAYER:
6507                                         this._updateLayerScaleAndPosition(this._registered[hug2], (this._isWideNicoSLayer ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH), (this._isWideNicoSLayer ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT), this._scale);
6508                                         break;
6509                                 case this._LAYER_KEY_MARQUEEVIDEOLAYER:
6510                                 case this._LAYER_KEY_MARQUEEVIDEOMASK:
6511                                         this._updateLayerScaleAndPosition(this._registered[hug2], VideoLayerConstants.VIDEO_LAYER_SD_WIDTH, VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT, this._scale);
6512                                         break;
6513                                 default:
6514                                         break;
6515                                 }
6516                         }
6517
6518                         this._updateNicoSMaskLayerSize();
6519                         this._updateVideoMaskLayerSize();
6520                         this._updateIndex();
6521                 }
6522
6523                 private function _updateLayerScaleAndPosition(hug1:DisplayObject, hug2:int, hug3:int, hug4:Number):void
6524                 {       //MethodID:655, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 83
6525                         var hug5:int = 1;
6526                         hug1.scaleY = hug5;
6527                         hug1.scaleX = hug5;
6528                         hug1.width = hug2;
6529                         hug1.height = hug3;
6530                         var hug5:Number = hug4;
6531                         hug1.scaleY = hug5;
6532                         hug1.scaleX = hug5;
6533                         hug1.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - (hug2 * hug4)) / 2);
6534                         hug1.y = ((VideoLayerConstants.BASE_LAYER_HD_HEIGHT - (hug3 * hug4)) / 2);
6535                 }
6536
6537                 private function _updateFrameSize():void
6538                 {       //MethodID:656, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 139
6539                         if(this._aspectRatio == ScreenAspectRatio.WIDE){
6540                                 this._frameLayer.width = (VideoLayerConstants.BASE_LAYER_HD_WIDTH + 2);
6541                                 this._frameLayer.height = (VideoLayerConstants.BASE_LAYER_HD_HEIGHT + 2);
6542                                 var hug1:int = -1;
6543                                 this._frameLayer.y = hug1;
6544                                 this._frameLayer.x = hug1;
6545                         }else{
6546                                 this._frameLayer.width = (VideoLayerConstants.BASE_LAYER_SD_WIDTH + 2);
6547                                 this._frameLayer.height = (VideoLayerConstants.BASE_LAYER_SD_HEIGHT + 2);
6548                                 this._frameLayer.x = (((VideoLayerConstants.BASE_LAYER_HD_WIDTH - VideoLayerConstants.BASE_LAYER_SD_WIDTH) / 2) - 1);
6549                                 this._frameLayer.y = -1;
6550                         }
6551                 }
6552
6553                 public function setVideoSize(hug1:int, hug2:int):void
6554                 {       //MethodID:657, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 18
6555                         this._videoWidth = hug1;
6556                         this._videoHeight = hug2;
6557
6558                         this._updateVideoMaskLayerSize();
6559                 }
6560
6561                 private function _updateLayerVisible():void
6562                 {       //MethodID:658, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 111
6563                         var hug1:Boolean = (this._isNicowariVisible || this._isHirobaVisible);
6564                         this._videoLayer.visible = !hug1;
6565                         this._jumpMsg.visible = !hug1;
6566                         this._pluginLayer.visible = !hug1;
6567                         var hug2:Boolean = !hug1;
6568                         this._nicosBGMLayer.visible = hug2;
6569                         this._nicosMaskLayer.visible = hug2;
6570                         this._nicosLayer.visible = hug2;
6571                         this._hirobaCommentLayer.visible = this._isHirobaVisible;
6572
6573                         if(this._marqueeVideoLayer) this._marqueeVideoLayer.visible = this._isNicowariVisible;
6574                 }
6575
6576                 public function updateNicowariVisible(hug1:Boolean):void
6577                 {       //MethodID:659, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
6578                         this._isNicowariVisible = hug1;
6579
6580                         this._updateLayerVisible();
6581                 }
6582
6583                 public function updateWideNicoSLayer(hug1:Boolean=false):void
6584                 {       //MethodID:660, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
6585                         this._isWideNicoSLayer = hug1;
6586
6587                         this._updateNicoSMaskLayerSize();
6588                 }
6589
6590                 public function updateVideoMask(hug1:Boolean=false):void
6591                 {       //MethodID:661, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
6592                         this._isNoMaskMask = hug1;
6593
6594                         this._updateVideoMaskLayerSize();
6595                 }
6596
6597                 private function _updateVideoMaskLayerSize():void
6598                 {       //MethodID:662, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 183
6599                         var hug1:Number = NaN;
6600
6601                         if(this._isNoMaskMask){
6602                                 this._videoMask.width = VideoLayerConstants.BASE_LAYER_HD_WIDTH;
6603                                 this._videoMask.height = VideoLayerConstants.BASE_LAYER_HD_HEIGHT;
6604                                 var hug2:int = 0;
6605                                 this._videoMask.y = hug2;
6606                                 this._videoMask.x = hug2;
6607                         }else{
6608                                 hug1 = Math.min((this._videoLayerWidth / this._maskLayerWidth), (this._videoLayerHeight / this._maskLayerHeight));
6609                                 this._videoMask.width = (this._maskLayerWidth * this._scale * hug1);
6610                                 this._videoMask.height = (this._maskLayerHeight * this._scale * hug1);
6611                                 this._videoMask.x = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - (this._maskLayerWidth * this._scale * hug1)) / 2);
6612                                 this._videoMask.y = ((VideoLayerConstants.BASE_LAYER_HD_HEIGHT - (this._maskLayerHeight * this._scale * hug1)) / 2);
6613                         }
6614                 }
6615
6616                 private function _updateNicoSMaskLayerSize():void
6617                 {       //MethodID:663, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 393
6618                         var hug1:int = ((this._isWideNicoSLayer ? VideoLayerConstants.BASE_LAYER_HD_WIDTH : VideoLayerConstants.BASE_LAYER_SD_WIDTH) * this._scale);
6619                         var hug2:int = ((this._isWideNicoSLayer ? VideoLayerConstants.BASE_LAYER_HD_HEIGHT : VideoLayerConstants.BASE_LAYER_SD_HEIGHT) * this._scale);
6620                         var hug5:int = hug1;
6621                         this._nicosBGMLayerMask.width = hug5;
6622                         this._nicosMaskLayerMask.width = hug5;
6623                         this._nicosLayerMask.width = hug5;
6624                         var hug5:int = hug2;
6625                         this._nicosBGMLayerMask.height = hug5;
6626                         this._nicosMaskLayerMask.height = hug5;
6627                         this._nicosLayerMask.height = hug5;
6628                         var hug5:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - hug1) / 2);
6629                         this._nicosBGMLayerMask.x = hug5;
6630                         this._nicosMaskLayerMask.x = hug5;
6631                         this._nicosLayerMask.x = hug5;
6632                         var hug5:Number = ((VideoLayerConstants.BASE_LAYER_HD_HEIGHT - hug2) / 2);
6633                         this._nicosBGMLayerMask.y = hug5;
6634                         this._nicosMaskLayerMask.y = hug5;
6635                         this._nicosLayerMask.y = hug5;
6636                         var hug3:int = ((this._isWideNicoSLayer ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH) * this._scale);
6637                         var hug4:int = ((this._isWideNicoSLayer ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT) * this._scale);
6638                         var hug5:Number = ((VideoLayerConstants.BASE_LAYER_HD_WIDTH - hug3) / 2);
6639                         this._nicosBGMLayer.x = hug5;
6640                         this._nicosMaskLayer.x = hug5;
6641                         this._nicosLayer.x = hug5;
6642                         var hug5:Number = ((VideoLayerConstants.BASE_LAYER_HD_HEIGHT - hug4) / 2);
6643                         this._nicosBGMLayer.y = hug5;
6644                         this._nicosMaskLayer.y = hug5;
6645                         this._nicosLayer.y = hug5;
6646                 }
6647
6648                 public function get baseLayer():Sprite
6649                 {       //MethodID:664, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6650                         return this._baseLayer;
6651                 }
6652
6653                 public function get pluginLayer():Sprite
6654                 {       //MethodID:665, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6655                         return this._pluginLayer;
6656                 }
6657
6658                 public function get jumpMsgLayer():Sprite
6659                 {       //MethodID:666, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6660                         return this._jumpMsg;
6661                 }
6662
6663                 public function get videoLayer():Sprite
6664                 {       //MethodID:667, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6665                         return this._videoLayer;
6666                 }
6667
6668                 public function get marqueeVideoLayer():Sprite
6669                 {       //MethodID:668, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6670                         return this._marqueeVideoLayer;
6671                 }
6672
6673                 public function get commentLayer():Sprite
6674                 {       //MethodID:669, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6675                         return this._commentLayer;
6676                 }
6677
6678                 public function get hirobaCommentLayer():Sprite
6679                 {       //MethodID:670, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6680                         return this._hirobaCommentLayer;
6681                 }
6682
6683                 public function get nicosLayer():Sprite
6684                 {       //MethodID:671, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6685                         return this._nicosLayer;
6686                 }
6687
6688                 public function get nicosMaskLayer():Sprite
6689                 {       //MethodID:672, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6690                         return this._nicosMaskLayer;
6691                 }
6692
6693                 public function get nicosBGMLayer():Sprite
6694                 {       //MethodID:673, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6695                         return this._nicosBGMLayer;
6696                 }
6697
6698                 private function get _maskLayerWidth():int
6699                 {       //MethodID:674, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 25
6700                         return (this._isNoMaskMask ? this._baseLayerWidth : this._videoWidth);
6701                 }
6702
6703                 private function get _maskLayerHeight():int
6704                 {       //MethodID:675, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 25
6705                         return (this._isNoMaskMask ? this._baseLayerHeight : this._videoHeight);
6706                 }
6707
6708                 private function get _baseLayerWidth():int
6709                 {       //MethodID:676, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 39
6710                         var hug1:int = ((this._aspectRatio == ScreenAspectRatio.NORMAL) ? VideoLayerConstants.BASE_LAYER_SD_WIDTH : VideoLayerConstants.BASE_LAYER_HD_WIDTH);
6711                         return hug1;
6712                 }
6713
6714                 private function get _baseLayerHeight():int
6715                 {       //MethodID:677, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 39
6716                         var hug1:int = ((this._aspectRatio == ScreenAspectRatio.NORMAL) ? VideoLayerConstants.BASE_LAYER_SD_HEIGHT : VideoLayerConstants.BASE_LAYER_HD_HEIGHT);
6717                         return hug1;
6718                 }
6719
6720                 private function get _videoLayerWidth():int
6721                 {       //MethodID:678, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 39
6722                         var hug1:int = ((this._aspectRatio == ScreenAspectRatio.NORMAL) ? VideoLayerConstants.VIDEO_LAYER_SD_WIDTH : VideoLayerConstants.VIDEO_LAYER_HD_WIDTH);
6723                         return hug1;
6724                 }
6725
6726                 private function get _videoLayerHeight():int
6727                 {       //MethodID:679, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 39
6728                         var hug1:int = ((this._aspectRatio == ScreenAspectRatio.NORMAL) ? VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT);
6729                         return hug1;
6730                 }
6731
6732                 public function set isWideNicoSLayer(hug1:Boolean):void
6733                 {       //MethodID:680, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
6734                 }
6735
6736                 public function set isVideoSizeMask(hug1:Boolean):void
6737                 {       //MethodID:681, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
6738                 }
6739
6740                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigDeepenedCommentUpdated(hug1:Boolean):EventResult
6741                 {       //MethodID:682, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 14
6742                         this._updateLayerDepth(hug1);
6743
6744                         return EventResult.THROUGH;
6745                 }
6746
6747                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
6748                 {       //MethodID:683, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 73
6749                         this._screenMode = hug1;
6750
6751                         if((hug1 == ScreenMode.BROWSER_FULL) || (hug1 == ScreenMode.DISPLAY_FULL)){
6752                                 this._frameLayer.visible = false;
6753                         }else{
6754                                 this._frameLayer.visible = true;
6755                         }
6756
6757                         this._updateFrameSize();
6758                         this._updateLayerDepth(this._isDeepenCommentMode);
6759
6760                         return EventResult.THROUGH;
6761                 }
6762
6763                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
6764                 {       //MethodID:684, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 18
6765                         this._isHirobaVisible = hug1;
6766
6767                         this._updateLayerVisible();
6768
6769                         return EventResult.THROUGH;
6770                 }
6771
6772                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAspectRatioUpdate(hug1:uint):EventResult
6773                 {       //MethodID:685, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
6774                         this._aspectRatio = hug1;
6775
6776                         this._updateFrameSize();
6777                         this._updateLayerDepth(this._isDeepenCommentMode);
6778
6779                         return EventResult.THROUGH;
6780                 }
6781
6782                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistTargetUpdated(hug1:VideoInfo):EventResult
6783                 {       //MethodID:686, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
6784                         this.refreshLayers();
6785
6786                         return EventResult.THROUGH;
6787                 }
6788
6789                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get videoMask():Sprite
6790                 {       //MethodID:687, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6791                         return this._videoMask;
6792                 }
6793
6794                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get commentMask():Sprite
6795                 {       //MethodID:688, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6796                         return this._commentMask;
6797                 }
6798
6799                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get marqueeVideoMask():Sprite
6800                 {       //MethodID:689, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6801                         return this._marqueeVideoMask;
6802                 }
6803
6804                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get frameLayer():Sprite
6805                 {       //MethodID:690, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
6806                         return this._frameLayer;
6807                 }
6808         }
6809 }
6810
6811 //■script045■
6812
6813 package jp.nicovideo.nicoplayer.models.comment{
6814
6815         import flash.errors.IllegalOperationError
6816         import jp.nicovideo.util.Functions
6817         import jp.nicovideo.util.ObjectUtils
6818         import jp.nicovideo.util.events.EventResult
6819         import jp.nicovideo.util.events.event_sender
6820
6821         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
6822         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
6823
6824         //■class(instance)_index:54
6825         public class LocalCommentList extends Object
6826                         implements ICommentList, EventSender
6827         {
6828                 //static constructor
6829                 public static function LocalCommentList$cinit()
6830                 {       //MethodID:692, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
6831                 }
6832
6833                 //constructor
6834                 public function LocalCommentList()
6835                 {       //MethodID:693, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 36
6836                         this._commentList = [];
6837                         this._pastCommentList = [];
6838                         this.onCommentListUpdated = new Functions();
6839                         this.onCommentPost = new Functions();
6840
6841                         super();
6842                 }
6843
6844                 //variables/etc.
6845                 private var _commentList:Array;                                 //slotID:0
6846                 private var _pastCommentList:Array;                             //slotID:0
6847                 private var _isPast:Boolean = false;                            //slotID:0
6848                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentListUpdated:Functions;//slotID:0
6849                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPost:Functions;//slotID:0
6850
6851                 public function get eventNames():Array
6852                 {       //MethodID:694, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
6853                         return ["onCommentListUpdated", "onCommentPost"];
6854                 }
6855
6856                 public function reload(hug1:Function):void
6857                 {       //MethodID:695, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 9
6858                         hug1(null);
6859                 }
6860
6861                 public function update(hug1:Function):void
6862                 {       //MethodID:696, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 9
6863                         hug1(null);
6864                 }
6865
6866                 public function post(hug1:IComment):void
6867                 {       //MethodID:697, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 84
6868                         var hug2:CommentBuilder = new CommentBuilder(hug1);
6869                         hug2.resNo = (this._commentList.length + 1);
6870                         hug2.justPosted = true;
6871                         var hug3:IComment = hug2.make();
6872
6873                         this._commentList.push(hug3);
6874                         onCommentListUpdated.apply([hug3], [hug1], false, this.name);
6875                 }
6876
6877                 public function serveCommentList():void
6878                 {       //MethodID:698, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 54
6879                         onCommentListUpdated.apply((this._isPast ? this._pastCommentList : this._commentList), [], true, this.name);
6880                 }
6881
6882                 public function get currentList():Array
6883                 {       //MethodID:699, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
6884                         return this._commentList.concat();
6885                 }
6886
6887                 public function get name():String
6888                 {       //MethodID:700, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
6889                         return CommentConstants.CL_LOCAL;
6890                 }
6891
6892                 public function clickButtonComment(hug1:IComment):void
6893                 {       //MethodID:701, LocalCount= 8 , MaxScope= 1, MaxStack= 6, CodeLength= 169
6894                         var hug2:IComment = null;
6895                         var hug3:CommentBuilder = null;
6896                         var hug4:IComment = null;
6897
6898                         if(!hug1.command.hasButton) throw new IllegalOperationError("LocalCommentList.clickButtonComment: comment is not button.");
6899
6900                         for each(hug2 in this._commentList){
6901                                 if(hug2.resNo == hug1.resNo){
6902                                         hug3 = new CommentBuilder(hug2);
6903                                         hug3.clickCount = (hug2.clickCount + 1);
6904                                         hug4 = hug3.make();
6905
6906                                         onCommentListUpdated([hug4], [hug1], false, this.name);
6907
6908                                         return;
6909                                 }
6910                         }
6911
6912                         throw new Error("LocalCommentList.clickButtonComment: comment is not for LocalCommentList.");
6913                 }
6914
6915                 public function isClickable(hug1:IComment):Boolean
6916                 {       //MethodID:702, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 10
6917                         return hug1.command.hasButton;
6918                 }
6919
6920                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onTimeMachineDateUpdated(hug1:Boolean, hug2:Date=null):EventResult
6921                 {       //MethodID:703, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 24
6922                         this._isPast = hug1;
6923
6924                         ObjectUtils.callLater(this.serveCommentList);
6925
6926                         return EventResult.THROUGH;
6927                 }
6928
6929                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsEnabledLeafMode(hug1:Boolean):EventResult
6930                 {       //MethodID:704, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
6931                         return EventResult.THROUGH;
6932                 }
6933
6934                 public function get leavesNum():String
6935                 {       //MethodID:705, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
6936                         return "";
6937                 }
6938
6939                 public function get threadID():String
6940                 {       //MethodID:706, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
6941                         return "";
6942                 }
6943         }
6944 }
6945
6946 //■script046■
6947
6948 package jp.nicovideo.nicoplayer.tpls.shutter{
6949
6950         import jp.nicovideo.util.Functions
6951
6952         //■class(instance)_index:55
6953         public interface IControllerShutter
6954         {
6955                 //static constructor
6956                 public static function IControllerShutter$cinit()
6957                 {       //MethodID:708, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
6958                 }
6959
6960                 //variables/etc.
6961                 function close(hug1:int, hug2:String):void;                                 //MethodID:709, dispID:0
6962
6963                 function open(hug1:int):void;                                               //MethodID:710, dispID:0
6964
6965                 function isClosing(hug1:int):Boolean;                                       //MethodID:711, dispID:0
6966
6967                 function get onShutterOpened():Functions;                                   //MethodID:712, dispID:0
6968
6969                 function get onShutterClosed():Functions;                                   //MethodID:713, dispID:0
6970
6971                 //constructor
6972                 public function IControllerShutter();                                       //MethodID:714, dispID:0
6973         }
6974 }
6975
6976 //■script047■
6977
6978 package jp.nicovideo.nicoplayer.tpls.shutter{
6979
6980         import jp.nicovideo.util.Functions
6981
6982         //■class(instance)_index:57
6983         public class ControllerShutter extends Object implements IControllerShutter
6984         {
6985                 //static constructor
6986                 public static function ControllerShutter$cinit()
6987                 {       //MethodID:718, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
6988                 }
6989
6990                 //constructor
6991                 public function ControllerShutter(hug1:int, hug2:String)
6992                 {       //MethodID:719, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 69
6993                         this.__shutterStates = [];
6994                         this._onShutterOpened = new Functions();
6995                         this._onShutterClosed = new Functions();
6996
6997                         super();
6998
6999                         this._END_OF_ENUM = hug1;
7000                         var hug3:int = 0;
7001
7002                         while(hug3 < this._END_OF_ENUM){
7003                                 this.__shutterStates[hug3] = new _ShutterState();
7004                                 hug3++;
7005                         }
7006                 }
7007
7008                 //variables/etc.
7009                 private var _END_OF_ENUM:int;                                   //slotID:0
7010                 private var __shutterStates:Array;                              //slotID:0
7011                 private var __mostPreferredClosedShutter:int = -1;              //slotID:0
7012                 private const _onShutterOpened:Functions;                       //slotID:0
7013                 private const _onShutterClosed:Functions;                       //slotID:0
7014
7015                 public function get onShutterOpened():Functions
7016                 {       //MethodID:720, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7017                         return this._onShutterOpened;
7018                 }
7019
7020                 public function get onShutterClosed():Functions
7021                 {       //MethodID:721, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7022                         return this._onShutterClosed;
7023                 }
7024
7025                 public function close(hug1:int, hug2:String):void
7026                 {       //MethodID:722, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
7027                         this.__ensureShutterBeing(hug1);
7028
7029                         var hug3:_ShutterState = this.__shutterStates[hug1];
7030                         hug3.closed = true;
7031                         hug3.message = hug2;
7032
7033                         if(this.__mostPreferredClosedShutter <= hug1){
7034                                 this.__closeShutter(hug1);
7035
7036                                 this.__mostPreferredClosedShutter = hug1;
7037                         }
7038                 }
7039
7040                 public function open(hug1:int):void
7041                 {       //MethodID:723, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 113
7042                         this.__ensureShutterBeing(hug1);
7043
7044                         this.__shutterStates[hug1].closed = false;
7045
7046                         if(this.__mostPreferredClosedShutter == hug1){
7047                                 while(true){
7048                                         if(this.__mostPreferredClosedShutter >= 0){
7049                                                 if(!this.__shutterStates[this.__mostPreferredClosedShutter].closed){
7050                                                         this.__mostPreferredClosedShutter--;
7051                                                         continue;
7052                                                 }
7053
7054                                                 this.__closeShutter(this.__mostPreferredClosedShutter);
7055                                         }else{
7056                                                 this._onShutterOpened.apply();
7057                                         }
7058                                         break;
7059                                         this.__mostPreferredClosedShutter--;
7060                                 }
7061                         }else{
7062                         }//note: JumpOffset(33) is wrong
7063                 }
7064
7065                 public function isClosing(hug1:int):Boolean
7066                 {       //MethodID:724, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 20
7067                         this.__ensureShutterBeing(hug1);
7068
7069                         return this.__shutterStates[hug1].closed;
7070                 }
7071
7072                 private function __ensureShutterBeing(hug1:int):void
7073                 {       //MethodID:725, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 36
7074                         if((hug1 < 0) || (hug1 >= this._END_OF_ENUM)) throw new ArgumentError("shutter=" + hug1);
7075                 }
7076
7077                 private function __closeShutter(hug1:int):void
7078                 {       //MethodID:726, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 23
7079                         this._onShutterClosed.apply(hug1, this.__shutterStates[hug1].message);
7080                 }
7081         }
7082 }
7083
7084
7085 //■class(instance)_index:56
7086 //private
7087 class _ShutterState extends Object
7088 {
7089         //static constructor
7090         public static function _ShutterState$cinit()
7091         {       //MethodID:716, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
7092         }
7093
7094         //constructor
7095         public function _ShutterState()
7096         {       //MethodID:717, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
7097                 super();
7098         }
7099
7100         //variables/etc.
7101         public var closed:Boolean = false;                              //slotID:0
7102         public var message:String;                                      //slotID:0
7103 }
7104
7105 //■script048■
7106
7107 package jp.nicovideo.nicoplayer.models{
7108
7109         //■class(instance)_index:58
7110         public interface IPlayerConfig
7111         {
7112                 //static constructor
7113                 public static function IPlayerConfig$cinit()
7114                 {       //MethodID:728, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
7115                 }
7116
7117                 //variables/etc.
7118                 function get isLoop():Boolean;                                              //MethodID:729, dispID:0
7119
7120                 function set isLoop(hug1:Boolean):void;                                     //MethodID:730, dispID:0
7121
7122                 function get isMute():Boolean;                                              //MethodID:731, dispID:0
7123
7124                 function set isMute(hug1:Boolean):void;                                     //MethodID:732, dispID:0
7125
7126                 function get isNicowariSkip():Boolean;                                      //MethodID:733, dispID:0
7127
7128                 function set isNicowariSkip(hug1:Boolean):void;                             //MethodID:734, dispID:0
7129
7130                 function get volume():Number;                                               //MethodID:735, dispID:0
7131
7132                 function set volume(hug1:Number):void;                                      //MethodID:736, dispID:0
7133
7134                 function get commentVisible():Boolean;                                      //MethodID:737, dispID:0
7135
7136                 function set commentVisible(hug1:Boolean):void;                             //MethodID:738, dispID:0
7137
7138                 function get fullScreenMode():uint;                                         //MethodID:739, dispID:0
7139
7140                 function set fullScreenMode(hug1:uint):void;                                //MethodID:740, dispID:0
7141
7142                 function get screenMode():uint;                                             //MethodID:741, dispID:0
7143
7144                 function set screenMode(hug1:uint):void;                                    //MethodID:742, dispID:0
7145
7146                 function get useNG():Boolean;                                               //MethodID:743, dispID:0
7147
7148                 function set useNG(hug1:Boolean):void;                                      //MethodID:744, dispID:0
7149
7150                 function get hide184():Boolean;                                             //MethodID:745, dispID:0
7151
7152                 function set hide184(hug1:Boolean):void;                                    //MethodID:746, dispID:0
7153
7154                 function get use184():Boolean;                                              //MethodID:747, dispID:0
7155
7156                 function set use184(hug1:Boolean):void;                                     //MethodID:748, dispID:0
7157
7158                 function get synchronicScrolling():Boolean;                                 //MethodID:749, dispID:0
7159
7160                 function set synchronicScrolling(hug1:Boolean):void;                        //MethodID:750, dispID:0
7161
7162                 function get automaticLoading():Boolean;                                    //MethodID:751, dispID:0
7163
7164                 function set automaticLoading(hug1:Boolean):void;                           //MethodID:752, dispID:0
7165
7166                 function get oceColumnVPosWidth():uint;                                     //MethodID:753, dispID:0
7167
7168                 function set oceColumnVPosWidth(hug1:uint):void;                            //MethodID:754, dispID:0
7169
7170                 function get oceColumnCommandWidth():uint;                                  //MethodID:755, dispID:0
7171
7172                 function set oceColumnCommandWidth(hug1:uint):void;                         //MethodID:756, dispID:0
7173
7174                 function get oceColumnMessageWidth():uint;                                  //MethodID:757, dispID:0
7175
7176                 function set oceColumnMessageWidth(hug1:uint):void;                         //MethodID:758, dispID:0
7177
7178                 function get oceColumnCheckWidth():uint;                                    //MethodID:759, dispID:0
7179
7180                 function set oceColumnCheckWidth(hug1:uint):void;                           //MethodID:760, dispID:0
7181
7182                 function get liveCommentInvisible():Boolean;                                //MethodID:761, dispID:0
7183
7184                 function set liveCommentInvisible(hug1:Boolean):void;                       //MethodID:762, dispID:0
7185
7186                 function get aspectRatio():uint;                                            //MethodID:763, dispID:0
7187
7188                 function set aspectRatio(hug1:uint):void;                                   //MethodID:764, dispID:0
7189
7190                 function get isAvailableCommandPallete():Boolean;                           //MethodID:765, dispID:0
7191
7192                 function set isAvailableCommandPallete(hug1:Boolean):void;                  //MethodID:766, dispID:0
7193
7194                 function get autoPlay():Boolean;                                            //MethodID:767, dispID:0
7195
7196                 function set autoPlay(hug1:Boolean):void;                                   //MethodID:768, dispID:0
7197
7198                 function get deepenedCommentForce():Boolean;                                //MethodID:769, dispID:0
7199
7200                 function set deepenedCommentForce(hug1:Boolean):void;                       //MethodID:770, dispID:0
7201
7202                 function get deepenedComment():Boolean;                                     //MethodID:771, dispID:0
7203
7204                 function set deepenedComment(hug1:Boolean):void;                            //MethodID:772, dispID:0
7205
7206                 function get optionalCommentVisible():Boolean;                              //MethodID:773, dispID:0
7207
7208                 function set optionalCommentVisible(hug1:Boolean):void;                     //MethodID:774, dispID:0
7209
7210                 function get sponsorVisibleOnLoop():Boolean;                                //MethodID:775, dispID:0
7211
7212                 function set sponsorVisibleOnLoop(hug1:Boolean):void;                       //MethodID:776, dispID:0
7213
7214                 function get clockMessageVisible():Boolean;                                 //MethodID:777, dispID:0
7215
7216                 function set clockMessageVisible(hug1:Boolean):void;                        //MethodID:778, dispID:0
7217
7218                 function get isPlayerModeConfirm():Boolean;                                 //MethodID:779, dispID:0
7219
7220                 function set isPlayerModeConfirm(hug1:Boolean):void;                        //MethodID:780, dispID:0
7221
7222                 function get toolTipVisible():Boolean;                                      //MethodID:781, dispID:0
7223
7224                 function set toolTipVisible(hug1:Boolean):void;                             //MethodID:782, dispID:0
7225
7226                 function get isEnabledLeafMode():Boolean;                                   //MethodID:783, dispID:0
7227
7228                 function set isEnabledLeafMode(hug1:Boolean):void;                          //MethodID:784, dispID:0
7229
7230                 function get isPlaylistRandomPlay():Boolean;                                //MethodID:785, dispID:0
7231
7232                 function set isPlaylistRandomPlay(hug1:Boolean):void;                       //MethodID:786, dispID:0
7233
7234                 function getTabVisibleConfig(hug1:String):Boolean;                          //MethodID:787, dispID:0
7235
7236                 function setTabVisibleConfig(hug1:String, hug2:Boolean):void;               //MethodID:788, dispID:0
7237
7238                 //constructor
7239                 public function IPlayerConfig();                                            //MethodID:789, dispID:0
7240         }
7241 }
7242
7243 //■script049■
7244
7245 package jp.nicovideo.nicoplayer.models{
7246
7247         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowChildren.TabContentName
7248         import jp.nicovideo.util.CrossSharedObject
7249         import jp.nicovideo.util.Functions
7250         import jp.nicovideo.util.events.event_sender
7251         import jp.nicovideo.util.storage.LocalStorage
7252
7253         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
7254
7255         //■class(instance)_index:59
7256         public class PlayerConfig extends Object
7257                         implements EventSender, IPlayerConfig
7258         {
7259                 //static constructor
7260                 public static function PlayerConfig$cinit()
7261                 {       //MethodID:791, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
7262                 }
7263
7264                 //constructor
7265                 public function PlayerConfig(hug1:Boolean=false)
7266                 {       //MethodID:794, LocalCount= 3 , MaxScope= 2, MaxStack= 24, CodeLength= 1537
7267                         internal var isThumbWatch:Boolean = false;                      //slotID:1
7268                         internal var invalidFlag:Boolean;                               //slotID:2
7269
7270                         isThumbWatch = hug1;
7271                         this.soSound = CrossSharedObject.getStorage(this.SO_SOUND);
7272                         this.soCommentDG = CrossSharedObject.getStorage(this.SO_COMMENTDATAGRID);
7273                         this.soUseNG = CrossSharedObject.getStorage(this.SO_USENG);
7274                         this.soHide184 = CrossSharedObject.getStorage(this.SO_HIDE184);
7275                         this.soOwnerCommentEditor = CrossSharedObject.getStorage(this.SO_OWNERCOMMENT_EDITOR);
7276                         this.soOptionalComment = CrossSharedObject.getStorage(this.SO_OPTIONAL_COMMENT);
7277                         this.soCommentInputSetting = CrossSharedObject.getStorage(this.SO_COMMENTINPUT_SETTING);
7278                         this.soVideoSetting = CrossSharedObject.getStorage(this.SO_VIDEO_SETTING);
7279                         this.soPlayerSetting = CrossSharedObject.getStorage(this.SO_PLAYER_SETTING);
7280                         this.soTabSetting = CrossSharedObject.getStorage("jp.nicovideo.nicoplayer.models.PlayerConfig_tabSetting");
7281                         this.soEnabledLeafMode = CrossSharedObject.getStorage(this.SO_ENABLED_LEAF_MODE);
7282                         this._soPlaylist = CrossSharedObject.getStorage(this._SO_PLAYLIST);
7283                         this._eventNames = ["onPlayerConfigIsMuteUpdated", "onPlayerConfigIsLoopUpdated", "onPlayerConfigIsNicowariSkipUpdated", "onPlayerConfigUse184Updated", "onPlayerConfigVolumeUpdated", "onPlayerConfigCommentVisibleUpdated", "onPlayerConfigScreenModeUpdated", "onPlayerConfigFullScreenModeUpdated", "onPlayerConfigUseNGUpdated", "onPlayerConfigHide184Updated", "onPlayerConfigSynchronicScrollingUpdated", "onPlayerConfigAutomaticLoadingUpdated", "onPlayerConfigCommandPalleteAvailableUpdated", "onPlayerConfigAutoPlayUpdated", "onPlayerConfigSponsorVisibleOnLoopUpdated", "onPlayerConfigClockMessageVisibleUpdated", "onPlayerConfigDeepenedCommentUpdated", "onPlayerConfigPlayerModeUpdated", "onPlayerConfigToolTipVisibleUpdated", "onPlayerConfigTabContentVisibleUpdated", "onPlayerConfigliveCommentInvisibleUpdate", "onPlayerConfigIsEnabledLeafMode", "onPlayerConfigIsPlaylistRandomPlayUpdated"];
7284                         this.onPlayerConfigIsMuteUpdated = new Functions();
7285                         this.onPlayerConfigIsLoopUpdated = new Functions();
7286                         this.onPlayerConfigIsNicowariSkipUpdated = new Functions();
7287                         this.onPlayerConfigUse184Updated = new Functions();
7288                         this.onPlayerConfigVolumeUpdated = new Functions();
7289                         this.onPlayerConfigCommentVisibleUpdated = new Functions();
7290                         this.onPlayerConfigScreenModeUpdated = new Functions();
7291                         this.onPlayerConfigFullScreenModeUpdated = new Functions();
7292                         this.onPlayerConfigUseNGUpdated = new Functions();
7293                         this.onPlayerConfigHide184Updated = new Functions();
7294                         this.onPlayerConfigSynchronicScrollingUpdated = new Functions();
7295                         this.onPlayerConfigAutomaticLoadingUpdated = new Functions();
7296                         this.onPlayerConfigSponsorVisibleOnLoopUpdated = new Functions();
7297                         this.onPlayerConfigTabContentVisibleUpdated = new Functions();
7298                         this.onPlayerConfigliveCommentInvisibleUpdate = new Functions();
7299                         this.onPlayerConfigAspectRatioUpdate = new Functions();
7300                         this.onPlayerConfigIsEnabledLeafMode = new Functions();
7301                         this.onPlayerConfigCommandPalleteAvailableUpdated = new Functions();
7302                         this.onPlayerConfigAutoPlayUpdated = new Functions();
7303                         this.onPlayerConfigDeepenedCommentUpdated = new Functions();
7304                         this.onPlayerConfigOptionalCommentVisibleUpdated = new Functions();
7305                         this.onPlayerConfigClockMessageVisibleUpdated = new Functions();
7306                         this.onPlayerConfigPlayerModeUpdated = new Functions();
7307                         this.onPlayerConfigToolTipVisibleUpdated = new Functions();
7308                         this.onPlayerConfigIsPlaylistRandomPlayUpdated = new Functions();
7309
7310                         super();
7311
7312                         this._isThumbWatch = isThumbWatch;
7313                         this._commentVisible = true;
7314                         this._screenMode = ScreenMode.NORMAL;
7315
7316                         if((this.soSound.data.mute == undefined) || (this.soSound.data.volume != undefined)){
7317                                 if(this.soSound.data.mute == undefined) this.soSound.data.mute = false;
7318
7319                                 if(this.soSound.data.volume == undefined) this.soSound.data.volume = 50;
7320                                 this.soSound.flush();
7321                         }
7322
7323                         if((this.soCommentDG.data.isLoglistAutoDL2 == undefined) || (this.soCommentDG.data.liveCommentInvisible == undefined)){
7324                                 if(this.soCommentDG.data.isLoglistAutoDL2 == undefined) this.soCommentDG.data.isLoglistAutoDL2 = false;
7325
7326                                 if(this.soCommentDG.data.liveCommentInvisible == undefined) this.soCommentDG.data.liveCommentInvisible = false;
7327                                 this.soCommentDG.flush();
7328                         }
7329
7330                         if(this.soUseNG.data.flag == undefined){
7331                                 this.soUseNG.data.flag = true;
7332
7333                                 this.soUseNG.flush();
7334                         }
7335
7336                         if(this.soHide184.data.flag == undefined){
7337                                 this.soHide184.data.flag = false;
7338
7339                                 this.soHide184.flush();
7340                         }
7341
7342                         if((this.soVideoSetting.data.isLoop == undefined) || (this.soVideoSetting.data.fullScreenMode == undefined) || (this.soVideoSetting.data.autoPlay == undefined) || (this.soVideoSetting.data.isNicowariSkip == undefined) || (this.soVideoSetting.data.sponsorVisibleOnLoop == undefined)){
7343                                 if(this.soVideoSetting.data.isLoop == undefined) this.soVideoSetting.data.isLoop = false;
7344
7345                                 if(this.soVideoSetting.data.fullScreenMode == undefined) this.soVideoSetting.data.fullScreenMode = ScreenMode.BROWSER_FULL;
7346
7347                                 if(this.soVideoSetting.data.autoPlay == undefined) this.soVideoSetting.data.autoPlay = false;
7348
7349                                 if(this.soVideoSetting.data.isNicowariSkip == undefined) this.soVideoSetting.data.isNicowariSkip = false;
7350
7351                                 if(this.soVideoSetting.data.sponsorVisibleOnLoop == undefined) this.soVideoSetting.data.sponsorVisibleOnLoop = true;
7352                                 this.soVideoSetting.flush();
7353                         }
7354
7355                         if((this.soCommentInputSetting.data.use184 == undefined) || (this.soCommentInputSetting.data.commandPalleteAvailable == undefined)){
7356                                 if(this.soCommentInputSetting.data.use184 == undefined) this.soCommentInputSetting.data.use184 = true;
7357
7358                                 if(this.soCommentInputSetting.data.commandPalleteAvailable == undefined) this.soCommentInputSetting.data.commandPalleteAvailable = true;
7359                                 this.soCommentInputSetting.flush();
7360                         }
7361
7362                         if(this.soOptionalComment.data.isVisible == undefined){
7363                                 this.soOptionalComment.data.isVisible = true;
7364
7365                                 this.soOptionalComment.flush();
7366                         }
7367
7368                         this.soOwnerCommentEditor.data.columnVPosWidth = 52;
7369                         this.soOwnerCommentEditor.data.columnCommandWidth = 64;
7370                         this.soOwnerCommentEditor.data.columnMessageWidth = 199;
7371                         this.soOwnerCommentEditor.data.columnCheckWidth = 21;
7372
7373                         if((this.soPlayerSetting.data.clockMessageVisible == undefined) || (this.soPlayerSetting.data.playerMode == undefined) || (this.soPlayerSetting.data.isModeConfirm == undefined) || (this.soPlayerSetting.data.toolTipVisible == undefined)){
7374                                 if(this.soPlayerSetting.data.clockMessageVisible == undefined) this.soPlayerSetting.data.clockMessageVisible = true;
7375
7376                                 if(this.soPlayerSetting.data.isModeConfirm == undefined) this.soPlayerSetting.data.isModeConfirm = true;
7377
7378                                 if(this.soPlayerSetting.data.toolTipVisible == undefined) this.soPlayerSetting.data.toolTipVisible = true;
7379                                 this.soPlayerSetting.flush();
7380                         }
7381
7382                         if(this.soEnabledLeafMode.data.isEnabledLeafMode == undefined){
7383                                 this.soEnabledLeafMode.data.isEnabledLeafMode = true;
7384
7385                                 this.soEnabledLeafMode.flush();
7386                         }
7387
7388                         invalidFlag = false;
7389
7390                         TabContentName.TAB_NAMES.every(function(hug1:String, hug2:int, hug3:Array):Boolean{     //MethodID:792, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 28
7391                                 if(soTabSetting.data[hug1] == undefined){
7392                                         invalidFlag = true;
7393                                         return false;
7394                                 }
7395
7396                                 return true;
7397                         }, null);
7398
7399                         if(invalidFlag){
7400                                 TabContentName.TAB_NAMES.forEach(function(hug1:String, hug2:int, hug3:Array):void{      //MethodID:793, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 12
7401                                         soTabSetting.data[hug1] = true;
7402                                 }, null);
7403                                 this.soTabSetting.flush();
7404                         }
7405
7406                         if(this._soPlaylist.data.isRandomPlay == undefined){
7407                                 this._soPlaylist.data.isRandomPlay = false;
7408
7409                                 this._soPlaylist.flush();
7410                         }
7411
7412                         if(this._isThumbWatch) this._isLoopOnThumbwatch = false;
7413                 }
7414
7415                 //variables/etc.
7416                 private const SO_SOUND:String = "sound";                        //slotID:0
7417                 private const SO_COMMENTDATAGRID:String = "logList";            //slotID:0
7418                 private const SO_USENG:String = "ngCheck";                      //slotID:0
7419                 private const SO_HIDE184:String = "ng184";                      //slotID:0
7420                 private const SO_COMMENTINPUT_SETTING:String = "commentInputSetting";//slotID:0
7421                 private const SO_VIDEO_SETTING:String = "videoSetting";         //slotID:0
7422                 private const SO_OWNERCOMMENT_EDITOR:String = "ownerCommentEditor";//slotID:0
7423                 private const SO_PLAYER_SETTING:String = "playerSetting";       //slotID:0
7424                 private const SO_OPTIONAL_COMMENT:String = "optionalComment";   //slotID:0
7425                 private const SO_ENABLED_LEAF_MODE:String = "enabledLeafMode";  //slotID:0
7426                 private const _SO_PLAYLIST:String = "playlist";                 //slotID:0
7427                 private var soSound:LocalStorage;                               //slotID:0
7428                 private var soCommentDG:LocalStorage;                           //slotID:0
7429                 private var soUseNG:LocalStorage;                               //slotID:0
7430                 private var soHide184:LocalStorage;                             //slotID:0
7431                 private var soOwnerCommentEditor:LocalStorage;                  //slotID:0
7432                 private var soOptionalComment:LocalStorage;                     //slotID:0
7433                 private var soCommentInputSetting:LocalStorage;                 //slotID:0
7434                 private var soVideoSetting:LocalStorage;                        //slotID:0
7435                 private var soPlayerSetting:LocalStorage;                       //slotID:0
7436                 private var soTabSetting:LocalStorage;                          //slotID:0
7437                 private var soEnabledLeafMode:LocalStorage;                     //slotID:0
7438                 private var _soPlaylist:LocalStorage;                           //slotID:0
7439                 private var _commentVisible:Boolean;                            //slotID:0
7440                 private var _screenMode:uint;                                   //slotID:0
7441                 private var _aspectRatio:uint = 1;                              //slotID:0
7442                 private var _deepenedCommentForce:Boolean = false;              //slotID:0
7443                 private var _deepenedComment:Boolean = false;                   //slotID:0
7444                 private var _optionalCommentVisible:Boolean;                    //slotID:0
7445                 private var _isLoopOnThumbwatch:Boolean;                        //slotID:0
7446                 private const _eventNames:Array;                                //slotID:0
7447                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigIsMuteUpdated:Functions;//slotID:0
7448                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigIsLoopUpdated:Functions;//slotID:0
7449                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigIsNicowariSkipUpdated:Functions;//slotID:0
7450                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigUse184Updated:Functions;//slotID:0
7451                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigVolumeUpdated:Functions;//slotID:0
7452                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigCommentVisibleUpdated:Functions;//slotID:0
7453                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigScreenModeUpdated:Functions;//slotID:0
7454                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigFullScreenModeUpdated:Functions;//slotID:0
7455                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigUseNGUpdated:Functions;//slotID:0
7456                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigHide184Updated:Functions;//slotID:0
7457                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigSynchronicScrollingUpdated:Functions;//slotID:0
7458                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigAutomaticLoadingUpdated:Functions;//slotID:0
7459                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigSponsorVisibleOnLoopUpdated:Functions;//slotID:0
7460                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigTabContentVisibleUpdated:Functions;//slotID:0
7461                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigliveCommentInvisibleUpdate:Functions;//slotID:0
7462                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigAspectRatioUpdate:Functions;//slotID:0
7463                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigIsEnabledLeafMode:Functions;//slotID:0
7464                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigCommandPalleteAvailableUpdated:Functions;//slotID:0
7465                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigAutoPlayUpdated:Functions;//slotID:0
7466                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigDeepenedCommentUpdated:Functions;//slotID:0
7467                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigOptionalCommentVisibleUpdated:Functions;//slotID:0
7468                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigClockMessageVisibleUpdated:Functions;//slotID:0
7469                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigPlayerModeUpdated:Functions;//slotID:0
7470                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigToolTipVisibleUpdated:Functions;//slotID:0
7471                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlayerConfigIsPlaylistRandomPlayUpdated:Functions;//slotID:0
7472                 private var _isThumbWatch:Boolean;                              //slotID:0
7473
7474                 public function get eventNames():Array
7475                 {       //MethodID:795, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7476                         return this._eventNames;
7477                 }
7478
7479                 public function get isMute():Boolean
7480                 {       //MethodID:796, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7481                         return this.soSound.data.mute;
7482                 }
7483
7484                 public function set isMute(hug1:Boolean):void
7485                 {       //MethodID:797, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7486                         this.soSound.data.mute = hug1;
7487
7488                         this.soSound.flush();
7489                         onPlayerConfigIsMuteUpdated.apply(hug1);
7490                 }
7491
7492                 public function get isLoop():Boolean
7493                 {       //MethodID:798, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 26
7494                         if(this._isThumbWatch) return this._isLoopOnThumbwatch;
7495
7496                         return this.soVideoSetting.data.isLoop;
7497                 }
7498
7499                 public function set isLoop(hug1:Boolean):void
7500                 {       //MethodID:799, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 62
7501                         if(this._isThumbWatch){
7502                                 this._isLoopOnThumbwatch = hug1;
7503                         }else{
7504                                 this.soVideoSetting.data.isLoop = hug1;
7505
7506                                 this.soVideoSetting.flush();
7507                         }
7508
7509                         onPlayerConfigIsLoopUpdated.apply(hug1);
7510                 }
7511
7512                 public function get isNicowariSkip():Boolean
7513                 {       //MethodID:800, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7514                         return this.soVideoSetting.data.isNicowariSkip;
7515                 }
7516
7517                 public function set isNicowariSkip(hug1:Boolean):void
7518                 {       //MethodID:801, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7519                         this.soVideoSetting.data.isNicowariSkip = hug1;
7520
7521                         this.soVideoSetting.flush();
7522                         onPlayerConfigIsNicowariSkipUpdated.apply(hug1);
7523                 }
7524
7525                 public function get use184():Boolean
7526                 {       //MethodID:802, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7527                         return this.soCommentInputSetting.data.use184;
7528                 }
7529
7530                 public function set use184(hug1:Boolean):void
7531                 {       //MethodID:803, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7532                         this.soCommentInputSetting.data.use184 = hug1;
7533
7534                         this.soCommentInputSetting.flush();
7535                         onPlayerConfigUse184Updated.apply(hug1);
7536                 }
7537
7538                 public function get volume():Number
7539                 {       //MethodID:804, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 16
7540                         return (this.soSound.data.volume / 100);
7541                 }
7542
7543                 public function set volume(hug1:Number):void
7544                 {       //MethodID:805, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 79
7545                         if((hug1 < 0.0) || (hug1 > 1)) return;
7546
7547                         this.soSound.data.volume = (hug1 * 100);
7548
7549                         this.soSound.flush();
7550                         onPlayerConfigVolumeUpdated.apply(this.soSound.data.volume / 100);
7551                 }
7552
7553                 public function get commentVisible():Boolean
7554                 {       //MethodID:806, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7555                         return this._commentVisible;
7556                 }
7557
7558                 public function set commentVisible(hug1:Boolean):void
7559                 {       //MethodID:807, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 34
7560                         this._commentVisible = hug1;
7561
7562                         onPlayerConfigCommentVisibleUpdated.apply(this._commentVisible);
7563                 }
7564
7565                 public function get fullScreenMode():uint
7566                 {       //MethodID:808, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7567                         return this.soVideoSetting.data.fullScreenMode;
7568                 }
7569
7570                 public function set fullScreenMode(hug1:uint):void
7571                 {       //MethodID:809, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7572                         this.soVideoSetting.data.fullScreenMode = hug1;
7573
7574                         this.soVideoSetting.flush();
7575                         onPlayerConfigFullScreenModeUpdated.apply(hug1);
7576                 }
7577
7578                 public function get screenMode():uint
7579                 {       //MethodID:810, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7580                         return this._screenMode;
7581                 }
7582
7583                 public function set screenMode(hug1:uint):void
7584                 {       //MethodID:811, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
7585                         if(this._screenMode == hug1) return;
7586
7587                         this._screenMode = hug1;
7588
7589                         onPlayerConfigScreenModeUpdated.apply(hug1);
7590                 }
7591
7592                 public function get useNG():Boolean
7593                 {       //MethodID:812, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7594                         return this.soUseNG.data.flag;
7595                 }
7596
7597                 public function set useNG(hug1:Boolean):void
7598                 {       //MethodID:813, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7599                         this.soUseNG.data.flag = hug1;
7600
7601                         this.soUseNG.flush();
7602                         onPlayerConfigUseNGUpdated.apply(hug1);
7603                 }
7604
7605                 public function get hide184():Boolean
7606                 {       //MethodID:814, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7607                         return this.soHide184.data.flag;
7608                 }
7609
7610                 public function set hide184(hug1:Boolean):void
7611                 {       //MethodID:815, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7612                         this.soHide184.data.flag = hug1;
7613
7614                         this.soHide184.flush();
7615                         onPlayerConfigHide184Updated.apply(hug1);
7616                 }
7617
7618                 public function get synchronicScrolling():Boolean
7619                 {       //MethodID:816, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7620                         return this.soCommentDG.data.isPlayScroll;
7621                 }
7622
7623                 public function set synchronicScrolling(hug1:Boolean):void
7624                 {       //MethodID:817, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7625                         this.soCommentDG.data.isPlayScroll = hug1;
7626
7627                         this.soCommentDG.flush();
7628                         onPlayerConfigSynchronicScrollingUpdated.apply(hug1);
7629                 }
7630
7631                 public function get automaticLoading():Boolean
7632                 {       //MethodID:818, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7633                         return this.soCommentDG.data.isLoglistAutoDL2;
7634                 }
7635
7636                 public function set automaticLoading(hug1:Boolean):void
7637                 {       //MethodID:819, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7638                         this.soCommentDG.data.isLoglistAutoDL2 = hug1;
7639
7640                         this.soCommentDG.flush();
7641                         onPlayerConfigAutomaticLoadingUpdated.apply(hug1);
7642                 }
7643
7644                 public function get isAvailableCommandPallete():Boolean
7645                 {       //MethodID:820, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7646                         return this.soCommentInputSetting.data.commandPalleteAvailable;
7647                 }
7648
7649                 public function set isAvailableCommandPallete(hug1:Boolean):void
7650                 {       //MethodID:821, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7651                         this.soCommentInputSetting.data.commandPalleteAvailable = hug1;
7652
7653                         this.soCommentInputSetting.flush();
7654                         onPlayerConfigCommandPalleteAvailableUpdated.apply(hug1);
7655                 }
7656
7657                 public function get autoPlay():Boolean
7658                 {       //MethodID:822, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7659                         return this.soVideoSetting.data.autoPlay;
7660                 }
7661
7662                 public function set autoPlay(hug1:Boolean):void
7663                 {       //MethodID:823, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7664                         this.soVideoSetting.data.autoPlay = hug1;
7665
7666                         this.soVideoSetting.flush();
7667                         onPlayerConfigAutoPlayUpdated.apply(hug1);
7668                 }
7669
7670                 public function get oceColumnVPosWidth():uint
7671                 {       //MethodID:824, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7672                         return this.soOwnerCommentEditor.data.columnVPosWidth;
7673                 }
7674
7675                 public function set oceColumnVPosWidth(hug1:uint):void
7676                 {       //MethodID:825, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
7677                         this.soOwnerCommentEditor.data.columnVPosWidth = hug1;
7678
7679                         this.soOwnerCommentEditor.flush();
7680                 }
7681
7682                 public function get oceColumnCommandWidth():uint
7683                 {       //MethodID:826, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7684                         return this.soOwnerCommentEditor.data.columnCommandWidth;
7685                 }
7686
7687                 public function set oceColumnCommandWidth(hug1:uint):void
7688                 {       //MethodID:827, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
7689                         this.soOwnerCommentEditor.data.columnCommandWidth = hug1;
7690
7691                         this.soOwnerCommentEditor.flush();
7692                 }
7693
7694                 public function get oceColumnMessageWidth():uint
7695                 {       //MethodID:828, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7696                         return this.soOwnerCommentEditor.data.columnMessageWidth;
7697                 }
7698
7699                 public function set oceColumnMessageWidth(hug1:uint):void
7700                 {       //MethodID:829, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
7701                         this.soOwnerCommentEditor.data.columnMessageWidth = hug1;
7702
7703                         this.soOwnerCommentEditor.flush();
7704                 }
7705
7706                 public function get oceColumnCheckWidth():uint
7707                 {       //MethodID:830, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7708                         return this.soOwnerCommentEditor.data.columnCheckWidth;
7709                 }
7710
7711                 public function set oceColumnCheckWidth(hug1:uint):void
7712                 {       //MethodID:831, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
7713                         this.soOwnerCommentEditor.data.columnCheckWidth = hug1;
7714
7715                         this.soOwnerCommentEditor.flush();
7716                 }
7717
7718                 public function get deepenedCommentForce():Boolean
7719                 {       //MethodID:832, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7720                         return this._deepenedCommentForce;
7721                 }
7722
7723                 public function set deepenedCommentForce(hug1:Boolean):void
7724                 {       //MethodID:833, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
7725                         this._deepenedCommentForce = hug1;
7726
7727                         if(this._deepenedCommentForce) this._deepenedComment = true;
7728                 }
7729
7730                 public function get deepenedComment():Boolean
7731                 {       //MethodID:834, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7732                         return this._deepenedComment;
7733                 }
7734
7735                 public function set deepenedComment(hug1:Boolean):void
7736                 {       //MethodID:835, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 43
7737                         if(this._deepenedCommentForce) return;
7738
7739                         this._deepenedComment = hug1;
7740
7741                         onPlayerConfigDeepenedCommentUpdated.apply(this._deepenedComment);
7742                 }
7743
7744                 public function get optionalCommentVisible():Boolean
7745                 {       //MethodID:836, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7746                         return this.soOptionalComment.data.isVisible;
7747                 }
7748
7749                 public function set optionalCommentVisible(hug1:Boolean):void
7750                 {       //MethodID:837, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7751                         this.soOptionalComment.data.isVisible = hug1;
7752
7753                         onPlayerConfigOptionalCommentVisibleUpdated.apply(hug1);
7754                         this.soOptionalComment.flush();
7755                 }
7756
7757                 public function get sponsorVisibleOnLoop():Boolean
7758                 {       //MethodID:838, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7759                         return this.soVideoSetting.data.sponsorVisibleOnLoop;
7760                 }
7761
7762                 public function set sponsorVisibleOnLoop(hug1:Boolean):void
7763                 {       //MethodID:839, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7764                         this.soVideoSetting.data.sponsorVisibleOnLoop = hug1;
7765
7766                         onPlayerConfigSponsorVisibleOnLoopUpdated.apply(hug1);
7767                         this.soVideoSetting.flush();
7768                 }
7769
7770                 public function get clockMessageVisible():Boolean
7771                 {       //MethodID:840, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7772                         return this.soPlayerSetting.data.clockMessageVisible;
7773                 }
7774
7775                 public function set clockMessageVisible(hug1:Boolean):void
7776                 {       //MethodID:841, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7777                         this.soPlayerSetting.data.clockMessageVisible = hug1;
7778
7779                         onPlayerConfigClockMessageVisibleUpdated.apply(hug1);
7780                         this.soPlayerSetting.flush();
7781                 }
7782
7783                 public function get playerMode():String
7784                 {       //MethodID:842, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7785                         return this.soPlayerSetting.data.playerMode;
7786                 }
7787
7788                 public function get isPlayerModeConfirm():Boolean
7789                 {       //MethodID:843, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7790                         return this.soPlayerSetting.data.isModeConfirm;
7791                 }
7792
7793                 public function set isPlayerModeConfirm(hug1:Boolean):void
7794                 {       //MethodID:844, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
7795                         this.soPlayerSetting.data.isModeConfirm = hug1;
7796
7797                         this.soPlayerSetting.flush();
7798                 }
7799
7800                 public function get toolTipVisible():Boolean
7801                 {       //MethodID:845, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
7802                         return true;
7803                 }
7804
7805                 public function set toolTipVisible(hug1:Boolean):void
7806                 {       //MethodID:846, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7807                         this.soPlayerSetting.data.toolTipVisible = hug1;
7808
7809                         this.soPlayerSetting.flush();
7810                         onPlayerConfigToolTipVisibleUpdated.apply(hug1);
7811                 }
7812
7813                 public function get isEnabledLeafMode():Boolean
7814                 {       //MethodID:847, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7815                         return this.soEnabledLeafMode.data.isEnabledLeafMode;
7816                 }
7817
7818                 public function set isEnabledLeafMode(hug1:Boolean):void
7819                 {       //MethodID:848, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7820                         this.soEnabledLeafMode.data.isEnabledLeafMode = hug1;
7821
7822                         this.soEnabledLeafMode.flush();
7823                         onPlayerConfigIsEnabledLeafMode.apply(hug1);
7824                 }
7825
7826                 public function getTabVisibleConfig(hug1:String):Boolean
7827                 {       //MethodID:849, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 14
7828                         return this.soTabSetting.data[hug1];
7829                 }
7830
7831                 public function setTabVisibleConfig(hug1:String, hug2:Boolean):void
7832                 {       //MethodID:850, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 47
7833                         this.soTabSetting.data[hug1] = hug2;
7834
7835                         this.soTabSetting.flush();
7836                         onPlayerConfigTabContentVisibleUpdated.apply(hug1, hug2);
7837                 }
7838
7839                 public function get liveCommentInvisible():Boolean
7840                 {       //MethodID:851, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7841                         return this.soCommentDG.data.liveCommentInvisible;
7842                 }
7843
7844                 public function set liveCommentInvisible(hug1:Boolean):void
7845                 {       //MethodID:852, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7846                         this.soCommentDG.data.liveCommentInvisible = hug1;
7847
7848                         onPlayerConfigliveCommentInvisibleUpdate.apply(hug1);
7849                         this.soCommentDG.flush();
7850                 }
7851
7852                 public function get aspectRatio():uint
7853                 {       //MethodID:853, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7854                         return this._aspectRatio;
7855                 }
7856
7857                 public function set aspectRatio(hug1:uint):void
7858                 {       //MethodID:854, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 31
7859                         this._aspectRatio = hug1;
7860
7861                         onPlayerConfigAspectRatioUpdate.apply(hug1);
7862                 }
7863
7864                 public function get isPlaylistRandomPlay():Boolean
7865                 {       //MethodID:855, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
7866                         return this._soPlaylist.data.isRandomPlay;
7867                 }
7868
7869                 public function set isPlaylistRandomPlay(hug1:Boolean):void
7870                 {       //MethodID:856, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
7871                         this._soPlaylist.data.isRandomPlay = hug1;
7872
7873                         this._soPlaylist.flush();
7874                         onPlayerConfigIsPlaylistRandomPlayUpdated.apply(hug1);
7875                 }
7876         }
7877 }
7878
7879 //■script050■
7880
7881 package jp.nicovideo.hiroba.events{
7882
7883         import flash.events.Event
7884         import jp.nicovideo.hiroba.models.IHirobaComment
7885
7886         use namespace (http://www.nicovideo.jp/as3_ns/hiroba/events/hiroba_setter);
7887
7888         //■class(instance)_index:60
7889         public class HirobaEvent extends Event
7890         {
7891                 //static constructor
7892                 public static function HirobaEvent$cinit()
7893                 {       //MethodID:858, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
7894                         RECEIVED_DATA = "received_data";
7895                         RECEIVED_COMMENT = "received_comment";
7896                         CLICKED_LINK = "clicked_link";
7897                 }
7898
7899                 //static variables/etc.
7900                 public static const RECEIVED_DATA:String = "received_data";     //slotID:1
7901                 public static const RECEIVED_COMMENT:String = "received_comment";//slotID:2
7902                 public static const CLICKED_LINK:String = "clicked_link";       //slotID:3
7903
7904                 //constructor
7905                 public function HirobaEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
7906                 {       //MethodID:859, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 9
7907                         super(hug1, hug2, hug3);
7908                 }
7909
7910                 //variables/etc.
7911                 private var _comment:IHirobaComment;                            //slotID:0
7912                 private var _data:Object;                                       //slotID:0
7913
7914                 public function get comment():IHirobaComment
7915                 {       //MethodID:860, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7916                         return this._comment;
7917                 }
7918
7919                 (http://www.nicovideo.jp/as3_ns/hiroba/events/hiroba_setter) function set comment(hug1:IHirobaComment):void
7920                 {       //MethodID:861, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
7921                         this._comment = hug1;
7922                 }
7923
7924                 public function get data():Object
7925                 {       //MethodID:862, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
7926                         return this._data;
7927                 }
7928
7929                 (http://www.nicovideo.jp/as3_ns/hiroba/events/hiroba_setter) function set data(hug1:Object):void
7930                 {       //MethodID:863, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
7931                         this._data = hug1;
7932                 }
7933         }
7934 }
7935
7936 //■script051■
7937
7938 package jp.nicovideo.nicoplayer.models.api{
7939
7940         //■class(instance)_index:61
7941         public interface IKeygen
7942         {
7943                 //static constructor
7944                 public static function IKeygen$cinit()
7945                 {       //MethodID:865, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
7946                 }
7947
7948                 //variables/etc.
7949                 function getPostKey(hug1:Function, hug2:String, hug3:int, hug4:Boolean):void;//MethodID:866, dispID:0
7950
7951                 function getClickKey(hug1:Function, hug2:String, hug3:int, hug4:int):void;  //MethodID:867, dispID:0
7952
7953                 function getDeleteKey(hug1:Function, hug2:String, hug3:Array):String;       //MethodID:868, dispID:0
7954
7955                 function getWaybackKey(hug1:Function, hug2:String):void;                    //MethodID:869, dispID:0
7956
7957                 function getUpdateKey(hug1:Function, hug2:String, hug3:String, hug4:Boolean):void;//MethodID:870, dispID:0
7958
7959                 function getThreadKey(hug1:Function, hug2:String):void;                     //MethodID:871, dispID:0
7960
7961                 function getHirobaPostKey(hug1:Function, hug2:String, hug3:int):void;       //MethodID:872, dispID:0
7962
7963                 //constructor
7964                 public function IKeygen();                                                  //MethodID:873, dispID:0
7965         }
7966 }
7967
7968 //■script052■
7969
7970 package jp.nicovideo.nicoplayer.models.playlist{
7971
7972         import jp.nicovideo.nicoplayer.config.NicoConfig
7973         import jp.nicovideo.nicoplayer.models.SystemMessage
7974         import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
7975         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.ITabManager
7976         import jp.nicovideo.util.loka.__MSG__
7977
7978         //■class(instance)_index:62
7979         public class PlaylistErrorManager extends Object
7980         {
7981                 //static constructor
7982                 public static function PlaylistErrorManager$cinit()
7983                 {       //MethodID:875, LocalCount= 1 , MaxScope= 1, MaxStack= 11, CodeLength= 175
7984                         BUSY = "busy";
7985                         MAINTENANCE = "maintenance";
7986                         URGENT = "urgent";
7987                         LIMITED_OPEN = "limited_open";
7988                         NEED_LOGIN = "need_login";
7989                         ACCESS_LOCK = "access_lock";
7990                         INVALID_TOKEN = "invalid_token";
7991                         TOKEN_TIMEOUT = "token_timeout";
7992                         VIDEO_LOAD_STOP = "video_load_stop";
7993                         NO_LIST = "no_list";
7994                         THREAD_IS_NOT_IN_PLAYLIST = "thread_is_not_in_playlist";
7995                         VIDEO_ERROR = "video_error";
7996                         NO_VIDEO = "no_video";
7997                         NICOPLAYER_ALERT_ERRORS = [BUSY, MAINTENANCE, URGENT, LIMITED_OPEN, NEED_LOGIN, ACCESS_LOCK, INVALID_TOKEN, VIDEO_LOAD_STOP, TOKEN_TIMEOUT, NO_LIST];
7998                         TABWINDOW_ALERT_ERRORS = [THREAD_IS_NOT_IN_PLAYLIST, VIDEO_ERROR, NO_VIDEO];
7999                 }
8000
8001                 //static variables/etc.
8002                 public static const BUSY:String = "busy";                       //slotID:1
8003                 public static const MAINTENANCE:String = "maintenance";         //slotID:2
8004                 public static const URGENT:String = "urgent";                   //slotID:3
8005                 public static const LIMITED_OPEN:String = "limited_open";       //slotID:4
8006                 public static const NEED_LOGIN:String = "need_login";           //slotID:5
8007                 public static const ACCESS_LOCK:String = "access_lock";         //slotID:6
8008                 public static const INVALID_TOKEN:String = "invalid_token";     //slotID:7
8009                 public static const TOKEN_TIMEOUT:String = "token_timeout";     //slotID:8
8010                 public static const VIDEO_LOAD_STOP:String = "video_load_stop"; //slotID:9
8011                 public static const NO_LIST:String = "no_list";                 //slotID:10
8012                 public static const THREAD_IS_NOT_IN_PLAYLIST:String = "thread_is_not_in_playlist";//slotID:11
8013                 public static const VIDEO_ERROR:String = "video_error";         //slotID:12
8014                 public static const NO_VIDEO:String = "no_video";               //slotID:13
8015                 public static const NICOPLAYER_ALERT_ERRORS:Array;              //slotID:14
8016                 public static const TABWINDOW_ALERT_ERRORS:Array;               //slotID:15
8017
8018                 //constructor
8019                 public function PlaylistErrorManager(hug1:PlaylistFlashVars, hug2:NicoConfig, hug3:String)
8020                 {       //MethodID:876, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
8021                         super();
8022
8023                         this._playlistFlashVars = hug1;
8024                         this._nicoConfig = hug2;
8025                         this._playlistPageURL = hug3;
8026                 }
8027
8028                 //variables/etc.
8029                 private var _playlistFlashVars:PlaylistFlashVars;               //slotID:0
8030                 private var _nicoConfig:NicoConfig;                             //slotID:0
8031                 private var _windowManager:ITabManager;                         //slotID:0
8032                 private var _playlistPageURL:String;                            //slotID:0
8033
8034                 public function show(hug1:VideoInfo, hug2:String):void
8035                 {       //MethodID:877, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 882
8036                         var hug5:String = null;
8037                         var hug3:String = this._playlistPageURL;
8038                         var hug4:String = (this._nicoConfig.BASE_URL + ((hug1 != null) ? ("watch/" + hug1.watchID) : ""));
8039                         var hug6:String = hug2;
8040
8041                         switch(hug6){
8042                         case BUSY:
8043                                 hug5 = ("<p>" + __MSG__("ただ今、サーバーが大変混み合っております。") + "</p>" + "<p>" + __MSG__("しばらく時間をおいて再度お試しください。") + "</p>");
8044                                 break;
8045                         case MAINTENANCE:
8046                                 hug5 = ("<p>" + __MSG__("ただ今連続再生はメンテナンス中のため、ご利用になれません。") + "</p>");
8047                                 break;
8048                         case URGENT:
8049                                 hug5 = ("<p>" + __MSG__("ただ今ニコニコ動画はメンテナンス中のため、ご利用になれません。") + "</p>");
8050                                 break;
8051                         case LIMITED_OPEN:
8052                                 hug5 = ("<p>" + __MSG__("この時間帯は連続再生をご利用になれません。") + "</p>");
8053                                 break;
8054                         case NEED_LOGIN:
8055                                 hug5 = (("<p><b>" + __MSG__("動画情報の取得に失敗しました。") + "</b></p>" + "<p>" + __MSG__("ログイン状態が解除されているか、動画が非公開状態にある可能性があります。") + "<br />") + __MSG__("<a href=\"[[url]]\">リロードして再度ログイン</a>", hug3) + "</p>");
8056                                 break;
8057                         case ACCESS_LOCK:
8058                                 hug5 = ("<p>" + __MSG__("短時間での連続アクセスがあったため、連続再生のご利用を一時停止しております。") + "</p>" + "<p>" + __MSG__("しばらく時間をおいて再度お試しください。") + "</p>");
8059                                 break;
8060                         case THREAD_IS_NOT_IN_PLAYLIST:
8061                         case VIDEO_ERROR:
8062                                 hug5 = (("<p>" + __MSG__("「[[title]]」", hug1.title) + "</p>" + "<p>" + __MSG__("連続再生には対応していない動画です。") + "</p>" + "<p>") + __MSG__("詳しくは<u><b><a href=\"[[url]]\" target=\"_blank\">動画視聴ページ</a></b></u>をご確認ください。", hug4) + "</p>");
8063                                 break;
8064                         case NO_VIDEO:
8065                                 hug5 = (("<p>" + __MSG__("「[[title]]」", hug1.title) + "</p>" + "<p>" + __MSG__("存在しないか、または削除された動画です。") + "</p>" + "<p>") + __MSG__("詳しくは<u><b><a href=\"[[url]]\" target=\"_blank\">動画視聴ページ</a></b></u>をご確認ください。", hug4) + "</p>");
8066                                 break;
8067                         case INVALID_TOKEN:
8068                         case TOKEN_TIMEOUT:
8069                                 hug5 = ("<p>" + __MSG__("正常にアクセスできませんでした。ページを更新してください。") + "</p>");
8070                                 break;
8071                         case VIDEO_LOAD_STOP:
8072                                 hug5 = (("<p><b>" + __MSG__("動画の読み込みができません。") + "</b></p>" + "<p>" + __MSG__("別のタブかウィンドウで、動画をいくつか読み込み中です。") + "<br />" + __MSG__("読み込みが完了してから再度アクセスしてください。") + "<br /><br />") + __MSG__("<a href=\"[[url]]\">リロードする", hug3) + "</a>" + "</p>");
8073                                 break;
8074                         case NO_LIST:
8075                                 hug5 = ("<p>" + __MSG__("このマイリストには再生できる動画が含まれていません。") + "</p>");
8076                                 break;
8077                         default:
8078                                 hug5 = null;
8079                                 break;
8080                         }
8081
8082                         if(hug5){
8083                                 if(NICOPLAYER_ALERT_ERRORS.indexOf(hug2) != (-1)){
8084                                         SystemMessage.instance.alert(hug5);
8085                                 }else if((TABWINDOW_ALERT_ERRORS.indexOf(hug2) != (-1)) && this._windowManager){
8086                                         this._windowManager.showMessage(hug5, true);
8087                                 }
8088                         }
8089                 }
8090
8091                 public function set windowManager(hug1:ITabManager):void
8092                 {       //MethodID:878, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8093                         this._windowManager = hug1;
8094                 }
8095         }
8096 }
8097
8098 //■script053■
8099
8100 package jp.nicovideo.util.events{
8101
8102         //■class(instance)_index:63
8103         public final class EventResult extends Object
8104         {
8105                 //static constructor
8106                 public static function EventResult$cinit()
8107                 {       //MethodID:880, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
8108                         THROUGH = this;
8109                         BREAK = this;
8110                 }
8111
8112                 //static variables/etc.
8113                 public static const THROUGH:EventResult;                        //slotID:1
8114                 public static const BREAK:EventResult;                          //slotID:2
8115
8116                 public static function replace(hug1:Array):EventResult
8117                 {       //dispID:3, MethodID:881, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
8118                         return new EventResult().replace(hug1);
8119                 }
8120
8121                 public static function rename(hug1:String):EventResult
8122                 {       //dispID:4, MethodID:882, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
8123                         return new EventResult().rename(hug1);
8124                 }
8125
8126                 //constructor
8127                 public function EventResult()
8128                 {       //MethodID:883, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
8129                         super();
8130                 }
8131
8132                 //variables/etc.
8133                 public var _replaced:Array;                                     //slotID:0
8134                 public var _renamed:String;                                     //slotID:0
8135
8136                 public function replace(hug1:Array):EventResult
8137                 {       //MethodID:884, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
8138                         this._replaced = hug1;
8139                         return this;
8140                 }
8141
8142                 public function rename(hug1:String):EventResult
8143                 {       //MethodID:885, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
8144                         this._renamed = hug1;
8145                         return this;
8146                 }
8147         }
8148 }
8149
8150 //■script054■
8151
8152 package jp.nicovideo.nicoplayer.config{
8153
8154         //■class(instance)_index:64
8155         public class DebugMode extends Object
8156         {
8157                 //static constructor
8158                 public static function DebugMode$cinit()
8159                 {       //MethodID:887, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 75
8160                         NON = 0;
8161                         LOCAL = 1;
8162                         DEV = 2;
8163                         EXTDEV = 3;
8164                         TEST = 4;
8165                         LOCAL_EACHENV = 5;
8166                         GADEV = 6;
8167                         NICOAPP_DEV = 7;
8168                         WEB = 8;
8169                 }
8170
8171                 //static variables/etc.
8172                 public static const NON:uint = 0;                               //slotID:1
8173                 public static const LOCAL:uint = 1;                             //slotID:2
8174                 public static const DEV:uint = 2;                               //slotID:3
8175                 public static const EXTDEV:uint = 3;                            //slotID:4
8176                 public static const TEST:uint = 4;                              //slotID:5
8177                 public static const LOCAL_EACHENV:uint = 5;                     //slotID:6
8178                 public static const GADEV:uint = 6;                             //slotID:7
8179                 public static const NICOAPP_DEV:uint = 7;                       //slotID:8
8180                 public static const WEB:uint = 8;                               //slotID:9
8181
8182                 //constructor
8183                 public function DebugMode()
8184                 {       //MethodID:888, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
8185                         super();
8186                 }
8187         }
8188 }
8189
8190 //■script055■
8191
8192 package jp.nicovideo.nicoplayer.models.api{
8193
8194         import __AS3__.vec.Vector
8195
8196         //■class(instance)_index:65
8197         public interface IGetSponsorInfo
8198         {
8199                 //static constructor
8200                 public static function IGetSponsorInfo$cinit()
8201                 {       //MethodID:890, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
8202                 }
8203
8204                 //variables/etc.
8205                 function get sponsorInfoList():Vector.<ISponsorInfo>;                       //MethodID:891, dispID:0
8206
8207                 function get bgType():String;                                               //MethodID:892, dispID:0
8208
8209                 function get bgColor():int;                                                 //MethodID:893, dispID:0
8210
8211                 function get bgVpos():Number;                                               //MethodID:894, dispID:0
8212
8213                 //constructor
8214                 public function IGetSponsorInfo();                                          //MethodID:895, dispID:0
8215         }
8216 }
8217
8218 //■script056■
8219
8220 package jp.nicovideo.nicoplayer.models.api{
8221
8222         //■class(instance)_index:66
8223         public interface ISponsorInfo
8224         {
8225                 //static constructor
8226                 public static function ISponsorInfo$cinit()
8227                 {       //MethodID:897, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
8228                 }
8229
8230                 //variables/etc.
8231                 function get rank():uint;                                                   //MethodID:898, dispID:0
8232
8233                 function get nickname():String;                                             //MethodID:899, dispID:0
8234
8235                 function get message():String;                                              //MethodID:900, dispID:0
8236
8237                 //constructor
8238                 public function ISponsorInfo();                                             //MethodID:901, dispID:0
8239         }
8240 }
8241
8242 //■script057■
8243
8244 package jp.nicovideo.nicoplayer.models.api{
8245
8246         import __AS3__.vec.Vector
8247         import jp.nicovideo.nicoplayer.views.SponsorVideoBGType
8248         import jp.nicovideo.util.HTTPUtils
8249         import jp.nicovideo.util.events.EventResult
8250
8251         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
8252
8253         //■class(instance)_index:67
8254         public class GetSponsorInfo extends Object implements IGetSponsorInfo
8255         {
8256                 //static constructor
8257                 public static function GetSponsorInfo$cinit()
8258                 {       //MethodID:903, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
8259                 }
8260
8261                 //constructor
8262                 public function GetSponsorInfo(hug1:String, hug2:Function)
8263                 {       //MethodID:904, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 26
8264                         this._bgType = SponsorVideoBGType.DEFAULT;
8265
8266                         super();
8267
8268                         this._apiURL = hug1;
8269                         this._onLoaded = hug2;
8270                 }
8271
8272                 //variables/etc.
8273                 private var _infoList:Vector.<ISponsorInfo>;                    //slotID:0
8274                 private var _apiURL:String;                                     //slotID:0
8275                 private var _onLoaded:Function;                                 //slotID:0
8276                 private var _bgType:String;                                     //slotID:0
8277                 private var _bgColor:int = -1;                                  //slotID:0
8278                 private var _bgVpos:Number = -1.0;                              //slotID:0
8279
8280                 private function _load():void
8281                 {       //MethodID:906, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 38
8282                         internal var defFlag:Boolean;                                   //slotID:1
8283
8284                         defFlag = false;
8285                         defFlag = XML.ignoreWhitespace;
8286
8287                         HTTPUtils.loadXML(function(hug1:XML):void{      //MethodID:905, LocalCount= 8 , MaxScope= 0, MaxStack= 3, CodeLength= 206
8288                                 var hug4:XML = null;
8289                                 var hug5:_SponsorInfo = null;
8290                                 XML.ignoreWhitespace = true;
8291
8292                                 if(!hug1){
8293                                         _onLoaded(false);
8294
8295                                         return;
8296                                 }
8297
8298                                 var hug2:uint = 1;
8299                                 var hug3:Number = 0;
8300                                 _infoList = new Vector.<ISponsorInfo>();
8301
8302                                 for each(hug4 in hug1.Result){
8303                                         hug5 = new _SponsorInfo(hug2, hug4);
8304
8305                                         if(hug2 == 1){
8306                                                 hug3 = hug5.points;
8307
8308                                                 _determineBGType(hug4);
8309                                         }else if((hug2 == 2) && (hug3 > (hug5.points * 2))){
8310                                                 break;
8311                                         }
8312
8313                                         _infoList.push(hug5);
8314
8315                                         hug2++;
8316
8317                                         if(_infoList.length == 4) break;
8318                                 }
8319
8320                                 XML.ignoreWhitespace = defFlag;
8321
8322                                 _onLoaded(true);
8323                         }, this._apiURL, {});
8324                 }
8325
8326                 private function _determineBGType(hug1:XML):void
8327                 {       //MethodID:907, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 223
8328                         var hug2:Number = NaN;
8329                         var hug3:Number = NaN;
8330                         this._bgType = SponsorVideoBGType.DEFAULT;
8331
8332                         if((hug1.bgkeyframe != undefined) && (hug1.bgkeyframe != "")){
8333                                 hug2 = Number(hug1.bgkeyframe);
8334
8335                                 if(!isNaN(hug2) && (hug2 >= 0) && isFinite(hug2)){
8336                                         this._bgType = SponsorVideoBGType.CAPTURE;
8337                                         this._bgVpos = hug2;
8338                                         return;
8339                                 }
8340                         }
8341
8342                         if((hug1.bgcolor != undefined) && (hug1.bgcolor != "") && (hug1.bgcolor >= 0)){
8343                                 hug3 = Number(hug1.bgcolor);
8344
8345                                 if(!isNaN(hug3) && (hug3 >= 0) && (hug3 <= 0xFFFFFF) && isFinite(hug3)){
8346                                         this._bgType = SponsorVideoBGType.COLOR;
8347                                         this._bgColor = hug3;
8348                                 }
8349                         }
8350                 }
8351
8352                 public function get sponsorInfoList():Vector.<ISponsorInfo>
8353                 {       //MethodID:908, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8354                         return this._infoList;
8355                 }
8356
8357                 public function get bgType():String
8358                 {       //MethodID:909, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8359                         return this._bgType;
8360                 }
8361
8362                 public function get bgColor():int
8363                 {       //MethodID:910, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8364                         return this._bgColor;
8365                 }
8366
8367                 public function get bgVpos():Number
8368                 {       //MethodID:911, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8369                         return this._bgVpos;
8370                 }
8371
8372                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStarted():EventResult
8373                 {       //MethodID:912, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
8374                         this._load();
8375
8376                         return EventResult.THROUGH;
8377                 }
8378         }
8379 }
8380
8381
8382 //■class(instance)_index:68
8383 //private
8384 class _SponsorInfo extends Object implements ISponsorInfo
8385 {
8386         //static constructor
8387         public static function _SponsorInfo$cinit()
8388         {       //MethodID:913, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
8389         }
8390
8391         //constructor
8392         public function _SponsorInfo(hug1:uint, hug2:XML)
8393         {       //MethodID:914, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 50
8394                 super();
8395
8396                 this._rank = hug1;
8397                 this._nickname = this._decodeHTMLEntities(hug2.contact);
8398                 this._message = this._decodeHTMLEntities(hug2.campaignname);
8399                 this._points = Number(hug2.revenue);
8400         }
8401
8402         //variables/etc.
8403         private var _rank:uint;                                         //slotID:0
8404         private var _nickname:String;                                   //slotID:0
8405         private var _message:String;                                    //slotID:0
8406         private var _points:Number;                                     //slotID:0
8407
8408         public function get rank():uint
8409         {       //MethodID:915, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8410                 return this._rank;
8411         }
8412
8413         public function get nickname():String
8414         {       //MethodID:916, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8415                 return this._nickname;
8416         }
8417
8418         public function get message():String
8419         {       //MethodID:917, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8420                 return this._message;
8421         }
8422
8423         public function get points():Number
8424         {       //MethodID:918, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8425                 return this._points;
8426         }
8427
8428         private function _decodeHTMLEntities(hug1:String):String
8429         {       //MethodID:919, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 89
8430                 hug1 = hug1.split("&amp;").join("&");
8431                 hug1 = hug1.split("&quot;").join("\"");
8432                 hug1 = hug1.split("&#039;").join("'");
8433                 hug1 = hug1.split("&lt;").join("<");
8434                 hug1 = hug1.split("&gt;").join(">");
8435                 return hug1;
8436         }
8437 }
8438
8439 //■script058■
8440
8441 package jp.nicovideo.nicoplayer.models.flashvars{
8442
8443         //■class(instance)_index:69
8444         public class PlaylistFlashVars extends Object
8445         {
8446                 //static constructor
8447                 public static function PlaylistFlashVars$cinit()
8448                 {       //MethodID:921, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
8449                 }
8450
8451                 //constructor
8452                 public function PlaylistFlashVars(hug1:Object)
8453                 {       //MethodID:922, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 196
8454                         super();
8455
8456                         if(hug1.playlistId){
8457                                 nico_flashvars.playlistID = hug1.playlistId;
8458                         }else{
8459                                 throw new Error("WatchFlashVars.WatchFlashVars. invalid variable:v=" + hug1.v);
8460                         }
8461
8462                         if(hug1.playlistFrom) hug1.playlistFrom = String(playlistFrom);
8463
8464                         if(hug1.playlistSort) hug1.playlistSort = int(playlistSort);
8465
8466                         if(hug1.playlistToken) hug1.playlistToken = String(playlistToken);
8467
8468                         if(hug1.useVideoEnder) hug1.useVideoEnder = Boolean(useVideoEnder);
8469                 }
8470
8471                 //variables/etc.
8472                 private var _playlistID:String;                                 //slotID:0
8473                 private var _playlistFrom:String;                               //slotID:0
8474                 private var _playlistSort:Number = Number.NaN;                  //slotID:0
8475                 private var _playlistToken:String;                              //slotID:0
8476                 private var _useVideoEnder:Boolean = false;                     //slotID:0
8477
8478                 public function get playlistID():String
8479                 {       //MethodID:923, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8480                         return this._playlistID;
8481                 }
8482
8483                 internal function set playlistID(hug1:String):void
8484                 {       //MethodID:924, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8485                         this._playlistID = hug1;
8486                 }
8487
8488                 public function get playlistFrom():String
8489                 {       //MethodID:925, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8490                         return this._playlistFrom;
8491                 }
8492
8493                 internal function set playlistFrom(hug1:String):void
8494                 {       //MethodID:926, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8495                         this._playlistFrom = hug1;
8496                 }
8497
8498                 public function get playlistSort():Number
8499                 {       //MethodID:927, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8500                         return this._playlistSort;
8501                 }
8502
8503                 internal function set playlistSort(hug1:Number):void
8504                 {       //MethodID:928, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8505                         this._playlistSort = hug1;
8506                 }
8507
8508                 public function get playlistToken():String
8509                 {       //MethodID:929, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8510                         return this._playlistToken;
8511                 }
8512
8513                 internal function set playlistToken(hug1:String):void
8514                 {       //MethodID:930, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8515                         this._playlistToken = hug1;
8516                 }
8517
8518                 public function get useVideoEnder():Boolean
8519                 {       //MethodID:931, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
8520                         return this._useVideoEnder;
8521                 }
8522
8523                 internal function set useVideoEnder(hug1:Boolean):void
8524                 {       //MethodID:932, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
8525                         this._useVideoEnder = hug1;
8526                 }
8527         }
8528 }
8529
8530 //■script059■
8531
8532 package jp.nicovideo.util{
8533
8534         //■class(instance)_index:70
8535         public class StringUtils extends Object
8536         {
8537                 //static constructor
8538                 public static function StringUtils$cinit()
8539                 {       //MethodID:934, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
8540                 }
8541
8542                 //static variables/etc.
8543                 public static function gsub(hug1:Function, hug2:RegExp, hug3:String):String
8544                 {       //dispID:3, MethodID:936, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 82
8545                         internal var f:Function;                                        //slotID:1
8546                         internal var pattern:RegExp;                                    //slotID:2
8547                         internal var s:String;                                          //slotID:3
8548                         internal var s_:String;                                         //slotID:4
8549                         internal var i:int;                                             //slotID:5
8550
8551                         s_ = null;
8552                         i = 0;
8553                         f = hug1;
8554                         pattern = hug2;
8555                         s = hug3;
8556                         s_ = "";
8557                         i = 0;
8558
8559                         __scan_0(function(hug1:Object, hug2:int):void{  //MethodID:935, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 50
8560                                 s_ += s.substring(i, hug1.index);
8561                                 s_ += f(hug1);
8562                                 i = hug2;
8563                         }, pattern, s);
8564
8565                         return (s_ + s.substring(i));
8566                 }
8567
8568                 public static function scan(hug1:Function, hug2:RegExp, hug3:String):void
8569                 {       //dispID:4, MethodID:938, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 41
8570                         internal var f:Function;                                        //slotID:1
8571                         internal var pattern:RegExp;                                    //slotID:2
8572                         internal var s:String;                                          //slotID:3
8573
8574                         f = hug1;
8575                         pattern = hug2;
8576                         s = hug3;
8577
8578                         __scan_0(function(hug1:Object, hug2:int):void{  //MethodID:937, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 10
8579                                 f(hug1);
8580                         }, pattern, s);
8581                 }
8582
8583                 private static function __scan_0(hug1:Function, hug2:RegExp, hug3:String):void
8584                 {       //dispID:5, MethodID:939, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 72
8585                         var hug4:Object = null;
8586
8587                         if(!hug2.global) throw new ArgumentError("gオプションを付けて欲しいがな。");
8588
8589                         hug2.lastIndex = 0;
8590
8591                         while(true){
8592                                 hug4 = hug2.exec(hug3);
8593
8594                                 if(!hug4) break;
8595                                 hug1(hug4, hug2.lastIndex);
8596                         }
8597                 }
8598
8599                 public static function queryString(hug1:Object, hug2:Array=null):String
8600                 {       //dispID:6, MethodID:940, LocalCount= 11 , MaxScope= 1, MaxStack= 4, CodeLength= 215
8601                         var hug4:String = null;
8602                         var hug5:* = undefined;
8603                         var hug6:String = null;
8604                         var hug3:Array = [];
8605
8606                         for(hug4 in hug1){
8607                                 if(hug4 == ""){
8608                                         trace("WARNING: Empty key name.");
8609                                 }else{
8610                                         hug5 = hug1[hug4];
8611
8612                                         for each(hug6 in [hug5]){
8613                                                 hug3.push((encodeURIComponent(hug4) + "=") + encodeURIComponent(hug6));
8614                                         }
8615                                 }
8616                         }
8617
8618                         if((hug5 as Array) || hug2){
8619                                 for each(hug6 in hug2){
8620                                         hug3.push(encodeURIComponent(hug6));
8621                                 }
8622                         }
8623
8624                         return hug3.join("&");
8625                 }
8626
8627                 public static function joinQuery(hug1:String, hug2:Object):String
8628                 {       //dispID:7, MethodID:941, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 30
8629                         var hug3:String = queryString(hug2);
8630
8631                         if(hug3 != "") hug1 += ("?" + hug3);
8632
8633                         return hug1;
8634                 }
8635
8636                 public static function compare(hug1:String, hug2:String):Number
8637                 {       //dispID:8, MethodID:942, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 34
8638                         return ((hug1 == hug2) ? 0 : ((hug1 < hug2) ? (-1) : 0));
8639                 }
8640
8641                 public static function checkCode(hug1:String, hug2:uint, hug3:uint):Boolean
8642                 {       //dispID:9, MethodID:943, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 62
8643                         var hug5:uint = 0;
8644                         var hug4:uint = hug1.length;
8645
8646                         while(hug4--){
8647                                 hug5 = hug1.charCodeAt(hug4);
8648
8649                                 if((hug5 < hug2) || (hug5 > hug3)) return false;
8650                         }
8651
8652                         return true;
8653                 }
8654
8655                 public static function multiple(hug1:String, hug2:uint):String
8656                 {       //dispID:10, MethodID:944, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 49
8657                         var hug3:String = "";
8658
8659                         while(hug2 != 0){
8660                                 if((hug2 % 2) == 0){
8661                                         hug2 /= 2;
8662                                         hug1 += hug1;
8663                                 }
8664
8665                                 hug3 += hug1;
8666                                 hug2--;
8667                         }
8668
8669                         return hug3;
8670                 }
8671
8672                 public static function trim(hug1:String):String
8673                 {       //dispID:11, MethodID:945, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 18
8674                         return hug1.replace(new RegExp("^[\s ]*(.*?)[\s\t]*$"), "$1");
8675                 }
8676
8677                 public static function isValidVideoID(hug1:String):Boolean
8678                 {       //dispID:12, MethodID:946, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 15
8679                         return new RegExp("^([a-z]{2})?(?!0)\d+$").test(hug1);
8680                 }
8681
8682                 public static function isPureVideoID(hug1:String):Boolean
8683                 {       //dispID:13, MethodID:947, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 15
8684                         return new RegExp("^[a-z]{2}(?!0)\d+$").test(hug1);
8685                 }
8686
8687                 public static function replace(hug1:String, hug2:String, hug3:String):String
8688                 {       //dispID:14, MethodID:948, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 14
8689                         return hug3.split(hug1).join(hug2);
8690                 }
8691
8692                 public static function hex(hug1:uint, hug2:uint=4):String
8693                 {       //dispID:15, MethodID:949, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 71
8694                         if(!hug1 || (hug2 > 4)) return "0";
8695
8696                         var hug3:String = "";
8697                         var hug4:uint = ((1 << hug2) - 1);
8698
8699                         do{
8700                                 hug3 = ("0123456789abcdef".charAt(hug1 & hug4) + hug3);
8701                                 var hug5:uint = (hug1 >> hug2);
8702                                 hug1 = hug5;
8703
8704                         }while(hug5);
8705
8706                         return hug3;
8707                 }
8708
8709                 public static function float(hug1:Number, hug2:int):String
8710                 {       //dispID:16, MethodID:950, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 78
8711                         var hug3:int = int(hug1);
8712                         var hug4:String = (hug3 + ".");
8713
8714                         while(0 < (hug2--)){
8715                                 hug1 -= hug3;
8716                                 var hug5:Number = (hug1 * 10);
8717                                 hug1 = hug5;
8718                                 hug3 = int(hug5);
8719                                 hug4 += String(int(hug5));
8720                         }
8721
8722                         return hug4;
8723                 }
8724
8725                 public static function sprintf(hug1:String, ...rest):String
8726                 {       //dispID:17, MethodID:954, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 47
8727                         internal var format:String;                                     //slotID:1
8728                         public var args:Array;                                          //slotID:2
8729                         internal var i:int;                                             //slotID:3
8730
8731                         format = hug1;
8732                         internal var args:Object = rest;
8733                         i = 0;
8734                         return gsub(function(hug1:Object):String{       //MethodID:953, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 583
8735                                 internal var result:Object;                                     //slotID:1
8736                                 internal var specifier:*;                                       //slotID:2
8737                                 internal var flags:*;                                           //slotID:3
8738                                 internal var is_numeric:*;                                      //slotID:4
8739                                 internal var head:*;                                            //slotID:5
8740                                 internal var tail:*;                                            //slotID:6
8741                                 internal var need:*;                                            //slotID:7
8742                                 internal var get_arg:Function;                                  //slotID:8
8743                                 internal var mod:*;                                             //slotID:9
8744                                 internal var tmp:*;                                             //slotID:10
8745                                 internal var left_side:*;                                       //slotID:11
8746
8747                                 specifier = undefined;
8748                                 flags = undefined;
8749                                 head = undefined;
8750                                 mod = undefined;
8751                                 tmp = undefined;
8752                                 left_side = undefined;
8753                                 result = hug1;
8754                                 get_arg = function(hug1:int):*{ //MethodID:952, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 93
8755                                         var hug2:* = (result[hug1] ? Number(result[hug1] - 1) : (i++));
8756
8757                                         if(hug2 >= args.length) throw new ArgumentError(hug2 + " >= " + args.length);
8758
8759                                         return args[hug2];
8760                                 };
8761
8762                                 specifier = result[9];
8763
8764                                 if(specifier == "%") return "%";
8765
8766                                 flags = result[2];
8767                                 is_numeric = true;
8768                                 head = "";
8769                                 tail = function():String{       //MethodID:951, LocalCount= 5 , MaxScope= 0, MaxStack= 5, CodeLength= 706
8770                                         var hug1:* = undefined;
8771                                         var hug3:* = undefined;
8772                                         hug1 = get_arg(1);
8773
8774                                         switch(specifier){
8775                                         case "s":
8776                                         case "c":
8777                                                 is_numeric = false;
8778                                                 hug1 = String(hug1);
8779                                                 return ((specifier != "c") ? hug1 : hug1.charAt(0));
8780                                         default:
8781                                                 break;
8782                                         }
8783
8784                                         hug1 = Number(hug1);
8785
8786                                         if(Number(hug1) < 0){
8787                                                 hug1 *= (-1);
8788                                                 head += "-";
8789                                         }else if(new RegExp("\+").test(flags)){
8790                                                 head += "+";
8791                                         }
8792
8793                                         switch(specifier){
8794                                         case "d":
8795                                                 return String(int(hug1));
8796                                         case "X":
8797                                                 return hex(int(hug1)).toUpperCase();
8798                                         case "x":
8799                                                 return hex(int(hug1));
8800                                         case "O":
8801                                                 return hex(int(hug1), 3).toUpperCase();
8802                                         case "o":
8803                                                 return hex(int(hug1), 3);
8804                                         default:
8805                                                 break;
8806                                         }
8807
8808                                         if(isNaN(hug1) || (hug1 == Infinity)){
8809                                                 is_numeric = false;
8810                                                 return String(hug1);
8811                                         }
8812
8813                                         var hug2:* = (result[6] ? Number(get_arg(8)) : 6);
8814
8815                                         switch(specifier){
8816                                         case "e":
8817                                         case "g":
8818                                                 hug3 = int(Math.log(hug1) / Math.log(10));
8819                                                         return (float((hug1 / Math.pow(10, hug3)), hug2) + "e" + hug3);
8820                                                 }
8821
8822                                         case "f":
8823                                                 return float(hug1, hug2);
8824                                         default:
8825                                                 break;
8826                                         }
8827
8828                                         throw new Error("BUG: Unknown specifier=" + specifier);
8829                                 }.call(null);
8830
8831                                 if(is_numeric && new RegExp("#").test(flags) && (tail != "0")) head += "0x".slice(0, (("OoXx".indexOf(specifier) / 2) + 1));
8832
8833                                 if((specifier == "d") && new RegExp(",").test(flags)){
8834                                         mod = (tail.length % 3);
8835                                         tmp = tail.slice(0, mod);
8836
8837                                         if(0 < mod) tmp += ",";
8838
8839                                         tail = (tmp + tail.slice(mod).replace(new RegExp("(\d{3})(?=.)", "g"), "$1,"));
8840                                         is_numeric = false;
8841                                 }
8842
8843                                 need = ((result[7] || ((specifier != "g") || ((hug3 >= (-4)) && (hug3 <= hug2)))) ? (result[3] ? (Number(get_arg(5)) - head.length + tail.length) : 0);
8844                                         left_side = new RegExp("\-").test(flags);
8845
8846                                         if(left_side || new RegExp(" ").test(flags)){
8847                                                 if(left_side){
8848                                                         tail += multiple(" ", need);
8849                                                 }else{
8850                                                         head += multiple(" ", need);
8851                                                 }
8852                                         }else if(is_numeric){
8853                                                 head += multiple("0", need);
8854                                         }
8855                                 }
8856
8857                                 return (head + tail);
8858                         }, new RegExp("%(?:(\d+)\$)?([-+# 0,]*)((\d+)|\*(?:(\d+)\$)?)?(\.(\d+)|\*(\d+)\$)?([dOoXxfegcs%])", "sgx"), format);
8859                 }
8860
8861                 public static function parseURL(hug1:String):Object
8862                 {       //dispID:18, MethodID:956, LocalCount= 3 , MaxScope= 2, MaxStack= 15, CodeLength= 239
8863                         internal var url:String;                                        //slotID:1
8864                         internal var status:Array;                                      //slotID:2
8865                         internal var parser:RegExp;                                     //slotID:3
8866                         internal var m:Object;                                          //slotID:4
8867                         internal var parseURL:Object;                                   //slotID:5
8868                         internal var i:uint;                                            //slotID:6
8869                         internal var quaryKeyName:String;                               //slotID:7
8870
8871                         parseURL = null;
8872                         quaryKeyName = null;
8873                         url = hug1;
8874                         status = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
8875                         parser = new RegExp("^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)");
8876                         m = parser.exec(url);
8877                         parseURL = {};
8878                         i = 14;
8879                         i -= 1;
8880
8881                         while(i){
8882                                 parseURL[status[i]] = (m[i] || "");
8883                         }
8884
8885                         quaryKeyName = "queryObject";
8886                         parseURL[quaryKeyName] = {};
8887
8888                         parseURL[status[12]].replace(new RegExp("(?:^|&)([^&=]*)=?([^&]*)", "g"), function(... args):void{      //MethodID:955, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 35
8889                                 if(args[1]) parseURL[quaryKeyName][args[1]] = args[2];
8890                         });
8891
8892                         return parseURL;
8893                 }
8894
8895                 //constructor
8896                 public function StringUtils()
8897                 {       //MethodID:957, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
8898                         super();
8899                 }
8900         }
8901 }
8902
8903 //■script060■
8904
8905 package jp.nicovideo.nicoplayer.views.comment{
8906
8907         //■class(instance)_index:71
8908         public interface ICommentLayer
8909         {
8910                 //static constructor
8911                 public static function ICommentLayer$cinit()
8912                 {       //MethodID:959, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
8913                 }
8914
8915                 //variables/etc.
8916                 function set visibleEnabled(hug1:Boolean):void;                             //MethodID:960, dispID:0
8917
8918                 //constructor
8919                 public function ICommentLayer();                                            //MethodID:961, dispID:0
8920         }
8921 }
8922
8923 //■script061■
8924
8925 package jp.nicovideo.nicoplayer.views.comment{
8926
8927         import flash.display.DisplayObjectContainer
8928         import flash.display.Sprite
8929         import jp.nicovideo.nicoplayer.models.IPlayerConfig
8930         import jp.nicovideo.util.events.EventResult
8931
8932         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
8933
8934         //■class(instance)_index:72
8935         public class CommentLayer extends Object implements ICommentLayer
8936         {
8937                 //static constructor
8938                 public static function CommentLayer$cinit()
8939                 {       //MethodID:963, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
8940                 }
8941
8942                 //constructor
8943                 public function CommentLayer(hug1:Sprite, hug2:IPlayerConfig, hug3:Boolean)
8944                 {       //MethodID:964, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 38
8945                         this.__layers = {};
8946
8947                         super();
8948
8949                         this.__baseLayer = hug1;
8950                         this.__isPremium = hug3;
8951                         this._playerConfig = hug2;
8952                         this.__baseLayer.visible = hug2.commentVisible;
8953                 }
8954
8955                 //variables/etc.
8956                 private var __baseLayer:Sprite;                                 //slotID:0
8957                 private var __isPremium:Boolean;                                //slotID:0
8958                 private var __optionalCommentLayer:Sprite;                      //slotID:0
8959                 private var __isAnotherPlayerMode:Boolean = false;              //slotID:0
8960                 private var __layers:Object;                                    //slotID:0
8961                 private var _playerConfig:IPlayerConfig;                        //slotID:0
8962                 private var _visibleEnabled:Boolean = true;                     //slotID:0
8963
8964                 public function addLayer(hug1:String, hug2:int=-1):DisplayObjectContainer
8965                 {       //MethodID:965, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 78
8966                         if(this.__layers[hug1]) throw new ArgumentError();
8967
8968                         this.__layers[hug1] = new Sprite();
8969                         var hug3:Sprite = new Sprite();
8970
8971                         if(hug2 >= 0){
8972                                 this.__baseLayer.addChildAt(hug3, hug2);
8973                         }else{
8974                                 this.__baseLayer.addChild(hug3);
8975                         }
8976
8977                         return hug3;
8978                 }
8979
8980                 public function getLayer(hug1:String):DisplayObjectContainer
8981                 {       //MethodID:966, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
8982                         return this.__layers[hug1];
8983                 }
8984
8985                 public function setOptionalLayer(hug1:String):void
8986                 {       //MethodID:967, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 58
8987                         if(!this.__layers[hug1]) throw new ArgumentError();
8988
8989                         this.__optionalCommentLayer = this.__layers[hug1];
8990                         this.__optionalCommentLayer.alpha = 0.5;
8991                         this.__optionalCommentLayer.visible = this._playerConfig.optionalCommentVisible;
8992                 }
8993
8994                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStarted():EventResult
8995                 {       //MethodID:968, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
8996                         return EventResult.THROUGH;
8997                 }
8998
8999                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigCommentVisibleUpdated(hug1:Boolean):EventResult
9000                 {       //MethodID:969, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
9001                         if(!this.__isAnotherPlayerMode && this._visibleEnabled) this.__baseLayer.visible = hug1;
9002
9003                         return EventResult.THROUGH;
9004                 }
9005
9006                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigOptionalCommentVisibleUpdated(hug1:Boolean):EventResult
9007                 {       //MethodID:970, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 24
9008                         if(this.__optionalCommentLayer) this.__optionalCommentLayer.visible = hug1;
9009
9010                         return EventResult.THROUGH;
9011                 }
9012
9013                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
9014                 {       //MethodID:971, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 18
9015                         this.__isAnotherPlayerMode = hug1;
9016
9017                         this._updateVisible();
9018
9019                         return EventResult.THROUGH;
9020                 }
9021
9022                 public function set visibleEnabled(hug1:Boolean):void
9023                 {       //MethodID:972, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
9024                         this._visibleEnabled = hug1;
9025
9026                         this._updateVisible();
9027                 }
9028
9029                 private function _updateVisible():void
9030                 {       //MethodID:973, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 40
9031                         this.__baseLayer.visible = (this._visibleEnabled && !this.__isAnotherPlayerMode && this._playerConfig.commentVisible);
9032                 }
9033         }
9034 }
9035
9036 //■script062■
9037
9038 package jp.nicovideo.nicoplayer.videoender{
9039
9040         //■class(instance)_index:73
9041         public interface IVideoenderTesterConfig
9042         {
9043                 //static constructor
9044                 public static function IVideoenderTesterConfig$cinit()
9045                 {       //MethodID:975, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
9046                 }
9047
9048                 //variables/etc.
9049                 function get isTestable():Boolean;                                          //MethodID:976, dispID:0
9050
9051                 function get isTester():Boolean;                                            //MethodID:977, dispID:0
9052
9053                 function set isTester(hug1:Boolean):void;                                   //MethodID:978, dispID:0
9054
9055                 //constructor
9056                 public function IVideoenderTesterConfig();                                  //MethodID:979, dispID:0
9057         }
9058 }
9059
9060 //■script063■
9061
9062 package jp.nicovideo.nicoplayer.views.framerate{
9063
9064         //■class(instance)_index:74
9065         public interface IFrameRateBooster
9066         {
9067                 //static constructor
9068                 public static function IFrameRateBooster$cinit()
9069                 {       //MethodID:981, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
9070                 }
9071
9072                 //variables/etc.
9073                 function initialize(hug1:String, hug2:Array):void;                          //MethodID:982, dispID:0
9074
9075                 //constructor
9076                 public function IFrameRateBooster();                                        //MethodID:983, dispID:0
9077         }
9078 }
9079
9080 //■script064■
9081
9082 package jp.nicovideo.nicoplayer.views.framerate{
9083
9084         import flash.display.Stage
9085         import jp.nicovideo.nicoplayer.models.ScreenMode
9086         import jp.nicovideo.nicoplayer.models.video.VideoType
9087         import jp.nicovideo.util.events.EventResult
9088
9089         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
9090
9091         //■class(instance)_index:76
9092         public class FrameRateBooster extends Object implements IFrameRateBooster
9093         {
9094                 //static constructor
9095                 public static function FrameRateBooster$cinit()
9096                 {       //MethodID:987, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
9097                 }
9098
9099                 //constructor
9100                 public function FrameRateBooster(hug1:Stage)
9101                 {       //MethodID:988, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
9102                         this._readyStateList = {};
9103
9104                         super();
9105
9106                         this._stage = hug1;
9107                 }
9108
9109                 //variables/etc.
9110                 private var _stage:Stage;                                       //slotID:0
9111                 private var _currentScreenMode:uint;                            //slotID:0
9112                 private var _readyStateList:Object;                             //slotID:0
9113
9114                 private function _setFPS(hug1:uint):void
9115                 {       //MethodID:989, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
9116                         this._stage.frameRate = hug1;
9117                 }
9118
9119                 public function initialize(hug1:String, hug2:Array):void
9120                 {       //MethodID:992, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 76
9121                         internal var videoType:String;                                  //slotID:1
9122                         internal var bgmVideos:Array;                                   //slotID:2
9123                         internal var hasSwfVideo:Function;                              //slotID:3
9124
9125                         videoType = hug1;
9126                         bgmVideos = hug2;
9127                         hasSwfVideo = function(hug1:Array):Boolean{     //MethodID:991, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 32
9128                                 internal var bgms:Array;                                        //slotID:1
9129
9130                                 bgms = hug1;
9131
9132                                 if(bgms){
9133                                         return (!bgms.every(function(hug1:Object, hug2:int, hug3:Array):Boolean{        //MethodID:990, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 13
9134                                                 return (hug1.type != VideoType.SWF);
9135                                         }));
9136                                 }
9137
9138                                 return false;
9139                         };
9140
9141                         this._readyStateList[(_FrameRateBoostReadyState).INITIALIZED_STATE] = ((videoType != VideoType.SWF) && !hasSwfVideo(bgmVideos));
9142
9143                         this._setCurrentStateFPS();
9144                 }
9145
9146                 private function _setCurrentStateFPS():void
9147                 {       //MethodID:993, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 112
9148                         var hug2:Boolean = false;
9149                         var hug1:Boolean = false;
9150
9151                         if((this._currentScreenMode == ScreenMode.DISPLAY_FULL) || (this._currentScreenMode == ScreenMode.BROWSER_FULL)){
9152                                 hug1 = true;
9153
9154                                 for each(hug2 in this._readyStateList){
9155                                         if(!hug2){
9156                                                 hug1 = false;
9157                                                 break;
9158                                         }
9159                                 }
9160                         }
9161
9162                         this._setFPS(hug1 ? FrameRateMode.HIGH : FrameRateMode.NORMAL);
9163                 }
9164
9165                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
9166                 {       //MethodID:994, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 18
9167                         this._currentScreenMode = hug1;
9168
9169                         this._setCurrentStateFPS();
9170
9171                         return EventResult.THROUGH;
9172                 }
9173
9174                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoMenuControllerOpened():EventResult
9175                 {       //MethodID:995, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 27
9176                         this._readyStateList[(_FrameRateBoostReadyState).VIDEO_MENU_CONTROLLER_STATE] = false;
9177
9178                         this._setCurrentStateFPS();
9179
9180                         return EventResult.THROUGH;
9181                 }
9182
9183                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoMenuControllerClosed():EventResult
9184                 {       //MethodID:996, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 27
9185                         this._readyStateList[(_FrameRateBoostReadyState).VIDEO_MENU_CONTROLLER_STATE] = true;
9186
9187                         this._setCurrentStateFPS();
9188
9189                         return EventResult.THROUGH;
9190                 }
9191         }
9192 }
9193
9194
9195 //■class(instance)_index:75
9196 //private
9197 class _FrameRateBoostReadyState extends Object
9198 {
9199         //static constructor
9200         public static function _FrameRateBoostReadyState$cinit()
9201         {       //MethodID:985, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
9202                 INITIALIZED_STATE = "FrameRateBooster.initialized_state";
9203                 VIDEO_MENU_CONTROLLER_STATE = "VideoMenuControllerState";
9204         }
9205
9206         //static variables/etc.
9207         public static const INITIALIZED_STATE:String = "FrameRateBooster.initialized_state";//slotID:1
9208         public static const VIDEO_MENU_CONTROLLER_STATE:String = "VideoMenuControllerState";//slotID:2
9209
9210         //constructor
9211         public function _FrameRateBoostReadyState()
9212         {       //MethodID:986, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
9213                 super();
9214         }
9215 }
9216
9217 //■script065■
9218
9219 package jp.nicovideo.nicoplayer.tpls{
9220
9221         import flash.display.MovieClip
9222         import jp.nicovideo.nicoplayer.models.video.IVposWatcher
9223
9224         //■class(instance)_index:77
9225         public interface INicoViewController
9226         {
9227                 //static constructor
9228                 public static function INicoViewController$cinit()
9229                 {       //MethodID:998, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
9230                 }
9231
9232                 //variables/etc.
9233                 function startInit(hug1:INicoViewControllerClient):void;                    //MethodID:999, dispID:0
9234
9235                 function get videoBase():MovieClip;                                         //MethodID:1000, dispID:0
9236
9237                 function get marqueeBase():MovieClip;                                       //MethodID:1001, dispID:0
9238
9239                 function onCommentListInitialized(hug1:Boolean):void;                       //MethodID:1002, dispID:0
9240
9241                 function onVideoInitialized(hug1:Boolean):void;                             //MethodID:1003, dispID:0
9242
9243                 function onHirobaInitialized():void;                                        //MethodID:1004, dispID:0
9244
9245                 function initVideoEventPipe(hug1:IVposWatcher):void;                        //MethodID:1005, dispID:0
9246
9247                 function initCommentEventPipe():void;                                       //MethodID:1006, dispID:0
9248
9249                 function initializeVideoSettings(hug1:Function):void;                       //MethodID:1007, dispID:0
9250
9251                 //constructor
9252                 public function INicoViewController();                                      //MethodID:1008, dispID:0
9253         }
9254 }
9255
9256 //■script066■
9257
9258 package jp.nicovideo.nicoplayer.app{
9259
9260         import jp.nicovideo.nicoplayer.app.view.IApplibarContainer
9261         import jp.nicovideo.nicoplayer.plugin.IPluginClient
9262         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.ITabManager
9263
9264         //■class(instance)_index:78
9265         public interface IApplibarLoader
9266         {
9267                 //static constructor
9268                 public static function IApplibarLoader$cinit()
9269                 {       //MethodID:1010, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
9270                 }
9271
9272                 //variables/etc.
9273                 function closeBalloon():void;                                               //MethodID:1011, dispID:0
9274
9275                 function setContainer(hug1:IApplibarContainer, hug2:ITabManager):void;      //MethodID:1012, dispID:0
9276
9277                 function setPluginClient(hug1:IPluginClient):void;                          //MethodID:1013, dispID:0
9278
9279                 //constructor
9280                 public function IApplibarLoader();                                          //MethodID:1014, dispID:0
9281         }
9282 }
9283
9284 //■script067■
9285
9286 package jp.nicovideo.nicoplayer.app{
9287
9288         import flash.display.DisplayObject
9289         import flash.events.Event
9290         import jp.nicovideo.app.applibar.IApplibar
9291         import jp.nicovideo.app.applibar.externals.events.ApplibarEvent
9292         import jp.nicovideo.nicoplayer.app.api.APIObjectProviderSwitcher
9293         import jp.nicovideo.nicoplayer.app.view.IApplibarContainer
9294         import jp.nicovideo.nicoplayer.models.IPlayerConfig
9295         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
9296         import jp.nicovideo.nicoplayer.plugin.IPluginClient
9297         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.ITabManager
9298         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowViewConstants
9299         import jp.nicovideo.util.Functions
9300         import jp.nicovideo.util.HTTPUtils
9301         import jp.nicovideo.util.events.event_sender
9302
9303         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
9304
9305         //■class(instance)_index:80
9306         public class ApplibarLoader extends Object
9307                         implements EventSender, IApplibarLoader
9308         {
9309                 //static constructor
9310                 public static function ApplibarLoader$cinit()
9311                 {       //MethodID:1018, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
9312                 }
9313
9314                 //constructor
9315                 public function ApplibarLoader(hug1:String, hug2:Object, hug3:String, hug4:String, hug5:IPlayerConfig, hug6:Number, hug7:Boolean)
9316                 {       //MethodID:1019, LocalCount= 8 , MaxScope= 1, MaxStack= 4, CodeLength= 84
9317                         this.onLoaded = new Functions();
9318                         this.onPageOpen = new Functions();
9319                         this.onBalloonVisibleChanged = new Functions();
9320                         this._eventNames = ["onBalloonVisibleChanged"];
9321
9322                         super();
9323                         HTTPUtils.loadSWF(this._onLoaded, hug1, hug2);
9324
9325                         this._userID = hug3;
9326                         this._bootApp = hug4;
9327                         this._playerConfig = hug5;
9328                         this._appliInstalled = hug6;
9329                         this._isWelcomeBalloonOpenDefault = hug7;
9330                 }
9331
9332                 //variables/etc.
9333                 public const onLoaded:Functions;                                //slotID:0
9334                 public const onPageOpen:Functions;                              //slotID:0
9335                 private const _BALLOON_LIMIT_WIDTH:Number = 260.0;              //slotID:0
9336                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onBalloonVisibleChanged:Functions;//slotID:0
9337                 private var _applibar:IApplibar;                                //slotID:0
9338                 private var _client:ApplibarClient;                             //slotID:0
9339                 private var _container:IApplibarContainer;                      //slotID:0
9340                 private var _providerSwitcher:APIObjectProviderSwitcher;        //slotID:0
9341                 private var _userID:String;                                     //slotID:0
9342                 private var _playerConfig:IPlayerConfig;                        //slotID:0
9343                 private var _aspectForceChanged:Boolean = false;                //slotID:0
9344                 private var _lastAspect:uint;                                   //slotID:0
9345                 private var _bootApp:String;                                    //slotID:0
9346                 private var _windowManager:ITabManager;                         //slotID:0
9347                 private var _appliInstalled:Number;                             //slotID:0
9348                 private var _isWelcomeBalloonOpenDefault:Boolean;               //slotID:0
9349                 private var _eventNames:Array;                                  //slotID:0
9350
9351                 public function get eventNames():Array
9352                 {       //MethodID:1020, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
9353                         return this._eventNames;
9354                 }
9355
9356                 private function _onLoaded(hug1:*):void
9357                 {       //MethodID:1021, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 30
9358                         this._applibar = IApplibar(hug1);
9359
9360                         this.onLoaded.apply(this._applibar != null);
9361                 }
9362
9363                 private function _checkPreparing():Boolean
9364                 {       //MethodID:1022, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
9365                         return (this._container && this._providerSwitcher);
9366                 }
9367
9368                 public function setContainer(hug1:IApplibarContainer, hug2:ITabManager):void
9369                 {       //MethodID:1023, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 36
9370                         this._windowManager = hug2;
9371                         this._container = hug1;
9372
9373                         this._container.container.addChild(this._applibar as DisplayObject);
9374                         this._onSetSource();
9375                 }
9376
9377                 public function setPluginClient(hug1:IPluginClient):void
9378                 {       //MethodID:1024, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 20
9379                         this._providerSwitcher = new APIObjectProviderSwitcher(hug1);
9380
9381                         this._onSetSource();
9382                 }
9383
9384                 private function _onSetSource():void
9385                 {       //MethodID:1026, LocalCount= 2 , MaxScope= 2, MaxStack= 7, CodeLength= 91
9386                         if(!this._container || !this._providerSwitcher) return;
9387
9388                         this._client = new ApplibarClient(this._container, this._providerSwitcher, this._userID, this._appliInstalled, this._isWelcomeBalloonOpenDefault);
9389
9390                         this._applibar.start(this._client, this._bootApp);
9391                         this._applibar.addEventListener(Event.INIT, function(hug1:Event):void{  //MethodID:1025, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 99
9392                                 _container.onInitApplibar(_applibar);
9393                                 _onBarOpenUpdated();
9394                                 _applibar.addEventListener(Event.OPEN, _onBarOpenUpdated);
9395                                 _applibar.addEventListener(Event.CLOSE, _onBarOpenUpdated);
9396                                 _applibar.balloonController.addEventListener(Event.OPEN, _onBalloonVisibleChanged);
9397                                 _applibar.balloonController.addEventListener(Event.CLOSE, _onBalloonVisibleChanged);
9398                                 _applibar.addEventListener(ApplibarEvent.PAGE_OPEN, _onPageOpen);
9399                         });
9400                 }
9401
9402                 private function _onBarOpenUpdated(hug1:Event=null):void
9403                 {       //MethodID:1027, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 82
9404                         this._container.onBarBaseSizeUpdate();
9405
9406                         var hug2:Number = 4;
9407
9408                         this._windowManager.updateWindowHeight(WindowViewConstants.CONTENT_HEIGHT_FULL - this._applibar.baseHeight - hug2);
9409
9410                         if(this._applibar.balloonController.isShowing) onBalloonVisibleChanged.apply(this._applibar.isOpen);
9411                 }
9412
9413                 private function _onBalloonVisibleChanged(hug1:Event):void
9414                 {       //MethodID:1028, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 154
9415                         var hug2:Boolean = false;
9416
9417                         if(!this._applibar.isOpen) return;
9418
9419                         if(hug1.type == Event.OPEN){
9420                                 hug2 = true;
9421                         }else if(hug1.type == Event.CLOSE){
9422                                 hug2 = false;
9423                         }else{
9424                                 return;
9425                         }
9426
9427                         if(this._applibar.balloonController.containerWidth > this._BALLOON_LIMIT_WIDTH){
9428                                 this._lastAspect = this._playerConfig.aspectRatio;
9429                                 this._aspectForceChanged = true;
9430                                 this._playerConfig.aspectRatio = ScreenAspectRatio.NORMAL;
9431                         }else{
9432                                 if(this._aspectForceChanged) this._playerConfig.aspectRatio = this._lastAspect;
9433
9434                                 this._aspectForceChanged = false;
9435                         }
9436
9437                         onBalloonVisibleChanged.apply(hug2);
9438                 }
9439
9440                 private function _onPageOpen(hug1:ApplibarEvent):void
9441                 {       //MethodID:1029, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 11
9442                         this.onPageOpen.apply();
9443                 }
9444
9445                 public function closeBalloon():void
9446                 {       //MethodID:1030, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 14
9447                         this._applibar.balloonController.close();
9448                 }
9449         }
9450 }
9451
9452
9453 //■class(instance)_index:79
9454 //private
9455 class _Guard extends Object
9456 {
9457         //static constructor
9458         public static function _Guard$cinit()
9459         {       //MethodID:1016, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
9460         }
9461
9462         //constructor
9463         public function _Guard()
9464         {       //MethodID:1017, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
9465                 super();
9466         }
9467 }
9468
9469 //■script068■
9470
9471 package jp.nicovideo.nicoplayer.storages{
9472
9473         import flash.errors.IllegalOperationError
9474         import jp.nicovideo.nicoplayer.storages.transmitter.HTTPTransmitter
9475         import jp.nicovideo.nicoplayer.storages.transmitter.ITransmitter
9476         import jp.nicovideo.nicoplayer.storages.transmitter.XMLSocketTransmitter
9477         import jp.nicovideo.nicoplayer.storages.transmitter.useMsgXML
9478         import jp.nicovideo.util.Functions
9479
9480         //■class(instance)_index:81
9481         public class MessageServerClient extends Object
9482         {
9483                 //static constructor
9484                 public static function MessageServerClient$cinit()
9485                 {       //MethodID:1032, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 437
9486                         NIWAVIDE_PACKET_VERSION = "20061206";
9487                         NIWAVIDE_PACKET_LEAF_VERSION = "20090904";
9488                         THREAD_FOUND = 0;
9489                         THREAD_NOT_FOUND = 1;
9490                         THREAD_INVALID = 2;
9491                         THREAD_VERSION = 3;
9492                         THREAD_INVALID_WAYBACKKEY = 4;
9493                         THREAD_TOO_OLD_WAYBACKKEY = 5;
9494                         THREAD_INVALID_ADMINKEY = 6;
9495                         THREAD_TOO_OLD_ADMINKEY = 7;
9496                         THREAD_INVALID_THREADKEY = 8;
9497                         THREAD_TOO_OLD_THREADKEY = 9;
9498                         THREAD_NOT_IMPLEMENTED = 10;
9499                         THREAD_LEAF_NOT_ACTIVATED = 11;
9500                         THREAD_LEAF_LOADING = 12;
9501                         POST_SUCCESS = 0;
9502                         POST_FAILURE = 1;
9503                         POST_INVALID_THREAD = 2;
9504                         POST_INVALID_TICKET = 3;
9505                         POST_INVALID_POSTKEY = 4;
9506                         POST_LOCKED = 5;
9507                         POST_READONLY = 6;
9508                         POST_NOT_IMPLEMENTED = 7;
9509                         LOCK_SUCCESS = 0;
9510                         LOCK_FAILURE = 1;
9511                         LOCK_ALREADY = 2;
9512                         LOCK_INVALID_LOCKKEY = 3;
9513                         DELETE_SUCCESS = 0;
9514                         DELETE_FAILURE = 1;
9515                         DELETE_INVALID_DELETEKEY = 2;
9516                         DELETE_LOCKED = 3;
9517                         DELETE_REVISED = 4;
9518                         COPY_SUCCESS = 0;
9519                         COPY_FAILURE = 1;
9520                         COPY_INVALID_PARAM = 2;
9521                         COPY_INVALID_COPYKEY = 3;
9522                         COPY_LOCKED = 4;
9523                         COPY_LEAF_NOT_ACTIVATED = 5;
9524                         BAN_SUCCESS = 0;
9525                         BAN_INVALID_BANKEY = 1;
9526                         UNBAN_SUCCESS = 0;
9527                         UNBAN_INVALID_BANKEY = 1;
9528                         UPDATE_SUCCESS = 0;
9529                         UPDATE_FAILURE = 1;
9530                         UPDATE_LOCKED = 2;
9531                         UPDATE_INVALID_TICKET = 3;
9532                         UPDATE_INVALID_UPDATEKEY = 4;
9533                         UPDATE_INVALID_THREAD = 5;
9534                         UPDATE_COUNT_MISSMATCH = 6;
9535                         CLICK_SUCCESS = 0;
9536                         CLICK_FAILURE = 1;
9537                         CLICK_INVALID_CLICKKEY = 2;
9538                         FORK_MAIN = 0;
9539                         FORK_OWNER = 1;
9540                 }
9541
9542                 //static variables/etc.
9543                 public static const NIWAVIDE_PACKET_VERSION:String = 20061206;  //slotID:1
9544                 public static const NIWAVIDE_PACKET_LEAF_VERSION:String = 20090904;//slotID:2
9545                 public static const THREAD_FOUND:uint = 0;                      //slotID:3
9546                 public static const THREAD_NOT_FOUND:uint = 1;                  //slotID:4
9547                 public static const THREAD_INVALID:uint = 2;                    //slotID:5
9548                 public static const THREAD_VERSION:uint = 3;                    //slotID:6
9549                 public static const THREAD_INVALID_WAYBACKKEY:uint = 4;         //slotID:7
9550                 public static const THREAD_TOO_OLD_WAYBACKKEY:uint = 5;         //slotID:8
9551                 public static const THREAD_INVALID_ADMINKEY:uint = 6;           //slotID:9
9552                 public static const THREAD_TOO_OLD_ADMINKEY:uint = 7;           //slotID:10
9553                 public static const THREAD_INVALID_THREADKEY:uint = 8;          //slotID:11
9554                 public static const THREAD_TOO_OLD_THREADKEY:uint = 9;          //slotID:12
9555                 public static const THREAD_NOT_IMPLEMENTED:uint = 10;           //slotID:13
9556                 public static const THREAD_LEAF_NOT_ACTIVATED:uint = 11;        //slotID:14
9557                 public static const THREAD_LEAF_LOADING:uint = 12;              //slotID:15
9558                 public static const POST_SUCCESS:uint = 0;                      //slotID:16
9559                 public static const POST_FAILURE:uint = 1;                      //slotID:17
9560                 public static const POST_INVALID_THREAD:uint = 2;               //slotID:18
9561                 public static const POST_INVALID_TICKET:uint = 3;               //slotID:19
9562                 public static const POST_INVALID_POSTKEY:uint = 4;              //slotID:20
9563                 public static const POST_LOCKED:uint = 5;                       //slotID:21
9564                 public static const POST_READONLY:uint = 6;                     //slotID:22
9565                 public static const POST_NOT_IMPLEMENTED:uint = 7;              //slotID:23
9566                 public static const LOCK_SUCCESS:uint = 0;                      //slotID:24
9567                 public static const LOCK_FAILURE:uint = 1;                      //slotID:25
9568                 public static const LOCK_ALREADY:uint = 2;                      //slotID:26
9569                 public static const LOCK_INVALID_LOCKKEY:uint = 3;              //slotID:27
9570                 public static const DELETE_SUCCESS:uint = 0;                    //slotID:28
9571                 public static const DELETE_FAILURE:uint = 1;                    //slotID:29
9572                 public static const DELETE_INVALID_DELETEKEY:uint = 2;          //slotID:30
9573                 public static const DELETE_LOCKED:uint = 3;                     //slotID:31
9574                 public static const DELETE_REVISED:uint = 4;                    //slotID:32
9575                 public static const COPY_SUCCESS:uint = 0;                      //slotID:33
9576                 public static const COPY_FAILURE:uint = 1;                      //slotID:34
9577                 public static const COPY_INVALID_PARAM:uint = 2;                //slotID:35
9578                 public static const COPY_INVALID_COPYKEY:uint = 3;              //slotID:36
9579                 public static const COPY_LOCKED:uint = 4;                       //slotID:37
9580                 public static const COPY_LEAF_NOT_ACTIVATED:uint = 5;           //slotID:38
9581                 public static const BAN_SUCCESS:uint = 0;                       //slotID:39
9582                 public static const BAN_INVALID_BANKEY:uint = 1;                //slotID:40
9583                 public static const UNBAN_SUCCESS:uint = 0;                     //slotID:41
9584                 public static const UNBAN_INVALID_BANKEY:uint = 1;              //slotID:42
9585                 public static const UPDATE_SUCCESS:uint = 0;                    //slotID:43
9586                 public static const UPDATE_FAILURE:uint = 1;                    //slotID:44
9587                 public static const UPDATE_LOCKED:uint = 2;                     //slotID:45
9588                 public static const UPDATE_INVALID_TICKET:uint = 3;             //slotID:46
9589                 public static const UPDATE_INVALID_UPDATEKEY:uint = 4;          //slotID:47
9590                 public static const UPDATE_INVALID_THREAD:uint = 5;             //slotID:48
9591                 public static const UPDATE_COUNT_MISSMATCH:uint = 6;            //slotID:49
9592                 public static const CLICK_SUCCESS:uint = 0;                     //slotID:50
9593                 public static const CLICK_FAILURE:uint = 1;                     //slotID:51
9594                 public static const CLICK_INVALID_CLICKKEY:uint = 2;            //slotID:52
9595                 public static const FORK_MAIN:uint = 0;                         //slotID:53
9596                 public static const FORK_OWNER:uint = 1;                        //slotID:54
9597
9598                 //constructor
9599                 public function MessageServerClient(hug1:String, hug2:uint=0, hug3:Boolean=false)
9600                 {       //MethodID:1056, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 193
9601                         this.__connected = new Functions();
9602                         this.__connectionLost = new Functions();
9603                         this.__requestBegan = new Functions();
9604                         this.onCMsgGetThreadResult = new Functions();
9605                         this.onCMsgViewCounter = new Functions();
9606                         this.onCMsgLeaveThread = new Functions();
9607                         this.onCMsgPostChatResult = new Functions();
9608                         this.onCMsgChat = new Functions();
9609                         this.onCMsgPing = new Functions();
9610                         this.onCMsgError = new Functions();
9611                         this.onCMsgDeleteCommentsResult = new Functions();
9612                         this.onCMsgUpdateThreadResult = new Functions();
9613                         this.onCMsgClickResult = new Functions();
9614                         this.onCMsgNumberOfClick = new Functions();
9615                         this.onCMsgUnloadThreadResult = new Functions();
9616                         this.onCMsgLeaf = new Functions();
9617                         this.onCMsgClose = new Functions();
9618
9619                         super();
9620
9621                         XML.ignoreWhitespace = false;
9622                         XML.prettyIndent = 0;
9623                         XML.prettyPrinting = false;
9624                         this.__host = hug1;
9625                         this.__port = hug2;
9626                         this.__isPingEnabled = hug3;
9627                 }
9628
9629                 //variables/etc.
9630                 public const __connected:Functions;                             //slotID:0
9631                 public const __connectionLost:Functions;                        //slotID:0
9632                 public const __requestBegan:Functions;                          //slotID:0
9633                 public const onCMsgGetThreadResult:Functions;                   //slotID:0
9634                 public const onCMsgViewCounter:Functions;                       //slotID:0
9635                 public const onCMsgLeaveThread:Functions;                       //slotID:0
9636                 public const onCMsgPostChatResult:Functions;                    //slotID:0
9637                 public const onCMsgChat:Functions;                              //slotID:0
9638                 public const onCMsgPing:Functions;                              //slotID:0
9639                 public const onCMsgError:Functions;                             //slotID:0
9640                 public const onCMsgDeleteCommentsResult:Functions;              //slotID:0
9641                 public const onCMsgUpdateThreadResult:Functions;                //slotID:0
9642                 public const onCMsgClickResult:Functions;                       //slotID:0
9643                 public const onCMsgNumberOfClick:Functions;                     //slotID:0
9644                 public const onCMsgUnloadThreadResult:Functions;                //slotID:0
9645                 public const onCMsgLeaf:Functions;                              //slotID:0
9646                 public const onCMsgClose:Functions;                             //slotID:0
9647                 private var __host:String = null;                               //slotID:0
9648                 private var __port:uint = 0;                                    //slotID:0
9649                 private var __transmitter:ITransmitter = null;                  //slotID:0
9650                 private var __XMLBuffer:XML = null;                             //slotID:0
9651                 private var __isPingEnabled:Boolean;                            //slotID:0
9652
9653                 public function get connected():Functions
9654                 {       //MethodID:1033, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
9655                         return this.__connected;
9656                 }
9657
9658                 public function get connectionLost():Functions
9659                 {       //MethodID:1034, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
9660                         return this.__connectionLost;
9661                 }
9662
9663                 public function get requestBegan():Functions
9664                 {       //MethodID:1035, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
9665                         return this.__requestBegan;
9666                 }
9667
9668                 public function sendCMsgGetThread(hug1:int=0, hug2:String=null, hug3:int=0, hug4:String=null, hug5:int=0, hug6:String=null, hug7:int=0, hug8:int=0, hug9:String=null, hug10:int=0, hug11:String=null, hug12:int=0):void
9669                 {       //MethodID:1037, LocalCount= 14 , MaxScope= 2, MaxStack= 2, CodeLength= 87
9670                         internal var threadid:int = 0;                                  //slotID:1
9671                         internal var version:String = null;                             //slotID:2
9672                         internal var resfrom:int = 0;                                   //slotID:3
9673                         internal var waybackkey:String = null;                          //slotID:4
9674                         internal var when:int = 0;                                      //slotID:5
9675                         internal var user:String = null;                                //slotID:6
9676                         internal var nocompress:int = 0;                                //slotID:7
9677                         internal var fork:int = 0;                                      //slotID:8
9678                         internal var adminkey:String = null;                            //slotID:9
9679                         internal var clickrevision:int = 0;                             //slotID:10
9680                         internal var threadkey:String = null;                           //slotID:11
9681                         internal var force184:int = 0;                                  //slotID:12
9682
9683                         threadid = hug1;
9684                         version = hug2;
9685                         resfrom = hug3;
9686                         waybackkey = hug4;
9687                         when = hug5;
9688                         user = hug6;
9689                         nocompress = hug7;
9690                         fork = hug8;
9691                         adminkey = hug9;
9692                         clickrevision = hug10;
9693                         threadkey = hug11;
9694                         force184 = hug12;
9695
9696                         useMsgXML(function():void{      //MethodID:1036, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 207
9697                                 var hug1:XML = new XML("<thread/>");
9698
9699                                 if(threadid != 0) hug1.@thread = threadid;
9700
9701                                 if(version != null) hug1.@version = version;
9702
9703                                 if(resfrom != 0) hug1.@res_from = resfrom;
9704
9705                                 if(waybackkey != null) hug1.@waybackkey = waybackkey;
9706
9707                                 if(when != 0) hug1.@when = when;
9708
9709                                 if(user != null) hug1.@user_id = user;
9710
9711                                 if(nocompress != 0) hug1.@no_compress = nocompress;
9712
9713                                 if(fork != FORK_MAIN) hug1.@fork = fork;
9714
9715                                 if(adminkey != null) hug1.@adminkey = adminkey;
9716
9717                                 if(clickrevision != 0) hug1.@click_revision = clickrevision;
9718
9719                                 if(threadkey != null) hug1.@threadkey = threadkey;
9720
9721                                 if(force184 != 0) hug1.@force_184 = force184;
9722                                 __sendXML(hug1);
9723                         });
9724                 }
9725
9726                 public function sendCMsgGetThreadLeaves(hug1:String, hug2:int, hug3:String=null, hug4:int=0, hug5:String=null, hug6:int=0, hug7:String=null, hug8:int=0, hug9:int=0):void
9727                 {       //MethodID:1039, LocalCount= 11 , MaxScope= 2, MaxStack= 2, CodeLength= 69
9728                         internal var leavesfrom:String;                                 //slotID:1
9729                         internal var threadid:int;                                      //slotID:2
9730                         internal var waybackkey:String = null;                          //slotID:3
9731                         internal var when:int = 0;                                      //slotID:4
9732                         internal var user:String = null;                                //slotID:5
9733                         internal var nocompress:int = 0;                                //slotID:6
9734                         internal var threadkey:String = null;                           //slotID:7
9735                         internal var force184:int = 0;                                  //slotID:8
9736                         internal var resbefore:int = 0;                                 //slotID:9
9737
9738                         leavesfrom = hug1;
9739                         threadid = hug2;
9740                         waybackkey = hug3;
9741                         when = hug4;
9742                         user = hug5;
9743                         nocompress = hug6;
9744                         threadkey = hug7;
9745                         force184 = hug8;
9746                         resbefore = hug9;
9747
9748                         useMsgXML(function():void{      //MethodID:1038, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 144
9749                                 var hug1:XML = new XML("<thread_leaves>" + leavesfrom + "</thread_leaves>");
9750                                 hug1.@thread = threadid;
9751
9752                                 if(waybackkey != null) hug1.@waybackkey = waybackkey;
9753
9754                                 if(when != 0) hug1.@when = when;
9755
9756                                 if(user != null) hug1.@user_id = user;
9757
9758                                 if(nocompress != 0) hug1.@no_compress = nocompress;
9759
9760                                 if(threadkey != null) hug1.@threadkey = threadkey;
9761
9762                                 if(force184 != 0) hug1.@force_184 = force184;
9763
9764                                 if(resbefore != 0) hug1.@res_before = resbefore;
9765                                 __sendXML(hug1);
9766                         });
9767                 }
9768
9769                 public function sendCMsgLeaveThread(hug1:int=0, hug2:int=0):void
9770                 {       //MethodID:1041, LocalCount= 4 , MaxScope= 2, MaxStack= 2, CodeLength= 27
9771                         internal var threadid:int = 0;                                  //slotID:1
9772                         internal var reason:int = 0;                                    //slotID:2
9773
9774                         threadid = hug1;
9775                         reason = hug2;
9776
9777                         useMsgXML(function():void{      //MethodID:1040, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 51
9778                                 var hug1:XML = new XML("<leave_thread/>");
9779
9780                                 if(threadid != 0) hug1.@thread = threadid;
9781
9782                                 if(reason != 0) hug1.@reason = reason;
9783                                 __sendXML(hug1);
9784                         });
9785                 }
9786
9787                 public function sendCMsgPostChat(hug1:String, hug2:int, hug3:int, hug4:String=null, hug5:String=null, hug6:String=null, hug7:int=0, hug8:String=null, hug9:String=null, hug10:int=0, hug11:int=0, hug12:int=0, hug13:int=0):void
9788                 {       //MethodID:1043, LocalCount= 15 , MaxScope= 2, MaxStack= 2, CodeLength= 93
9789                         internal var message:String;                                    //slotID:1
9790                         internal var threadid:int;                                      //slotID:2
9791                         internal var videoposition:int;                                 //slotID:3
9792                         internal var mail:String = null;                                //slotID:4
9793                         internal var name:String = null;                                //slotID:5
9794                         internal var ticket:String = null;                              //slotID:6
9795                         internal var sage:int = 0;                                      //slotID:7
9796                         internal var user:String = null;                                //slotID:8
9797                         internal var postkey:String = null;                             //slotID:9
9798                         internal var premium:int = 0;                                   //slotID:10
9799                         internal var yugi:int = 0;                                      //slotID:11
9800                         internal var staff:int = 0;                                     //slotID:12
9801                         internal var sex:int = 0;                                       //slotID:13
9802
9803                         message = hug1;
9804                         threadid = hug2;
9805                         videoposition = hug3;
9806                         mail = hug4;
9807                         name = hug5;
9808                         ticket = hug6;
9809                         sage = hug7;
9810                         user = hug8;
9811                         postkey = hug9;
9812                         premium = hug10;
9813                         yugi = hug11;
9814                         staff = hug12;
9815                         sex = hug13;
9816
9817                         useMsgXML(function():void{      //MethodID:1042, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 269
9818                                 message = message.replace(new RegExp("&", "g"), "&amp;").replace(new RegExp("<", "g"), "&lt;").replace(new RegExp(">", "g"), "&gt;");
9819                                 var hug1:XML = new XML("<chat>" + message + "</chat>");
9820
9821                                 if(threadid != 0) hug1.@thread = threadid;
9822
9823                                 hug1.@vpos = videoposition;
9824
9825                                 if(mail != null) hug1.@mail = mail;
9826
9827                                 if(name != null) hug1.@name = name;
9828
9829                                 if(ticket != null) hug1.@ticket = ticket;
9830
9831                                 if(sage != 0) hug1.@sage = sage;
9832
9833                                 if(user != null) hug1.@user_id = user;
9834
9835                                 if(postkey != null) hug1.@postkey = postkey;
9836
9837                                 if(premium != 0) hug1.@premium = premium;
9838
9839                                 if(yugi != 0) hug1.@yugi = yugi;
9840
9841                                 if(staff != 0) hug1.@staff = staff;
9842
9843                                 if(sex != 0) hug1.@sex = sex;
9844                                 __sendXML(hug1);
9845                         });
9846                 }
9847
9848                 public function sendCMsgDebug(hug1:String):void
9849                 {       //MethodID:1045, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 22
9850                         internal var message:String;                                    //slotID:1
9851
9852                         message = hug1;
9853
9854                         useMsgXML(function():void{      //MethodID:1044, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 28
9855                                 var hug1:XML = new XML("<debug>" + message + "</debug>");
9856
9857                                 __sendXML(hug1);
9858                         });
9859                 }
9860
9861                 public function sendCMsgDeleteComments(hug1:int, hug2:String, hug3:String, hug4:String, hug5:int=0, hug6:int=0, hug7:int=0):void
9862                 {       //MethodID:1047, LocalCount= 9 , MaxScope= 2, MaxStack= 2, CodeLength= 57
9863                         internal var threadid:int;                                      //slotID:1
9864                         internal var userid:String;                                     //slotID:2
9865                         internal var deletekey:String;                                  //slotID:3
9866                         internal var list:String;                                       //slotID:4
9867                         internal var undelete:int = 0;                                  //slotID:5
9868                         internal var revision:int = 0;                                  //slotID:6
9869                         internal var admin:int = 0;                                     //slotID:7
9870
9871                         threadid = hug1;
9872                         userid = hug2;
9873                         deletekey = hug3;
9874                         list = hug4;
9875                         undelete = hug5;
9876                         revision = hug6;
9877                         admin = hug7;
9878
9879                         useMsgXML(function():void{      //MethodID:1046, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 97
9880                                 var hug1:XML = new XML("<delete_comments>" + list + "</delete_comments>");
9881                                 hug1.@thread = threadid;
9882                                 hug1.@user_id = userid;
9883                                 hug1.@deletekey = deletekey;
9884
9885                                 if(undelete != 0) hug1.@undelete = undelete;
9886
9887                                 if(revision != 0) hug1.@revision = revision;
9888
9889                                 if(admin != 0) hug1.@admin = admin;
9890                                 __sendXML(hug1);
9891                         });
9892                 }
9893
9894                 public function sendCMsgAddThreadItem(hug1:String, hug2:int, hug3:String=null, hug4:String=null):void
9895                 {       //MethodID:1049, LocalCount= 6 , MaxScope= 2, MaxStack= 2, CodeLength= 39
9896                         internal var message:String;                                    //slotID:1
9897                         internal var videoposition:int;                                 //slotID:2
9898                         internal var mail:String = null;                                //slotID:3
9899                         internal var name:String = null;                                //slotID:4
9900
9901                         message = hug1;
9902                         videoposition = hug2;
9903                         mail = hug3;
9904                         name = hug4;
9905
9906                         useMsgXML(function():void{      //MethodID:1048, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 128
9907                                 message = message.replace(new RegExp("&", "g"), "&amp;").replace(new RegExp("<", "g"), "&lt;").replace(new RegExp(">", "g"), "&gt;");
9908                                 var hug1:XML = new XML("<add_thread_item>" + message + "</add_thread_item>");
9909                                 hug1.@vpos = videoposition;
9910
9911                                 if(mail != null) hug1.@mail = mail;
9912
9913                                 if(name != null) hug1.@name = name;
9914                                 __sendXML(hug1);
9915                         });
9916                 }
9917
9918                 public function sendCMsgUpdateThread(hug1:int, hug2:String, hug3:int, hug4:String, hug5:String, hug6:int=0):void
9919                 {       //MethodID:1051, LocalCount= 8 , MaxScope= 2, MaxStack= 2, CodeLength= 51
9920                         internal var threadid:int;                                      //slotID:1
9921                         internal var user:String;                                       //slotID:2
9922                         internal var count:int;                                         //slotID:3
9923                         internal var ticket:String;                                     //slotID:4
9924                         internal var updatekey:String;                                  //slotID:5
9925                         internal var premium:int = 0;                                   //slotID:6
9926
9927                         threadid = hug1;
9928                         user = hug2;
9929                         count = hug3;
9930                         ticket = hug4;
9931                         updatekey = hug5;
9932                         premium = hug6;
9933
9934                         useMsgXML(function():void{      //MethodID:1050, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 79
9935                                 var hug1:XML = new XML("<update_thread/>");
9936                                 hug1.@thread = threadid;
9937                                 hug1.@user_id = user;
9938
9939                                 if(count != 0) hug1.@count = count;
9940
9941                                 hug1.@ticket = ticket;
9942                                 hug1.@updatekey = updatekey;
9943
9944                                 if(premium != 0) hug1.@premium = premium;
9945                                 __sendXML(hug1);
9946                         });
9947                 }
9948
9949                 public function sendCMsgClick(hug1:int, hug2:int, hug3:String, hug4:String):void
9950                 {       //MethodID:1053, LocalCount= 6 , MaxScope= 2, MaxStack= 2, CodeLength= 39
9951                         internal var threadid:int;                                      //slotID:1
9952                         internal var number:int;                                        //slotID:2
9953                         internal var user:String;                                       //slotID:3
9954                         internal var clickkey:String;                                   //slotID:4
9955
9956                         threadid = hug1;
9957                         number = hug2;
9958                         user = hug3;
9959                         clickkey = hug4;
9960
9961                         useMsgXML(function():void{      //MethodID:1052, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 47
9962                                 var hug1:XML = new XML("<click/>");
9963                                 hug1.@thread = threadid;
9964                                 hug1.@no = number;
9965                                 hug1.@user_id = user;
9966                                 hug1.@clickkey = clickkey;
9967
9968                                 __sendXML(hug1);
9969                         });
9970                 }
9971
9972                 public function sendCMsgUnloadThread(hug1:int, hug2:String, hug3:String, hug4:String):void
9973                 {       //MethodID:1055, LocalCount= 6 , MaxScope= 2, MaxStack= 2, CodeLength= 39
9974                         internal var threadid:int;                                      //slotID:1
9975                         internal var ticket:String;                                     //slotID:2
9976                         internal var user:String;                                       //slotID:3
9977                         internal var unloadkey:String;                                  //slotID:4
9978
9979                         threadid = hug1;
9980                         ticket = hug2;
9981                         user = hug3;
9982                         unloadkey = hug4;
9983
9984                         useMsgXML(function():void{      //MethodID:1054, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 47
9985                                 var hug1:XML = new XML("<unload_thread/>");
9986                                 hug1.@thread = threadid;
9987                                 hug1.@ticket = ticket;
9988                                 hug1.@user_id = user;
9989                                 hug1.@unloadkey = unloadkey;
9990
9991                                 __sendXML(hug1);
9992                         });
9993                 }
9994
9995                 public function get connectionType():String
9996                 {       //MethodID:1057, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 25
9997                         return (this.__transmitter ? this.__transmitter.type : null);
9998                 }
9999
10000                 public function get isConnecting():Boolean
10001                 {       //MethodID:1058, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 22
10002                         return (this.__transmitter && this.__transmitter.isConnecting);
10003                 }
10004
10005                 public function connect(hug1:Function):void
10006                 {       //MethodID:1062, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 141
10007                         internal var f:Function;                                        //slotID:1
10008
10009                         f = hug1;
10010
10011                         if(this.__transmitter != null) throw new IllegalOperationError("MessageServerClient.connect: Already connected.");
10012
10013                         this.__transmitter = ((this.__port == 0) ? new HTTPTransmitter(this.__host) : new XMLSocketTransmitter(this.__host, this.__port, this.__isPingEnabled));
10014
10015                         this.__transmitter.connected.add(function():void{       //MethodID:1059, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
10016                                 __connected.apply();
10017                         });
10018                         this.__transmitter.xmlReceived.add(function(hug1:XML):void{     //MethodID:1060, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
10019                                 __XMLReceived(hug1);
10020                         });
10021                         this.__transmitter.errorOccured.add(function(hug1:String):void{ //MethodID:1061, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 16
10022                                 __transmitter = null;
10023
10024                                 __connectionLost.apply(hug1);
10025                         });
10026                         this.__transmitter.connect(f);
10027                 }
10028
10029                 public function disconnect():void
10030                 {       //MethodID:1063, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 36
10031                         if(this.__transmitter == null) throw new IllegalOperationError("MessageServerClient.disconnect: Already disconnected.");
10032                         this.__transmitter.disconnect();
10033
10034                         this.__transmitter = null;
10035                 }
10036
10037                 public function chunk(hug1:Function):void
10038                 {       //MethodID:1064, LocalCount= 5 , MaxScope= 7, MaxStack= 4, CodeLength= 156
10039                         internal var f:Function;                                        //slotID:1
10040                         internal var b:Boolean;                                         //slotID:2
10041
10042                         f = hug1;
10043                         b = false;
10044
10045                         if(this.__XMLBuffer == null){
10046                                 this.__XMLBuffer = new XML("<packet/>");
10047                                 b = true;
10048                         }
10049
10050                         try{
10051                                 f(this);
10052                         }
10053                         finally{
10054                                 if(b){
10055                                         if(this.__XMLBuffer.children().length() != 0) this.__sendXML_0(this.__XMLBuffer);
10056
10057                                         this.__XMLBuffer = null;
10058                                 }
10059                         }
10060                 }
10061
10062                 private function __sendXML(hug1:XML):void
10063                 {       //MethodID:1065, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
10064                         if(this.__XMLBuffer != null){
10065                                 this.__XMLBuffer.appendChild(hug1);
10066
10067                                 return;
10068                         }
10069
10070                         this.__requestBegan.apply();
10071                         this.__sendXML_0(hug1);
10072                 }
10073
10074                 private function __sendXML_0(hug1:XML):void
10075                 {       //MethodID:1066, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
10076                         this.__transmitter.send(hug1);
10077                 }
10078
10079                 public function __XMLReceived(hug1:XML):void
10080                 {       //MethodID:1067, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 195
10081                         var hug4:XML = null;
10082                         var hug5:int = 0;
10083                         var hug6:* = undefined;
10084                         var hug2:XML = new XML("<close/>");
10085
10086                         if(hug1.name().localName != "packet"){
10087                                 hug2.@thread = hug1.@thread;
10088
10089                                 this.__XMLReceived_0(hug1);
10090
10091                                 return;
10092                         }
10093
10094                         var hug3:Array = [];
10095
10096                         for each(hug4 in hug1.children()){
10097                                 if(hug4.name().localName == "thread") hug3.push([hug4.@thread, hug4.@fork]);
10098                                 this.__XMLReceived_0(hug4);
10099                         }
10100
10101                         hug5 = 0;
10102
10103                         while(hug5 < hug3.length){
10104                                 hug6 = hug3[hug5];
10105                                 hug2.@thread = hug6[0];
10106                                 hug2.@fork = hug6[1];
10107
10108                                 this.__XMLReceived_0(hug2);
10109
10110                                 hug5++;
10111                         }
10112                 }
10113
10114                 private function __XMLReceived_0(hug1:XML):void
10115                 {       //MethodID:1068, LocalCount= 3 , MaxScope= 1, MaxStack= 18, CodeLength= 988
10116                         switch(hug1.name().localName){
10117                         case "thread":
10118                                 this.onCMsgGetThreadResult.apply(int(hug1.@resultcode), int(hug1.@thread), int(hug1.@last_res), String(hug1.@ticket), String(hug1.text()[0]), int(hug1.@locked), int(hug1.@revision), int(hug1.@res_offset), int(hug1.@fork), int(hug1.@server_time), int(hug1.@button_ignored), int(hug1.@click_revision), int(hug1.@num_clicks));
10119                                 break;
10120                         case "view_counter":
10121                                 this.onCMsgViewCounter.apply(int(hug1.@video), String(hug1.@id), int(hug1.@mylist));
10122                                 break;
10123                         case "leave_thread":
10124                                 this.onCMsgLeaveThread.apply(int(hug1.@thread), int(hug1.@reason));
10125                                 break;
10126                         case "chat_result":
10127                                 this.onCMsgPostChatResult.apply(int(hug1.@thread), int(hug1.@status), int(hug1.@no), int(hug1.@leaf));
10128                                 break;
10129                         case "chat":
10130                                 this.onCMsgChat.apply(String(hug1.text()[0]), int(hug1.@thread), int(hug1.@no), int(hug1.@vpos), int(hug1.@date), String(hug1.@mail), String(hug1.@name), int(hug1.@yourpost), String(hug1.@user_id), String(hug1.@raw_user_id), int(hug1.@deleted), int(hug1.@premium), int(hug1.@anonymity), int(hug1.@fork), String(hug1.@remote), int(hug1.@leaf));
10131                                 break;
10132                         case "message_error":
10133                                 this.onCMsgError.apply(String(hug1.@reason));
10134                                 break;
10135                         case "delete_comments":
10136                                 this.onCMsgDeleteCommentsResult.apply(int(hug1.@thread), int(hug1.@status), int(hug1.@revision), int(hug1.@undelete));
10137                                 break;
10138                         case "update_thread":
10139                                 this.onCMsgUpdateThreadResult.apply(int(hug1.@status), String(hug1.@ticket));
10140                                 break;
10141                         case "click":
10142                                 this.onCMsgClickResult.apply(int(hug1.@status));
10143                                 break;
10144                         case "num_click":
10145                                 this.onCMsgNumberOfClick.apply(int(hug1.@thread), int(hug1.@no), int(hug1.@count));
10146                                 break;
10147                         case "unload_thread":
10148                                 this.onCMsgUnloadThreadResult.apply(int(hug1.@thread), int(hug1.@status));
10149                                 break;
10150                         case "leaf":
10151                                 this.onCMsgLeaf.apply(int(hug1.@leaf), int(hug1.@thread), int(hug1.@count));
10152                                 break;
10153                         case "close":
10154                                 this.onCMsgClose.apply(int(hug1.@thread), int(hug1.@fork));
10155                                 break;
10156                         case "ping":
10157                                 break;
10158                         default:
10159                                 throw new Error("MessageServerClient.__XMLReceived_0: unknwon packet. name=" + hug1.name());
10160                                 break;
10161                         }
10162                 }
10163         }
10164 }
10165
10166 //■script069■
10167
10168 package jp.nicovideo.hiroba.events{
10169
10170         import flash.events.ErrorEvent
10171
10172         //■class(instance)_index:82
10173         public class HirobaErrorEvent extends ErrorEvent
10174         {
10175                 //static constructor
10176                 public static function HirobaErrorEvent$cinit()
10177                 {       //MethodID:1070, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
10178                         DISCONNECTED = "disconnected";
10179                         CONNECTION_FAIL = "connectionFail";
10180                 }
10181
10182                 //static variables/etc.
10183                 public static const DISCONNECTED:String = "disconnected";       //slotID:1
10184                 public static const CONNECTION_FAIL:String = "connectionFail";  //slotID:2
10185
10186                 //constructor
10187                 public function HirobaErrorEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false, hug4:String, hug5:String)
10188                 {       //MethodID:1071, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 17
10189                         super(hug1, hug2, hug3, hug4);
10190
10191                         this._referer = hug5;
10192                 }
10193
10194                 //variables/etc.
10195                 private var _referer:String = "";                               //slotID:0
10196
10197                 public function get referer():String
10198                 {       //MethodID:1072, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10199                         return this._referer;
10200                 }
10201         }
10202 }
10203
10204 //■script070■
10205
10206 package jp.nicovideo.nicoscript.macro.parsers{
10207
10208         //■class(instance)_index:83
10209         public interface IMacroParserResult
10210         {
10211                 //static constructor
10212                 public static function IMacroParserResult$cinit()
10213                 {       //MethodID:1074, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
10214                 }
10215
10216                 //variables/etc.
10217                 function get macroName():String;                                            //MethodID:1075, dispID:0
10218
10219                 function get label():String;                                                //MethodID:1076, dispID:0
10220
10221                 function get argLength():int;                                               //MethodID:1077, dispID:0
10222
10223                 function arg(hug1:int, hug2:String=null):String;                            //MethodID:1078, dispID:0
10224
10225                 function argArray(hug1:int, hug2:Array=null):Array;                         //MethodID:1079, dispID:0
10226
10227                 //constructor
10228                 public function IMacroParserResult();                                       //MethodID:1080, dispID:0
10229         }
10230 }
10231
10232 //■script071■
10233
10234 package jp.nicovideo.nicoplayer.models.playlist{
10235
10236         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.ITabManager
10237
10238         //■class(instance)_index:84
10239         public interface IPlaylistController
10240         {
10241                 //static constructor
10242                 public static function IPlaylistController$cinit()
10243                 {       //MethodID:1082, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
10244                 }
10245
10246                 //variables/etc.
10247                 function play(hug1:String=null, hug2:Function=null, hug3:Boolean=false, hug4:Boolean=false):Boolean;//MethodID:1083, dispID:0
10248
10249                 function goNext(hug1:Function=null, hug2:Boolean=false, hug3:String=null):void;//MethodID:1084, dispID:0
10250
10251                 function goPrev(hug1:Function=null, hug2:String=null):void;                 //MethodID:1085, dispID:0
10252
10253                 function countReset():void;                                                 //MethodID:1086, dispID:0
10254
10255                 function countUp():void;                                                    //MethodID:1087, dispID:0
10256
10257                 function checkSkip(hug1:String):Boolean;                                    //MethodID:1088, dispID:0
10258
10259                 function stopVideo():void;                                                  //MethodID:1089, dispID:0
10260
10261                 function get threadID():String;                                             //MethodID:1090, dispID:0
10262
10263                 function get playlist():IPlaylist;                                          //MethodID:1091, dispID:0
10264
10265                 function set windowManager(hug1:ITabManager):void;                          //MethodID:1092, dispID:0
10266
10267                 function set isAutoPlayAfterLoadSeq(hug1:Function):void;                    //MethodID:1093, dispID:0
10268
10269                 //constructor
10270                 public function IPlaylistController();                                      //MethodID:1094, dispID:0
10271         }
10272 }
10273
10274 //■script072■
10275
10276 package jp.nicovideo.nicoplayer.models.playlist{
10277
10278         import flash.events.TimerEvent
10279         import flash.utils.Timer
10280         import jp.nicovideo.marquee.MarqueeClient
10281         import jp.nicovideo.nicoplayer.config.NicoConfig
10282         import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
10283         import jp.nicovideo.nicoplayer.models.video.IVideoController
10284         import jp.nicovideo.nicoplayer.models.video.VideoConstants
10285         import jp.nicovideo.nicoplayer.tpls.INicoViewController
10286         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.ITabManager
10287         import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
10288         import jp.nicovideo.nicoplayer.tpls.shutter.ControllerShutter
10289         import jp.nicovideo.util.Functions
10290         import jp.nicovideo.util.events.EventResult
10291         import jp.nicovideo.util.events.EventSequence
10292         import jp.nicovideo.util.events.event_sender
10293
10294         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
10295         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
10296
10297         //■class(instance)_index:86
10298         public class PlaylistController extends Object implements IPlaylistController
10299         {
10300                 //static constructor
10301                 public static function PlaylistController$cinit()
10302                 {       //MethodID:1104, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
10303                 }
10304
10305                 //constructor
10306                 public function PlaylistController(hug1:Array, hug2:Function, hug3:IPlaylist, hug4:PlaylistFlashVars, hug5:NicoConfig, hug6:int, hug7:Function, hug8:Boolean, hug9:String)
10307                 {       //MethodID:1106, LocalCount= 10 , MaxScope= 1, MaxStack= 5, CodeLength= 178
10308                         this.onPlaylistTargetUpdated = new Functions();
10309                         this.onPlaylistInterrupted = new Functions();
10310                         this.onVideoChanged = new Functions();
10311                         this.onPlaylistVideoError = new Functions();
10312                         this.onPlaylistEnded = new Functions();
10313                         this._sequenceArray = [];
10314                         this._callback = new Functions();
10315                         this._isAutoPlayAfterLoadSeq = function():Boolean{      //MethodID:1105, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 2
10316                                 return true;
10317                         };
10318                         this._sequenceStartTimer = new Timer(this._DEDAULT_SEQUENCE_DELAY, 1);
10319
10320                         super();
10321
10322                         this._sequenceArray = hug1;
10323                         this._initializePlaylist = hug2;
10324                         this._playlist = hug3;
10325                         this._playlistFlashVars = hug4;
10326                         this._nicoConfig = hug5;
10327                         this._reset = hug7;
10328                         this._from = hug4.playlistFrom;
10329                         this._limit = hug6;
10330
10331                         if(hug8) this._randomList = new _RandomList(this._playlist);
10332
10333                         this._errorManager = new PlaylistErrorManager(this._playlistFlashVars, this._nicoConfig, hug9);
10334                 }
10335
10336                 //variables/etc.
10337                 private const _DEDAULT_SEQUENCE_DELAY:Number = 1000.0;          //slotID:0
10338                 private const _ERROR_SEQUENCE_DELAY:Number = 3000.0;            //slotID:0
10339                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistTargetUpdated:Functions;//slotID:0
10340                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistInterrupted:Functions;//slotID:0
10341                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoChanged:Functions;//slotID:0
10342                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistVideoError:Functions;//slotID:0
10343                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistEnded:Functions;//slotID:0
10344                 private var _count:int = 0;                                     //slotID:0
10345                 private var _countLock:Boolean = false;                         //slotID:0
10346                 private var _limit:int = 0;                                     //slotID:0
10347                 private var _threadID:String = "";                              //slotID:0
10348                 private var _from:String = "";                                  //slotID:0
10349                 private var _sequenceArray:Array;                               //slotID:0
10350                 private var _initializePlaylist:Function;                       //slotID:0
10351                 private var _playlistFlashVars:PlaylistFlashVars;               //slotID:0
10352                 private var _nicoConfig:NicoConfig;                             //slotID:0
10353                 private var _reset:Function;                                    //slotID:0
10354                 private var _callback:Functions;                                //slotID:0
10355                 private var _errorCount:uint = 0;                               //slotID:0
10356                 private var _randomList:_RandomList;                            //slotID:0
10357                 private var _isAutoPlayAfterLoadSeq:Function;                   //slotID:0
10358                 private var _isVideoUpdating:Boolean = false;                   //slotID:0
10359                 private var _isTantalize:Boolean = false;                       //slotID:0
10360                 private var _isInvalidToken:Boolean = false;                    //slotID:0
10361                 private var _isLockedVideoEndedGoNext:Boolean = false;          //slotID:0
10362                 private var _isFinishedFirstSequence:Boolean = false;           //slotID:0
10363                 private var _isStopVideoNext:Boolean = false;                   //slotID:0
10364                 private var _sequenceStartTimer:Timer;                          //slotID:0
10365                 private var _playlist:IPlaylist;                                //slotID:0
10366                 private var _marqueeClient:MarqueeClient;                       //slotID:0
10367                 private var _videoController:IVideoController;                  //slotID:0
10368                 private var _nicoViewController:INicoViewController;            //slotID:0
10369                 private var _commentShutter:ControllerShutter;                  //slotID:0
10370                 private var _errorManager:PlaylistErrorManager;                 //slotID:0
10371
10372                 public function goNext(hug1:Function=null, hug2:Boolean=false, hug3:String=null):void
10373                 {       //MethodID:1107, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 266
10374                         var hug4:VideoInfo = null;
10375                         var hug5:String = null;
10376
10377                         if(this._isVideoUpdating) return;
10378
10379                         if(this._randomList){
10380                                 hug4 = (this._randomList.hasNext ? this.playlist.getVideoInfo(this._randomList.next()) : null);
10381                         }else{
10382                                 hug5 = (hug3 ? hug3 : this._threadID);
10383                                 hug4 = this.playlist.getNextVideoInfo(hug5);
10384                         }
10385
10386                         if(!hug4){
10387                                 if(this._videoController) this._videoController.stop(VideoConstants.OPERATION_OTHER);
10388                                 onPlaylistEnded.apply();
10389
10390                                 if(!this._isFinishedFirstSequence) this._errorManager.show(null, PlaylistErrorManager.NO_LIST);
10391
10392                                 return;
10393                         }
10394
10395                         if(this.checkSkip(hug4.threadID)){
10396                                 this._errorManager.show(hug4, hug4.errorMessage);
10397                                 onPlaylistVideoError.apply(hug4, hug4.errorMessage);
10398                                 this.goNext(hug1, hug2, hug4.threadID);
10399                         }else{
10400                                 this.play(hug4.threadID, hug1, hug2);
10401                         }
10402                 }
10403
10404                 public function goPrev(hug1:Function=null, hug2:String=null):void
10405                 {       //MethodID:1108, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 208
10406                         var hug3:VideoInfo = null;
10407                         var hug4:String = null;
10408
10409                         if(this._isVideoUpdating) return;
10410
10411                         if(this._randomList){
10412                                 hug3 = (this._randomList.hasPrev ? this.playlist.getVideoInfo(this._randomList.prev()) : null);
10413                         }else{
10414                                 hug4 = (hug2 ? hug2 : this._threadID);
10415                                 hug3 = this.playlist.getPrevVideoInfo(hug4);
10416                         }
10417
10418                         if(!hug3){
10419                                 if(this._videoController) this._videoController.stop(VideoConstants.OPERATION_OTHER);
10420
10421                                 return;
10422                         }
10423
10424                         if(this.checkSkip(hug3.threadID)){
10425                                 this._errorManager.show(hug3, hug3.errorMessage);
10426                                 onPlaylistVideoError.apply(hug3, hug3.errorMessage);
10427                                 this.goPrev(hug1, hug3.threadID);
10428                         }else{
10429                                 this.play(hug3.threadID, hug1);
10430                         }
10431                 }
10432
10433                 public function countReset():void
10434                 {       //MethodID:1109, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
10435                         if(!this._countLock) this._count = 0;
10436                 }
10437
10438                 public function onError(hug1:String):void
10439                 {       //MethodID:1110, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 81
10440                         this._isVideoUpdating = false;
10441                         var hug2:VideoInfo = this.playlist.getVideoInfo(this._threadID);
10442                         this._sequenceStartTimer.delay = this._ERROR_SEQUENCE_DELAY;
10443
10444                         this.playlist.setErrorInfo(this._threadID, hug1);
10445                         this._errorManager.show(hug2, hug1);
10446                         onPlaylistVideoError.apply(hug2, hug1);
10447                 }
10448
10449                 public function play(hug1:String=null, hug2:Function=null, hug3:Boolean=false, hug4:Boolean=false):Boolean
10450                 {       //MethodID:1111, LocalCount= 7 , MaxScope= 1, MaxStack= 3, CodeLength= 542
10451                         var hug6:VideoInfo = null;
10452
10453                         if(this._playlist.list.length <= 0){
10454                                 this._errorManager.show(null, PlaylistErrorManager.NO_LIST);
10455
10456                                 return false;
10457                         }
10458
10459                         if(hug1 == null){
10460                                 if(this._randomList){
10461                                         if(!this._randomList.hasNext || (this._randomList.current() == this._threadID)) this._randomList.shuffle();
10462
10463                                         hug1 = this._randomList.current();
10464                                 }else if(this._from){
10465                                         hug1 = this._from;
10466                                 }else{
10467                                         hug6 = this._playlist.list[0];
10468                                         hug1 = hug6.threadID;
10469                                 }
10470                         }else if(this._randomList){
10471                                 if(hug4){
10472                                         this._randomList.shuffle(hug1);
10473
10474                                         hug1 = this._randomList.current();
10475                                 }
10476                         }
10477
10478                         if(this._threadID && this._videoController && !this._isInvalidToken && (this._threadID == hug1)){
10479                                 this._isLockedVideoEndedGoNext = false;
10480
10481                                 this._videoController.seek(0);
10482
10483                                 return true;
10484                         }
10485
10486                         if(this._isVideoUpdating && !this._isInvalidToken){
10487                                 this._isLockedVideoEndedGoNext = false;
10488                                 return false;
10489                         }
10490
10491                         if(this._sequenceStartTimer.running){
10492                                 this._sequenceStartTimer.stop();
10493                                 this._sequenceStartTimer.removeEventListener(TimerEvent.TIMER, this.play_0);
10494                         }
10495
10496                         this._threadID = hug1;
10497                         this._isTantalize = hug3;
10498                         var hug5:VideoInfo = this.playlist.getVideoInfo(this._threadID);
10499
10500                         onPlaylistTargetUpdated.apply(hug5);
10501
10502                         if(this.checkSkip(this._threadID)){
10503                                 this.goNext(hug2, hug3);
10504
10505                                 if(hug5){
10506                                         this._errorManager.show(hug5, hug5.errorMessage);
10507                                         onPlaylistVideoError.apply(hug5, hug5.errorMessage);
10508                                 }
10509
10510                                 this._isLockedVideoEndedGoNext = false;
10511                                 return false;
10512                         }else{
10513                                 if(hug2 != null) this._callback.add(hug2);
10514
10515                                 if(this._videoController) this._videoController.stop(VideoConstants.OPERATION_OTHER);
10516
10517                                 if(!this._isFinishedFirstSequence && this._commentShutter) this._commentShutter.close(CommentShutterConstants.SHUTTER_COMMENT_LOADING, "");
10518                                 this._sequenceStartTimer.addEventListener(TimerEvent.TIMER, this.play_0);
10519                                 this._sequenceStartTimer.start();
10520
10521                                 return true;
10522                         }
10523                 }
10524
10525                 private function play_0(hug1:TimerEvent):void
10526                 {       //MethodID:1115, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 220
10527                         internal var evt:TimerEvent;                                    //slotID:1
10528                         internal var _sequence:EventSequence;                           //slotID:2
10529
10530                         _sequence = null;
10531                         evt = hug1;
10532
10533                         this.countUp();
10534
10535                         this._isVideoUpdating = true;
10536
10537                         if(this._videoController) this._videoController.stop();
10538
10539                         if(this._marqueeClient && this._marqueeClient.marqueePlayer) this._marqueeClient.marqueePlayer.initialize(this._marqueeClient);
10540                         this._reset.apply();
10541
10542                         if(this._isInterrupt){
10543                                 this._countLock = true;
10544
10545                                 onPlaylistInterrupted.apply();
10546                         }
10547
10548                         _sequence = new EventSequence(this);
10549
10550                         if(this._isInvalidToken){
10551                                 _sequence.add(this._initializePlaylist);
10552
10553                                 this._isInvalidToken = false;
10554                         }
10555
10556                         this._sequenceArray.forEach(function(hug1:Function, hug2:int, hug3:Array):void{ //MethodID:1112, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 9
10557                                 _sequence.add(hug1);
10558                         });
10559                         _sequence.add(function():void{  //MethodID:1113, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 208
10560                                 _callback.apply();
10561                                 _callback.clear();
10562
10563                                 errorCount = 0;
10564                                 _isLockedVideoEndedGoNext = false;
10565                                 _isStopVideoNext = false;
10566                                 _isVideoUpdating = false;
10567
10568                                 onVideoChanged.apply(_playlist.getVideoInfo(_threadID));
10569                                 _sequenceStartTimer.stop();
10570                                 _sequenceStartTimer.reset();
10571
10572                                 _sequenceStartTimer.delay = _DEDAULT_SEQUENCE_DELAY;
10573                                 var hug1:Boolean = ((!_isInterrupt && !_isTantalize && !_isStopVideoNext && _videoController) && _isAutoPlayAfterLoadSeq());
10574
10575                                 if(_videoController){
10576                                         if(!_isFinishedFirstSequence){
10577                                                 _videoController.startToPlay(hug1);
10578                                         }else if(hug1){
10579                                                 _videoController.play(VideoConstants.OPERATION_OTHER);
10580                                         }
10581                                 }
10582
10583                                 _isFinishedFirstSequence = true;
10584                                 _countLock = false;
10585                         });
10586
10587                         if(!this._isFinishedFirstSequence){
10588                                 _sequence.next();
10589                         }else{
10590                                 this._nicoViewController.initializeVideoSettings(function():void{       //MethodID:1114, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
10591                                         _sequence.next();
10592                                 });
10593                         }
10594                 }
10595
10596                 public function countUp():void
10597                 {       //MethodID:1116, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
10598                         this._count++;
10599                 }
10600
10601                 public function checkSkip(hug1:String):Boolean
10602                 {       //MethodID:1117, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 44
10603                         var hug2:VideoInfo = this.playlist.getVideoInfo(hug1);
10604
10605                         if(!hug2) return true;
10606
10607                         var hug3:Boolean = ((hug2.deleted != 0) || hug2.errorMessage);
10608                         return hug3;
10609                 }
10610
10611                 public function stopVideo():void
10612                 {       //MethodID:1118, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 33
10613                         this._isStopVideoNext = this._isVideoUpdating;
10614
10615                         if(this._videoController) this._videoController.stop(VideoConstants.OPERATION_OTHER);
10616                 }
10617
10618                 public function get threadID():String
10619                 {       //MethodID:1119, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10620                         return this._threadID;
10621                 }
10622
10623                 public function get playlist():IPlaylist
10624                 {       //MethodID:1120, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10625                         return this._playlist;
10626                 }
10627
10628                 public function set videoController(hug1:IVideoController):void
10629                 {       //MethodID:1121, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10630                         this._videoController = hug1;
10631                 }
10632
10633                 public function set marqueeClient(hug1:MarqueeClient):void
10634                 {       //MethodID:1122, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 11
10635                         this._marqueeClient = (hug1 as MarqueeClient);
10636                 }
10637
10638                 public function set nicoViewController(hug1:INicoViewController):void
10639                 {       //MethodID:1123, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10640                         this._nicoViewController = hug1;
10641                 }
10642
10643                 private function get _isInterrupt():Boolean
10644                 {       //MethodID:1124, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
10645                         return (this._count > this._limit);
10646                 }
10647
10648                 public function set commentShutter(hug1:ControllerShutter):void
10649                 {       //MethodID:1125, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10650                         this._commentShutter = hug1;
10651                 }
10652
10653                 public function set windowManager(hug1:ITabManager):void
10654                 {       //MethodID:1126, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
10655                         this._errorManager.windowManager = hug1;
10656                 }
10657
10658                 public function get isInvalidToken():Boolean
10659                 {       //MethodID:1127, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10660                         return this._isInvalidToken;
10661                 }
10662
10663                 public function set isInvalidToken(hug1:Boolean):void
10664                 {       //MethodID:1128, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10665                         this._isInvalidToken = hug1;
10666                 }
10667
10668                 public function get isVideoUpdating():Boolean
10669                 {       //MethodID:1129, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10670                         return this._isVideoUpdating;
10671                 }
10672
10673                 public function set isVideoUpdating(hug1:Boolean):void
10674                 {       //MethodID:1130, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10675                         this._isVideoUpdating = hug1;
10676                 }
10677
10678                 public function get errorCount():uint
10679                 {       //MethodID:1131, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
10680                         return this._errorCount;
10681                 }
10682
10683                 public function set errorCount(hug1:uint):void
10684                 {       //MethodID:1132, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10685                         this._errorCount = hug1;
10686                 }
10687
10688                 public function set isAutoPlayAfterLoadSeq(hug1:Function):void
10689                 {       //MethodID:1133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
10690                         this._isAutoPlayAfterLoadSeq = hug1;
10691                 }
10692
10693                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
10694                 {       //MethodID:1134, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 125
10695                         if(this._isLockedVideoEndedGoNext) return EventResult.THROUGH;
10696
10697                         this._isLockedVideoEndedGoNext = true;
10698
10699                         if(this._randomList && this._randomList.hasNext){
10700                                 this.goNext();
10701                         }else if(this.playlist.getNextVideoInfo(this._threadID)){
10702                                 this.goNext();
10703                         }else{
10704                                 this._isLockedVideoEndedGoNext = false;
10705
10706                                 this._videoController.stop(VideoConstants.OPERATION_OTHER);
10707                                 onPlaylistEnded.apply();
10708                         }
10709
10710                         return EventResult.THROUGH;
10711                 }
10712
10713                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsPlaylistRandomPlayUpdated(hug1:Boolean):EventResult
10714                 {       //MethodID:1135, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 49
10715                         if(hug1){
10716                                 this._randomList = new _RandomList(this._playlist);
10717
10718                                 this._randomList.shuffle(this._threadID);
10719                         }else{
10720                                 this._randomList = null;
10721                         }
10722
10723                         return EventResult.THROUGH;
10724                 }
10725         }
10726 }
10727
10728 import jp.nicovideo.nicoplayer.models.playlist.IPlaylist
10729 import jp.nicovideo.nicoplayer.models.playlist.VideoInfo
10730
10731 //■class(instance)_index:85
10732 //private
10733 class _RandomList extends Object
10734 {
10735         //static constructor
10736         public static function _RandomList$cinit()
10737         {       //MethodID:1096, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
10738                 _IS_INITIAL_INDEX_0_MODE = false;
10739         }
10740
10741         //static variables/etc.
10742         private static const _IS_INITIAL_INDEX_0_MODE:Boolean = false;  //slotID:1
10743
10744         //constructor
10745         public function _RandomList(hug1:IPlaylist):void
10746         {       //MethodID:1097, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 70
10747                 super();
10748
10749                 this._playlist = hug1;
10750
10751                 if(this._playlist.list.length <= 0){
10752                         this._list = [];
10753                         return;
10754                 }
10755
10756                 this.shuffle(_IS_INITIAL_INDEX_0_MODE ? VideoInfo(hug1.list[0]).threadID : null);
10757         }
10758
10759         //variables/etc.
10760         private var _list:Array;                                        //slotID:0
10761         private var _curIdx:int;                                        //slotID:0
10762         private var _playlist:IPlaylist;                                //slotID:0
10763
10764         public function shuffle(hug1:String=null):void
10765         {       //MethodID:1098, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 299
10766                 var hug3:VideoInfo = null;
10767                 var hug4:int = 0;
10768                 var hug5:int = 0;
10769                 var hug6:int = 0;
10770
10771                 if(hug1 == null){
10772                         hug4 = ((this._playlist.list.length == this._curIdx) ? (this._curIdx - 1) : this._curIdx);
10773
10774                         do{
10775                                 hug5 = (Math.random() * this._playlist.list.length);
10776                                 hug1 = VideoInfo(this._playlist.list[hug5]).threadID;
10777
10778                         }while((this._list && (this._playlist.list.length > 1)) && (hug1 == this._list[hug4]));
10779                 }
10780
10781                 this._list = [];
10782                 var hug2:Array = [];
10783
10784                 for each(hug3 in this._playlist.list){
10785                         if(hug3.threadID != hug1){
10786                                 hug2.push(hug3.threadID);
10787                         }else{
10788                                 this._list.push(hug3.threadID);
10789                         }
10790                 }
10791
10792                 while(hug2.length > 0){
10793                         hug6 = (Math.random() * hug2.length);
10794
10795                         this._list.push(hug2[hug6]);
10796                         hug2.splice(hug6, 1);
10797                 }
10798
10799                 this._curIdx = 0;
10800         }
10801
10802         public function current():String
10803         {       //MethodID:1099, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 14
10804                 return this._list[this._curIdx];
10805         }
10806
10807         public function next():String
10808         {       //MethodID:1100, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 28
10809                 return this[++this._curIdx];
10810         }
10811
10812         public function prev():String
10813         {       //MethodID:1101, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 28
10814                 return this[--this._curIdx];
10815         }
10816
10817         public function get hasNext():Boolean
10818         {       //MethodID:1102, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 15
10819                 return (this._curIdx < this._list.length);
10820         }
10821
10822         public function get hasPrev():Boolean
10823         {       //MethodID:1103, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
10824                 return (this._curIdx > 0);
10825         }
10826 }
10827
10828 //■script073■
10829
10830 package jp.nicovideo.nicoplayer.models.comment{
10831
10832         //■class(instance)_index:87
10833         public interface IOwnerCommentList implements ICommentList
10834         {
10835                 //static constructor
10836                 public static function IOwnerCommentList$cinit()
10837                 {       //MethodID:1137, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
10838                 }
10839
10840                 //variables/etc.
10841                 function replace(hug1:uint, hug2:IComment):void;                            //MethodID:1138, dispID:0
10842
10843                 function edit(hug1:Array, hug2:Array=null, hug3:Boolean=false):void;        //MethodID:1139, dispID:0
10844
10845                 function sync(hug1:Function):void;                                          //MethodID:1140, dispID:0
10846
10847                 //constructor
10848                 public function IOwnerCommentList();                                        //MethodID:1141, dispID:0
10849         }
10850 }
10851
10852 //■script074■
10853
10854 package jp.nicovideo.nicoplayer.models.comment{
10855
10856         import flash.errors.IllegalOperationError
10857         import jp.nicovideo.nicoplayer.models.SystemMessage
10858         import jp.nicovideo.nicoplayer.models.api.IRegisterBGM
10859         import jp.nicovideo.nicoplayer.storages.CommentStorageError
10860         import jp.nicovideo.nicoplayer.storages.ICommentStorage
10861         import jp.nicovideo.nicoplayer.storages.ICommentStorageHandle
10862         import jp.nicovideo.nicoscript.NicoSClient
10863         import jp.nicovideo.util.Functions
10864         import jp.nicovideo.util.events.EventBarrier
10865         import jp.nicovideo.util.events.EventResult
10866         import jp.nicovideo.util.events.event_sender
10867         import jp.nicovideo.util.loka.__MSG__
10868
10869         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
10870         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
10871
10872         //■class(instance)_index:88
10873         public class OwnerCommentList extends Object implements IOwnerCommentList
10874         {
10875                 //static constructor
10876                 public static function OwnerCommentList$cinit()
10877                 {       //MethodID:1143, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
10878                 }
10879
10880                 //constructor
10881                 public function OwnerCommentList(hug1:String, hug2:ICommentStorage, hug3:NicoSClient, hug4:IRegisterBGM)
10882                 {       //MethodID:1144, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 52
10883                         this.__comments = [];
10884                         this.onCommentListUpdated = new Functions();
10885
10886                         super();
10887
10888                         this.__threadID = hug1;
10889                         this.__commentStorage = hug2;
10890                         this.__nicosClient = hug3;
10891                         this.__registerBGM = hug4;
10892                         this.__handle = hug2.attach(hug1);
10893                 }
10894
10895                 //variables/etc.
10896                 private var __threadID:String;                                  //slotID:0
10897                 private var __comments:Array;                                   //slotID:0
10898                 private var __saved:Boolean = false;                            //slotID:0
10899                 private var __when:Date = null;                                 //slotID:0
10900                 private var __commentStorage:ICommentStorage;                   //slotID:0
10901                 private var __handle:ICommentStorageHandle;                     //slotID:0
10902                 private var __nicosClient:NicoSClient;                          //slotID:0
10903                 private var __registerBGM:IRegisterBGM;                         //slotID:0
10904                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentListUpdated:Functions;//slotID:0
10905
10906                 public function get eventNames():Array
10907                 {       //MethodID:1145, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
10908                         return ["onCommentListUpdated"];
10909                 }
10910
10911                 public function initialize(hug1:Function):void
10912                 {       //MethodID:1147, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 26
10913                         internal var f:Function;                                        //slotID:1
10914
10915                         f = hug1;
10916
10917                         this.__handle.getOwnerThread(function(hug1:CommentStorageError, hug2:Array):void{       //MethodID:1146, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 56
10918                                 if(hug1){
10919                                         f(hug1);
10920
10921                                         return;
10922                                 }
10923
10924                                 __comments = hug2.concat();
10925                                 __saved = true;
10926
10927                                 __reflect(null, __comments, null, true);
10928                                 f(null);
10929                         }, 1000);
10930                 }
10931
10932                 public function reload(hug1:Function):void
10933                 {       //MethodID:1148, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 9
10934                         hug1(null);
10935                 }
10936
10937                 public function update(hug1:Function):void
10938                 {       //MethodID:1149, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 9
10939                         hug1(null);
10940                 }
10941
10942                 public function post(hug1:IComment):void
10943                 {       //MethodID:1150, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 55
10944                         var hug2:CommentBuilder = new CommentBuilder(hug1);
10945                         hug2.resNo = (this.__comments.length + 1);
10946                         hug1 = hug2.make();
10947
10948                         this.__comments.push(hug1);
10949                         this.__reflect(null, [hug1]);
10950                 }
10951
10952                 public function replace(hug1:uint, hug2:IComment):void
10953                 {       //MethodID:1151, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 59
10954                         if((this.__comments.length < hug1) || (hug1 == 0)) return;
10955
10956                         var hug3:IComment = this.__comments[hug1];
10957                         this.__comments[hug1] = hug2;
10958
10959                         this.__reflect(null, [hug2], [hug3]);
10960                 }
10961
10962                 public function edit(hug1:Array, hug2:Array=null, hug3:Boolean=false):void
10963                 {       //MethodID:1154, LocalCount= 7 , MaxScope= 2, MaxStack= 5, CodeLength= 652
10964                         internal var additionals:Array;                                 //slotID:1
10965                         internal var removes:Array = null;                              //slotID:2
10966                         internal var clear:Boolean = false;                             //slotID:3
10967                         internal var a:Array;                                           //slotID:4
10968                         internal var excluded:Array;                                    //slotID:5
10969                         internal var prev:uint;                                         //slotID:6
10970                         internal var no:uint;                                           //slotID:7
10971                         internal var i:int;                                             //slotID:8
10972                         internal var comment:IComment;                                  //slotID:9
10973                         internal var builder:CommentBuilder;                            //slotID:10
10974
10975                         a = null;
10976                         excluded = null;
10977                         prev = 0;
10978                         no = 0;
10979                         i = 0;
10980                         comment = null;
10981                         builder = null;
10982                         additionals = hug1;
10983                         removes = hug2;
10984                         clear = hug3;
10985
10986                         if(clear){
10987                                 this.__comments.splice(0, this.__comments.length);
10988                         }else if(removes && (removes.length != 0)){
10989                                 a = removes.sort(function(hug1:uint, hug2:uint):Number{ //MethodID:1152, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 4
10990                                         return (hug1 - hug2);
10991                                 });
10992
10993                                 if((a[0] == 0) || (a[a.length - 1] > this.__comments.length)) return;
10994
10995                                 excluded = [];
10996                                 prev = 0;
10997
10998                                 for each(no in a){
10999                                         if(no == prev){
11000                                         }else{
11001                                                 excluded.push(this.__comments.splice((no - excluded.length - 1), 1)[0]);
11002
11003                                                 prev = no;
11004                                         }
11005                                 }
11006                         }
11007
11008                         if(additionals && (additionals.length != 0)){
11009                                 additionals = additionals.sort(function(hug1:IComment, hug2:IComment):Number{   //MethodID:1153, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 10
11010                                         return (hug1.resNo - hug2.resNo);
11011                                 });
11012
11013                                 i = 0;
11014
11015                                 while(i < additionals.length){
11016                                         comment = additionals[i];
11017
11018                                         if(comment.resNo == 0){
11019                                                 builder = new CommentBuilder(comment);
11020                                                 builder.resNo = (this.__comments.length + 1);
11021                                                 additionals[i] = builder.make();
11022                                                 comment = builder.make();
11023
11024                                                 this.__comments.push(comment);
11025                                         }else if(this.__comments.length < comment.resNo){
11026                                                 if((comment.resNo - 1) != this.__comments.length){
11027                                                         builder = new CommentBuilder(comment);
11028                                                         builder.resNo = (this.__comments.length + 1);
11029                                                         additionals[i] = builder.make();
11030                                                         comment = builder.make();
11031                                                 }
11032
11033                                                 this.__comments.push(comment);
11034                                         }else{
11035                                                 this.__comments[comment.resNo - 1] = comment;
11036                                         }
11037
11038                                         i++;
11039                                 }
11040                         }
11041
11042                         this.__reflect(null, additionals, excluded, clear);
11043                 }
11044
11045                 public function get currentList():Array
11046                 {       //MethodID:1155, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
11047                         return this.__comments.concat();
11048                 }
11049
11050                 public function serveCommentList():void
11051                 {       //MethodID:1156, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 36
11052                         onCommentListUpdated.apply(this.__comments, [], true, this.name);
11053                 }
11054
11055                 public function get name():String
11056                 {       //MethodID:1157, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
11057                         return CommentConstants.CL_OWNER;
11058                 }
11059
11060                 public function clickButtonComment(hug1:IComment):void
11061                 {       //MethodID:1158, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
11062                         throw new IllegalOperationError("サポートしてないッ~ス(発音不可)");
11063                 }
11064
11065                 public function isClickable(hug1:IComment):Boolean
11066                 {       //MethodID:1159, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 4
11067                         return false;
11068                 }
11069
11070                 public function sync(hug1:Function):void
11071                 {       //MethodID:1164, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 51
11072                         internal var f:Function;                                        //slotID:1
11073                         internal var do_register_BGM:Function;                          //slotID:2
11074
11075                         f = hug1;
11076                         do_register_BGM = function():void{      //MethodID:1162, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 138
11077                                 internal var barrier:EventBarrier;                              //slotID:1
11078                                 internal var succeeded_all:Boolean;                             //slotID:2
11079                                 internal var BGMVideoIDs:Array;                                 //slotID:3
11080                                 internal var CMVideoIDs:Array;                                  //slotID:4
11081                                 internal var on_result:Function;                                //slotID:5
11082
11083                                 succeeded_all = false;
11084                                 on_result = null;
11085                                 on_result = function(hug1:Boolean, hug2:String):void{   //MethodID:1160, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 19
11086                                         succeeded_all = (succeeded_all && hug1);
11087                                 };
11088
11089                                 barrier = new EventBarrier();
11090                                 succeeded_all = true;
11091                                 BGMVideoIDs = __nicosClient.player.BGMVideoIDs;
11092
11093                                 __registerBGM.registerBGMVideoIDs(barrier.bind(on_result), __threadID, BGMVideoIDs);
11094
11095                                 CMVideoIDs = __nicosClient.player.CMVideoIDs;
11096
11097                                 __registerBGM.registerCMVideoIDs(barrier.bind(on_result), __threadID, CMVideoIDs);
11098                                 barrier.finish(function():void{ //MethodID:1161, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 12
11099                                         f(succeeded_all);
11100                                 });
11101                         };
11102
11103                         this.__saved = true;
11104
11105                         this.__handle.updateOwnerThread(function(hug1:CommentStorageError):void{        //MethodID:1163, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
11106                                 if(hug1){
11107                                         f(false);
11108
11109                                         return;
11110                                 }
11111
11112                                 do_register_BGM();
11113                         }, this.__comments, this.__nicosClient.player.isNicosThreadRequired);
11114                 }
11115
11116                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onTimeMachineDateUpdated(hug1:Boolean, hug2:Date=null):EventResult
11117                 {       //MethodID:1166, LocalCount= 5 , MaxScope= 2, MaxStack= 5, CodeLength= 146
11118                         internal var goPast:Boolean;                                    //slotID:1
11119                         internal var when:Date = null;                                  //slotID:2
11120
11121                         goPast = hug1;
11122                         when = hug2;
11123
11124                         if(goPast){
11125                                 if(this.__when && (this.__when.getTime() == when.getTime())) return EventResult.THROUGH;
11126
11127                                 when = new Date(when.time);
11128                                 this.__when = new Date(when.time);
11129
11130                                 this.__handle.waybackOwnerThread(function(hug1:CommentStorageError, hug2:Array):void{   //MethodID:1165, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 66
11131                                         var hug3:String = null;
11132
11133                                         if(__when !== when) return;
11134
11135                                         if(hug1){
11136                                                 hug3 = (__MSG__("過去ログの取得に失敗:" + hug1.status) + "<br />");
11137
11138                                                 SystemMessage.instance.informStatusBar(hug3, hug3);
11139
11140                                                 return;
11141                                         }
11142
11143                                         __reflect(when, hug2, null, true);
11144                                 }, int(when.getTime() / 1000));
11145                         }else{
11146                                 this.__when = null;
11147
11148                                 this.__reflect(null, this.__comments, null, true);
11149                         }
11150
11151                         return EventResult.THROUGH;
11152                 }
11153
11154                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsEnabledLeafMode(hug1:Boolean):EventResult
11155                 {       //MethodID:1167, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
11156                         return EventResult.THROUGH;
11157                 }
11158
11159                 private function __reflect(hug1:Date, hug2:Array, hug3:Array=null, hug4:Boolean=false):void
11160                 {       //MethodID:1168, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 50
11161                         if(this.__when == hug1) onCommentListUpdated.apply(hug2, [], hug4, this.name);
11162                 }
11163
11164                 public function get leavesNum():String
11165                 {       //MethodID:1169, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
11166                         return "";
11167                 }
11168
11169                 public function get threadID():String
11170                 {       //MethodID:1170, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
11171                         return "";
11172                 }
11173         }
11174 }
11175
11176 //■script075■
11177
11178 package jp.nicovideo.util.events{
11179
11180
11181         public const event_sender:* = "http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender";//slotID:0
11182
11183 }
11184
11185 //■script076■
11186
11187 package jp.nicovideo.nicoplayer.models.video{
11188
11189         import flash.display.DisplayObject
11190         import flash.display.Sprite
11191         import flash.events.TimerEvent
11192         import flash.media.Video
11193         import flash.utils.Timer
11194         import jp.nicovideo.util.Functions
11195         import jp.nicovideo.util.stream.StreamSource
11196         import jp.nicovideo.util.stream.events.StreamErrorEvent
11197         import jp.nicovideo.util.stream.events.StreamEvent
11198
11199         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
11200
11201         //■class(instance)_index:90
11202         public class FLVVideo extends Object implements IChildVideo
11203         {
11204                 //static constructor
11205                 public static function FLVVideo$cinit()
11206                 {       //MethodID:1175, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
11207                 }
11208
11209                 //constructor
11210                 public function FLVVideo(hug1:String, hug2:Sprite, hug3:Number=-1.0, hug4:Number=0.0, hug5:Number=0.0, hug6:String="http", hug7:String, hug8:String=null)
11211                 {       //MethodID:1176, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 239
11212                         this.seekInfo = new SeekInfo();
11213                         this._onVideoEnded = new Functions();
11214                         this._onVideoSeeked = new Functions();
11215                         this._onVideoSeekError = new Functions();
11216                         this._onVideoSeeking = new Functions();
11217                         this._onVideoPlayed = new Functions();
11218                         this._onVideoStopped = new Functions();
11219                         this._onVideoBufferingStarted = new Functions();
11220                         this.onVideoLengthFixed = new Functions();
11221                         this._onVideoLoadComplete = new Functions();
11222                         this._onInitMetaInfo = new Functions();
11223                         this._onVideoError = new Functions();
11224                         this._vposWatcher = new Timer(250);
11225
11226                         super();
11227
11228                         this._width = (!hug4 ? hug2.width : hug4);
11229                         this._height = (!hug5 ? hug2.height : hug5);
11230                         this._url = hug1;
11231                         this._fileName = hug7;
11232                         this._videoLayer = hug2;
11233                         this._length = hug3;
11234                         this._protocol = hug6;
11235                         this._fmsToken = hug8;
11236                         this._stream = new StreamSource(this._videoLayer);
11237                         this._stream.length = hug3;
11238                         this._video = this._stream.video;
11239                 }
11240
11241                 //variables/etc.
11242                 private var _stream:StreamSource;                               //slotID:0
11243                 private var _url:String;                                        //slotID:0
11244                 private var _protocol:String;                                   //slotID:0
11245                 private var _connectURL:String;                                 //slotID:0
11246                 private var _fileName:String;                                   //slotID:0
11247                 private var _fmsToken:String;                                   //slotID:0
11248                 private var _length:Number = 0.0;                               //slotID:0
11249                 private var _isLoaded:Boolean = false;                          //slotID:0
11250                 private var _video:Video;                                       //slotID:0
11251                 private var _initialized:Boolean = false;                       //slotID:0
11252                 private var seekInfo:SeekInfo;                                  //slotID:0
11253                 private var _videoLayer:Sprite;                                 //slotID:0
11254                 private var _isLoop:Boolean;                                    //slotID:0
11255                 private const _onVideoEnded:Functions;                          //slotID:0
11256                 private const _onVideoSeeked:Functions;                         //slotID:0
11257                 private const _onVideoSeekError:Functions;                      //slotID:0
11258                 private const _onVideoSeeking:Functions;                        //slotID:0
11259                 private const _onVideoPlayed:Functions;                         //slotID:0
11260                 private const _onVideoStopped:Functions;                        //slotID:0
11261                 private const _onVideoBufferingStarted:Functions;               //slotID:0
11262                 public const onVideoLengthFixed:Functions;                      //slotID:0
11263                 private const _onVideoLoadComplete:Functions;                   //slotID:0
11264                 private const _onInitMetaInfo:Functions;                        //slotID:0
11265                 private const _onVideoError:Functions;                          //slotID:0
11266                 private var _isLoading:Boolean = false;                         //slotID:0
11267                 private var _isPlaying:Boolean = false;                         //slotID:0
11268                 private var _isPausing:Boolean = false;                         //slotID:0
11269                 private var _isEnd:Boolean = false;                             //slotID:0
11270                 private var _isBuffering:Boolean = false;                       //slotID:0
11271                 private var _onVideoLoadHandler:Function;                       //slotID:0
11272                 private var _vposWatcher:Timer;                                 //slotID:0
11273                 private var _hasLengthSet:Boolean;                              //slotID:0
11274                 private var _width:Number;                                      //slotID:0
11275                 private var _height:Number;                                     //slotID:0
11276
11277                 public function load(hug1:Function):void
11278                 {       //MethodID:1190, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 252
11279                         internal var f:Function;                                        //slotID:1
11280                         internal var _errCode:String;                                   //slotID:2
11281                         internal var loadCallback:Function;                             //slotID:3
11282
11283                         _errCode = null;
11284                         f = hug1;
11285                         loadCallback = function(hug1:Boolean):void{     //MethodID:1177, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 32
11286                                 if(!hug1){
11287                                         _stream.close();
11288                                         _onVideoError.apply(_errCode);
11289                                 }
11290
11291                                 f(hug1);
11292                         };
11293
11294                         this._stream.addEventListener(StreamEvent.CONNECTED, function(hug1:StreamEvent):void{   //MethodID:1178, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
11295                                 loadCallback(true);
11296                         });
11297                         this._stream.addEventListener(StreamEvent.NET_STATUS, function(hug1:StreamEvent):void{  //MethodID:1179, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 98
11298                                 switch(hug1.info.code){
11299                                 case "NetConnection.Connect.IdleTimeOut":
11300                                         _stream.close();
11301                                         _onVideoError.apply(VideoConstants.ERROR_TIMEOUT);
11302
11303                                         return;
11304                                 case "NetConnection.Connect.Closed":
11305                                         return;
11306                                 default:
11307                                         break;
11308                                 }
11309                         });
11310                         this._stream.addEventListener(StreamErrorEvent.ERROR, function(hug1:StreamErrorEvent):void{     //MethodID:1181, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 547
11311                                 internal var event:StreamErrorEvent;                            //slotID:1
11312                                 internal var protocol:String;                                   //slotID:2
11313                                 internal var regExp:RegExp;                                     //slotID:3
11314                                 internal var connectURL:String;                                 //slotID:4
11315                                 internal var timer:Timer;                                       //slotID:5
11316
11317                                 protocol = null;
11318                                 regExp = null;
11319                                 connectURL = null;
11320                                 timer = null;
11321                                 event = hug1;
11322                                 _errCode = ((event.info.code + ":") + event.info.description);
11323
11324                                 switch(event.info.code){
11325                                 case "NetStream.Seek.InvalidTime":
11326                                         seekInfo.isSeeking = false;
11327
11328                                         seek((seekInfo.targetVpos < 100) ? 0 : (seekInfo.targetVpos - 100));
11329
11330                                         return;
11331                                 case "NetStream.Play.StreamNotFound":
11332                                         loadCallback(false);
11333
11334                                         return;
11335                                 case "NetConnection.Connect.Rejected":
11336                                         switch(event.info.application.message){
11337                                         case "max connected":
11338                                                 _errCode = VideoConstants.ERROR_CONNECTION_LIMIT;
11339
11340                                                 loadCallback(false);
11341
11342                                                 return;
11343                                         case "connection failed by protocol check":
11344                                         case "connection failed by referrer check":
11345                                         case "connection failed by hash check":
11346                                         case "connection failed by hash generated time":
11347                                                 _errCode = VideoConstants.ERROR_AUTHENTICATION;
11348
11349                                                 loadCallback(false);
11350
11351                                                 return;
11352                                         default:
11353                                                 break;
11354                                         }
11355                                         break;
11356                                 default:
11357                                         break;
11358                                 }
11359
11360                                 if(isRTMP(_protocol)){
11361                                         if((_protocol != "rtmpt") && (_protocol != "rtmpte")){
11362                                                 protocol = "rtmpt";
11363
11364                                                 if(_protocol == "rtmpe") protocol = "rtmpte";
11365
11366                                                 regExp = new RegExp("^(rtmpe|rtmp)");
11367                                                 connectURL = _connectURL.replace(regExp, protocol);
11368                                                 _protocol = protocol;
11369                                                 timer = new Timer(1000, 1);
11370
11371                                                 timer.addEventListener(TimerEvent.TIMER, function():void{       //MethodID:1180, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 45
11372                                                         if(isRTMP(_protocol)){
11373                                                                 _stream.connect(_url, _fileName, _fmsToken);
11374                                                         }else{
11375                                                                 _stream.connect(_url);
11376                                                         }
11377                                                 });
11378                                                 timer.start();
11379
11380                                                 return;
11381                                         }
11382                                 }
11383                         });
11384                         this._stream.addEventListener(StreamEvent.PLAYED, function(hug1:StreamEvent):void{      //MethodID:1182, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
11385                                 _isPlaying = true;
11386                                 _isPausing = false;
11387
11388                                 _onVideoPlayed.apply();
11389                         });
11390                         this._stream.addEventListener(StreamEvent.PAUSED, function(hug1:StreamEvent):void{      //MethodID:1183, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 15
11391                                 _isPausing = true;
11392
11393                                 _onVideoStopped.apply();
11394                         });
11395                         this._stream.addEventListener(StreamEvent.SEEKED, function(hug1:StreamEvent):void{      //MethodID:1184, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
11396                                 seekInfo.isSeeking = false;
11397
11398                                 _onVideoSeeked.apply(this.vpos);
11399                         });
11400                         this._stream.addEventListener(StreamEvent.ENDED, function(hug1:StreamEvent):void{       //MethodID:1185, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 63
11401                                 _isPlaying = _isPausing = false;
11402                                 _isEnd = !_isLoop;
11403
11404                                 if(vpos >= (length - 2000)){
11405                                         _isEnd = !_isLoop;
11406
11407                                         _onVideoEnded.apply(_isLoop);
11408                                 }
11409                         });
11410                         this._stream.addEventListener(StreamEvent.SET_LENGTH, function(hug1:StreamEvent):void{  //MethodID:1186, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
11411                                 _hasLengthSet = true;
11412
11413                                 onVideoLengthFixed.apply(this.length);
11414                         });
11415                         this._stream.addEventListener(StreamEvent.START_LOAD, function(hug1:StreamEvent):void{  //MethodID:1187, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 15
11416                                 _isBuffering = true;
11417
11418                                 _onVideoBufferingStarted.apply();
11419                         });
11420                         this._stream.addEventListener(StreamEvent.COMPLETE_LOAD, function(hug1:StreamEvent):void{       //MethodID:1188, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 48
11421                                 _isLoaded = true;
11422                                 _isLoading = false;
11423                                 _isBuffering = false;
11424
11425                                 _stream.resize(_width, _height);
11426                                 _onVideoLoadComplete.apply(_stream.bytesTotal);
11427                         });
11428                         this._stream.addEventListener(StreamEvent.INIT_META_INFO, function(hug1:StreamEvent):void{      //MethodID:1189, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
11429                                 _onInitMetaInfo.apply();
11430                         });
11431
11432                         if(this.isRTMP(this._protocol)){
11433                                 this._stream.connect(this._url, this._fileName, this._fmsToken);
11434                         }else{
11435                                 this._stream.connect(this._url);
11436                         }
11437                 }
11438
11439                 public function resize(hug1:Number, hug2:Number):void
11440                 {       //MethodID:1191, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 23
11441                         this._width = hug1;
11442                         this._height = hug2;
11443
11444                         this._stream.resize(hug1, hug2);
11445                 }
11446
11447                 public function set volume(hug1:Number):void
11448                 {       //MethodID:1192, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 52
11449                         if(!this._stream.isConnected) throw new Error("FLVVideo.startToPlay: video has null initialized.");
11450
11451                         if((hug1 < 0) || (hug1 > 1)) return;
11452
11453                         this._stream.volume = hug1;
11454                 }
11455
11456                 public function get isPlaying():Boolean
11457                 {       //MethodID:1193, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11458                         return this._isPlaying;
11459                 }
11460
11461                 public function get isPausing():Boolean
11462                 {       //MethodID:1194, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11463                         return this._isPausing;
11464                 }
11465
11466                 public function get isSeeking():Boolean
11467                 {       //MethodID:1195, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11468                         return this.seekInfo.isSeeking;
11469                 }
11470
11471                 public function get isEnd():Boolean
11472                 {       //MethodID:1196, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11473                         return this._isEnd;
11474                 }
11475
11476                 public function get isBuffering():Boolean
11477                 {       //MethodID:1197, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11478                         return this._isBuffering;
11479                 }
11480
11481                 public function set isLoop(hug1:Boolean):void
11482                 {       //MethodID:1198, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
11483                         this._isLoop = hug1;
11484                 }
11485
11486                 public function play():void
11487                 {       //MethodID:1199, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
11488                         this._stream.play();
11489                 }
11490
11491                 public function stop():void
11492                 {       //MethodID:1200, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
11493                         this._stream.pause();
11494                 }
11495
11496                 public function close():void
11497                 {       //MethodID:1201, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
11498                         this._stream.close();
11499                 }
11500
11501                 public function seek(hug1:Number):void
11502                 {       //MethodID:1202, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 83
11503                         var hug2:Number = NaN;
11504                         this._isEnd = false;
11505
11506                         if(!this._isLoaded){
11507                                 hug2 = ((this.length / this._stream.bytesTotal) * this._stream.bytesLoaded);
11508
11509                                 if(hug2 < hug1) hug1 = hug2;
11510                         }
11511
11512                         this.seekInfo.isSeeking = true;
11513                         this.seekInfo.targetVpos = hug1;
11514
11515                         this._onVideoSeeking.apply(hug1);
11516                         this._stream.seek(hug1);
11517                 }
11518
11519                 public function get length():Number
11520                 {       //MethodID:1203, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11521                         return this._stream.length;
11522                 }
11523
11524                 public function get loadedLength():Number
11525                 {       //MethodID:1204, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11526                         return this._stream.loadedLength;
11527                 }
11528
11529                 public function get vpos():Number
11530                 {       //MethodID:1205, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 31
11531                         var hug1:Number = this.getVpos();
11532
11533                         if(this.seekInfo.isSeeking) hug1 = this.seekInfo.targetVpos;
11534
11535                         return hug1;
11536                 }
11537
11538                 private function getVpos():Number
11539                 {       //MethodID:1206, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11540                         return this._stream.vpos;
11541                 }
11542
11543                 public function get isInitialized():Boolean
11544                 {       //MethodID:1207, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11545                         return this._stream.isConnected;
11546                 }
11547
11548                 public function get hasLengthSet():Boolean
11549                 {       //MethodID:1208, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11550                         return this._hasLengthSet;
11551                 }
11552
11553                 public function get isControllable():Boolean
11554                 {       //MethodID:1209, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11555                         return this._stream.isConnected;
11556                 }
11557
11558                 public function get onVideoSeeked():Functions
11559                 {       //MethodID:1210, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11560                         return this._onVideoSeeked;
11561                 }
11562
11563                 public function get onVideoSeeking():Functions
11564                 {       //MethodID:1211, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11565                         return this._onVideoSeeking;
11566                 }
11567
11568                 public function get onVideoEnded():Functions
11569                 {       //MethodID:1212, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11570                         return this._onVideoEnded;
11571                 }
11572
11573                 public function get onVideoPlayed():Functions
11574                 {       //MethodID:1213, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11575                         return this._onVideoPlayed;
11576                 }
11577
11578                 public function get onVideoStopped():Functions
11579                 {       //MethodID:1214, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11580                         return this._onVideoStopped;
11581                 }
11582
11583                 public function get onVideoBufferingStarted():Functions
11584                 {       //MethodID:1215, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11585                         return this._onVideoBufferingStarted;
11586                 }
11587
11588                 public function get onVideoError():Functions
11589                 {       //MethodID:1216, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11590                         return this._onVideoError;
11591                 }
11592
11593                 public function get onVideoLoadComplete():Functions
11594                 {       //MethodID:1217, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11595                         return this._onVideoLoadComplete;
11596                 }
11597
11598                 public function get onInitMetaInfo():Functions
11599                 {       //MethodID:1218, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11600                         return this._onInitMetaInfo;
11601                 }
11602
11603                 public function get videoPlayerStatus():String
11604                 {       //MethodID:1219, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 87
11605                         if(this._isEnd) return VideoPlayerStatus.END;
11606
11607                         if(this.seekInfo.isSeeking) return VideoPlayerStatus.SEEKING;
11608
11609                         if(this._isPausing) return VideoPlayerStatus.PAUSED;
11610
11611                         if(this._isPlaying) return VideoPlayerStatus.PLAYING;
11612
11613                         if(this._isLoading) return VideoPlayerStatus.LOADING;
11614
11615                         return VideoPlayerStatus.STOPPED;
11616                 }
11617
11618                 public function get layer():DisplayObject
11619                 {       //MethodID:1220, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11620                         return this._videoLayer;
11621                 }
11622
11623                 public function get source():DisplayObject
11624                 {       //MethodID:1221, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11625                         return this._video;
11626                 }
11627
11628                 public function get contentWidth():int
11629                 {       //MethodID:1222, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
11630                         return ((this._video == null) ? 0 : this._video.width);
11631                 }
11632
11633                 public function get contentHeight():int
11634                 {       //MethodID:1223, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
11635                         return ((this._video == null) ? 0 : this._video.height);
11636                 }
11637
11638                 public function isRTMP(hug1:String):Boolean
11639                 {       //MethodID:1224, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 48
11640                         if((hug1 == "rtmp") || (hug1 == "rtmpe") || (hug1 == "rtmpt") || (hug1 == "rtmpte")) return true;
11641
11642                         return false;
11643                 }
11644
11645                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get videoLayer():Sprite
11646                 {       //MethodID:1225, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11647                         return this._videoLayer;
11648                 }
11649
11650                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get volume():Number
11651                 {       //MethodID:1226, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
11652                         return this._stream.volume;
11653                 }
11654
11655                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get video():Video
11656                 {       //MethodID:1227, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11657                         return this._video;
11658                 }
11659
11660                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get isLoop():Boolean
11661                 {       //MethodID:1228, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
11662                         return this._isLoop;
11663                 }
11664         }
11665 }
11666
11667
11668 //■class(instance)_index:89
11669 //private
11670 class SeekInfo extends Object
11671 {
11672         //static constructor
11673         public static function SeekInfo$cinit()
11674         {       //MethodID:1173, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
11675         }
11676
11677         //constructor
11678         public function SeekInfo()
11679         {       //MethodID:1174, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
11680                 super();
11681         }
11682
11683         //variables/etc.
11684         public var isSeeking:Boolean = false;                           //slotID:0
11685         public var targetVpos:Number;                                   //slotID:0
11686 }
11687
11688 //■script077■
11689
11690 package jp.nicovideo.nicoplayer.models{
11691
11692         //■class(instance)_index:91
11693         public interface IPlayerInfo
11694         {
11695                 //static constructor
11696                 public static function IPlayerInfo$cinit()
11697                 {       //MethodID:1230, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
11698                 }
11699
11700                 //variables/etc.
11701                 function get ecoExLinkData():Object;                                        //MethodID:1231, dispID:0
11702
11703                 function get noBannerWatchIDList():Array;                                   //MethodID:1232, dispID:0
11704
11705                 function get leafFilter():Array;                                            //MethodID:1233, dispID:0
11706
11707                 function get playlistLimit():int;                                           //MethodID:1234, dispID:0
11708
11709                 function get getThreadError():XMLList;                                      //MethodID:1235, dispID:0
11710
11711                 function get isNoLeadOnSlider():Boolean;                                    //MethodID:1236, dispID:0
11712
11713                 function getDefaultComment(hug1:String):String;                             //MethodID:1237, dispID:0
11714
11715                 //constructor
11716                 public function IPlayerInfo();                                              //MethodID:1238, dispID:0
11717         }
11718 }
11719
11720 //■script078■
11721
11722 package jp.nicovideo.nicoplayer.models{
11723
11724         import __AS3__.vec.Vector
11725         import flash.utils.unescapeMultiByte
11726         import jp.nicovideo.util.ObjectUtils
11727         import jp.nicovideo.util.StringUtils
11728         import jp.nicovideo.util.TimeUtils
11729         import jp.nicovideo.util.api.IAPICacheProxy
11730         import jp.nicovideo.util.loka.__MSG__
11731
11732         //■class(instance)_index:93
11733         public class PlayerInfo extends Object implements IPlayerInfo
11734         {
11735                 //static constructor
11736                 public static function PlayerInfo$cinit()
11737                 {       //MethodID:1244, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
11738                 }
11739
11740                 //constructor
11741                 public function PlayerInfo(hug1:Function, hug2:IAPICacheProxy)
11742                 {       //MethodID:1248, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 74
11743                         internal var callback:Function;                                 //slotID:1
11744                         internal var apiCacheProxy:IAPICacheProxy;                      //slotID:2
11745                         internal var defaultIgnoreWhiteSpace:Boolean;                   //slotID:3
11746                         internal var onLoadError:Function;                              //slotID:4
11747
11748                         defaultIgnoreWhiteSpace = false;
11749                         callback = hug1;
11750                         apiCacheProxy = hug2;
11751                         this._noBannerTargets = [];
11752                         this._leafFilter = [];
11753
11754                         super();
11755
11756                         onLoadError = function():void{  //MethodID:1246, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 35
11757                                 SystemMessage.instance.inform(__MSG__("プレイヤー情報の取得に失敗しました。"));
11758                                 ObjectUtils.callLater(function():void{  //MethodID:1245, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
11759                                         callback(false);
11760                                 });
11761                         };
11762
11763                         defaultIgnoreWhiteSpace = XML.ignoreWhitespace;
11764                         XML.ignoreWhitespace = true;
11765
11766                         apiCacheProxy.load(function(hug1:Boolean, hug2:*):void{ //MethodID:1247, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 108
11767                                 if(!hug1){
11768                                         onLoadError();
11769
11770                                         XML.ignoreWhitespace = defaultIgnoreWhiteSpace;
11771                                         return;
11772                                 }
11773
11774                                 _playerInfoXML = XML(hug2);
11775
11776                                 _initNoBannerTargets();
11777                                 _initLeafFilter();
11778                                 _initPlayStatsCount();
11779                                 _initGetThreadError();
11780                                 _initializePlaylistLimit();
11781                                 _initializeIsNoLoadAdsLiveBanner();
11782                                 _initializeLeadOnSliderFlag();
11783                                 _initializeDefaultComment();
11784
11785                                 XML.ignoreWhitespace = defaultIgnoreWhiteSpace;
11786
11787                                 callback(true);
11788                         }, false);
11789                 }
11790
11791                 //variables/etc.
11792                 private var _playerInfoXML:XML;                                 //slotID:0
11793                 private var _noBannerTargets:Array;                             //slotID:0
11794                 private var _leafFilter:Array;                                  //slotID:0
11795                 private var _playStatsCount:int;                                //slotID:0
11796                 private var _getThreadError:XMLList = null;                     //slotID:0
11797                 private var _playlistLimit:int = 0;                             //slotID:0
11798                 private var _defaultCommentTargets:Vector.<_DefaultCommentTarget>;//slotID:0
11799                 private var _isNoLoadAdsLiveBanner:Boolean = false;             //slotID:0
11800                 private var _isNoLeadOnSlider:Boolean = false;                  //slotID:0
11801
11802                 public function get ecoExLinkData():Object
11803                 {       //MethodID:1250, LocalCount= 2 , MaxScope= 2, MaxStack= 5, CodeLength= 318
11804                         internal var obj:Object;                                        //slotID:1
11805                         internal var xmlCheck:Function;                                 //slotID:2
11806                         internal var start:Date;                                        //slotID:3
11807                         internal var end:Date;                                          //slotID:4
11808                         internal var color:uint;                                        //slotID:5
11809
11810                         start = null;
11811                         end = null;
11812                         color = 0;
11813                         xmlCheck = function(hug1:XML):Boolean{  //MethodID:1249, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 110
11814                                 if(!hug1) return false;
11815
11816                                 if(hug1.eco_ex_link == undefined) return false;
11817
11818                                 if((hug1.eco_ex_link[0].start == undefined) || (hug1.eco_ex_link[0].end == undefined) || (hug1.eco_ex_link[0].text == undefined) || (hug1.eco_ex_link[0].link == undefined)) return false;
11819
11820                                 return true;
11821                         };
11822
11823                         if(!this._playerInfoXML) return null;
11824
11825                         obj = {};
11826
11827                         if(xmlCheck(this._playerInfoXML)){
11828                                 start = this._getDateFromString(String(this._playerInfoXML.eco_ex_link[0].start));
11829                                 end = this._getDateFromString(String(this._playerInfoXML.eco_ex_link[0].end));
11830                                 color = (this._playerInfoXML.eco_ex_link[0].text.color ? uint(this._playerInfoXML.eco_ex_link[0].text.color) : 0xFFFFFF);
11831
11832                                 if((start == null) || (end == null)) return null;
11833
11834                                 obj.start = start;
11835                                 obj.end = end;
11836                                 obj.text = String(this._playerInfoXML.eco_ex_link[0].text);
11837                                 obj.color = color;
11838                                 obj.link = unescapeMultiByte(String(this._playerInfoXML.eco_ex_link[0].link));
11839                                 return obj;
11840                         }else{
11841                                 return null;
11842                         }
11843                 }
11844
11845                 private function _getDateFromString(hug1:String):Date
11846                 {       //MethodID:1251, LocalCount= 5 , MaxScope= 1, MaxStack= 7, CodeLength= 70
11847                         var hug2:RegExp = new RegExp("^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})$");
11848                         var hug3:Array = hug2.exec(hug1);
11849
11850                         if(!hug3) return null;
11851
11852                         var hug4:Date = new Date(hug3[1], (hug3[2] - 1), hug3[3], hug3[4], hug3[5]);
11853                         return hug4;
11854                 }
11855
11856                 private function _initNoBannerTargets():void
11857                 {       //MethodID:1252, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 119
11858                         var hug1:XML = null;
11859                         var hug2:String = null;
11860
11861                         if(!this._playerInfoXML) return;
11862
11863                         if(this._playerInfoXML.no_banner_targets == undefined) return;
11864
11865                         if(this._playerInfoXML.no_banner_targets.watch_id == undefined) return;
11866
11867                         for each(hug1 in this._playerInfoXML.no_banner_targets.watch_id){
11868                                 hug2 = hug1.toString();
11869
11870                                 if(StringUtils.isValidVideoID(hug2)) this._noBannerTargets.push(hug2);
11871                         }
11872                 }
11873
11874                 private function _initLeafFilter():void
11875                 {       //MethodID:1253, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 107
11876                         var hug1:XML = null;
11877                         var hug2:String = null;
11878
11879                         if(!this._playerInfoXML) return;
11880
11881                         if(this._playerInfoXML.leaf_filter == undefined) return;
11882
11883                         if(this._playerInfoXML.leaf_filter.disable == undefined) return;
11884
11885                         for each(hug1 in this._playerInfoXML.leaf_filter.disable){
11886                                 hug2 = hug1.toString();
11887
11888                                 this._leafFilter.push(hug2);
11889                         }
11890                 }
11891
11892                 private function _initPlayStatsCount():void
11893                 {       //MethodID:1254, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 38
11894                         if(!this._playerInfoXML) return;
11895
11896                         if(this._playerInfoXML.playstats_count == undefined) return;
11897
11898                         this._playStatsCount = this._playerInfoXML.playstats_count;
11899                 }
11900
11901                 private function _initGetThreadError():void
11902                 {       //MethodID:1255, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 38
11903                         if(!this._playerInfoXML) return;
11904
11905                         if(this._playerInfoXML.get_thread_error == undefined) return;
11906
11907                         this._getThreadError = this._playerInfoXML.get_thread_error;
11908                 }
11909
11910                 private function _initializePlaylistLimit():void
11911                 {       //MethodID:1256, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 43
11912                         if(!this._playerInfoXML) return;
11913
11914                         if(this._playerInfoXML.playlist_limit == undefined) return;
11915
11916                         this._playlistLimit = int(this._playerInfoXML.playlist_limit);
11917                 }
11918
11919                 private function _initializeIsNoLoadAdsLiveBanner():void
11920                 {       //MethodID:1257, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 41
11921                         if(!this._playerInfoXML) return;
11922
11923                         if(this._playerInfoXML.no_load_adslivebanner == undefined) return;
11924
11925                         this._isNoLoadAdsLiveBanner = (this._playerInfoXML.no_load_adslivebanner == 1);
11926                 }
11927
11928                 private function _initializeLeadOnSliderFlag():void
11929                 {       //MethodID:1258, LocalCount= 11 , MaxScope= 1, MaxStack= 4, CodeLength= 491
11930                         var hug1:Array = null;
11931                         var hug2:int = 0;
11932                         var hug3:String = null;
11933                         var hug4:int = 0;
11934                         var hug5:Number = NaN;
11935                         var hug6:Array = null;
11936                         var hug7:Array = null;
11937                         var hug8:Array = null;
11938                         var hug9:Date = null;
11939                         var hug10:Date = null;
11940
11941                         if(!this._playerInfoXML || (this._playerInfoXML.no_lead_on_slider == undefined) || (this._playerInfoXML.no_lead_on_slider != 1)){
11942                                 this._isNoLeadOnSlider = false;
11943                                 return;
11944                         }
11945
11946                         if((this._playerInfoXML.no_lead_on_slider.d == undefined) && (this._playerInfoXML.no_lead_on_slider.t == undefined)){
11947                                 this._isNoLeadOnSlider = true;
11948                                 return;
11949                         }
11950
11951                         if(this._playerInfoXML.no_lead_on_slider.d != undefined){
11952                                 hug1 = String(this._playerInfoXML.no_lead_on_slider.d).split(",");
11953                                 hug2 = hug1.length;
11954                                 hug3 = TimeUtils.now().day.toString();
11955                                 hug4 = 0;
11956
11957                                 while(hug4 < hug2){
11958                                         if(String(hug1[hug4]) == hug3){
11959                                                 this._isNoLeadOnSlider = true;
11960                                                 return;
11961                                         }
11962
11963                                         hug4++;
11964                                 }
11965                         }
11966
11967                         if(this._playerInfoXML.no_lead_on_slider.t != undefined){
11968                                 hug5 = TimeUtils.time;
11969                                 hug6 = String(this._playerInfoXML.no_lead_on_slider.t).split("-");
11970                                 hug7 = hug6[0].split(":");
11971                                 hug8 = hug6[1].split(":");
11972                                 hug9 = new Date(hug5);
11973                                 hug10 = new Date(hug5);
11974                                 hug9.hours = Number(hug7[0]);
11975                                 hug9.minutes = Number(hug7[1]);
11976                                 hug10.hours = Number(hug8[0]);
11977                                 hug10.minutes = Number(hug8[1]);
11978
11979                                 if(hug9 < hug10){
11980                                         this._isNoLeadOnSlider = ((hug5 >= hug9.time) && (hug5 <= hug10.time));
11981                                 }else if(hug9 > hug10){
11982                                         this._isNoLeadOnSlider = ((hug5 >= hug9.time) || (hug5 <= hug10.time));
11983                                 }
11984                         }
11985                 }
11986
11987                 private function _initializeDefaultComment():void
11988                 {       //MethodID:1259, LocalCount= 9 , MaxScope= 1, MaxStack= 4, CodeLength= 281
11989                         var hug1:XML = null;
11990                         var hug2:String = null;
11991                         var hug3:Vector.<String> = null;
11992                         var hug4:XML = null;
11993                         this._defaultCommentTargets = new Vector.<_DefaultCommentTarget>();
11994
11995                         if(!this._playerInfoXML) return;
11996
11997                         if(this._playerInfoXML.default_comment_targets == undefined) return;
11998
11999                         if(this._playerInfoXML.default_comment_targets.target == undefined) return;
12000
12001                         for each(hug1 in this._playerInfoXML.default_comment_targets.target){
12002                                 if((hug1.comment == undefined) || (hug1.watch_id == undefined)){
12003                                 }else{
12004                                         hug2 = hug1.comment.toString();
12005                                         hug3 = new Vector.<String>();
12006
12007                                         for each(hug4 in hug1.watch_id){
12008                                                 if(StringUtils.isValidVideoID(hug4.toString())) hug3.push(hug4.toString());
12009                                         }
12010
12011                                         if((hug2 != null) && (hug2 != "") && (hug3.length > 0)) this._defaultCommentTargets.push(new _DefaultCommentTarget(hug2, hug3));
12012                                 }
12013                         }
12014                 }
12015
12016                 public function getDefaultComment(hug1:String):String
12017                 {       //MethodID:1260, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 67
12018                         var hug2:_DefaultCommentTarget = null;
12019
12020                         for each(hug2 in this._defaultCommentTargets){
12021                                 if(hug2.watchIDList.indexOf(hug1) < 0){
12022                                 }else{
12023                                         return hug2.comment;
12024                                 }
12025                         }
12026
12027                         return null;
12028                 }
12029
12030                 public function get noBannerWatchIDList():Array
12031                 {       //MethodID:1261, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12032                         return this._noBannerTargets;
12033                 }
12034
12035                 public function get playStatsCount():int
12036                 {       //MethodID:1262, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12037                         return this._playStatsCount;
12038                 }
12039
12040                 public function get getThreadError():XMLList
12041                 {       //MethodID:1263, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12042                         return this._getThreadError;
12043                 }
12044
12045                 public function get leafFilter():Array
12046                 {       //MethodID:1264, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12047                         return this._leafFilter;
12048                 }
12049
12050                 public function get playlistLimit():int
12051                 {       //MethodID:1265, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12052                         return this._playlistLimit;
12053                 }
12054
12055                 public function get isNoLoadAdsLiveBanner():Boolean
12056                 {       //MethodID:1266, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12057                         return this._isNoLoadAdsLiveBanner;
12058                 }
12059
12060                 public function get isNoLeadOnSlider():Boolean
12061                 {       //MethodID:1267, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12062                         return this._isNoLeadOnSlider;
12063                 }
12064         }
12065 }
12066
12067 import __AS3__.vec.Vector
12068
12069 //■class(instance)_index:92
12070 //private
12071 class _DefaultCommentTarget extends Object
12072 {
12073         //static constructor
12074         public static function _DefaultCommentTarget$cinit()
12075         {       //MethodID:1240, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
12076         }
12077
12078         //constructor
12079         public function _DefaultCommentTarget(hug1:String, hug2:Vector.<String>)
12080         {       //MethodID:1241, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
12081                 super();
12082
12083                 this._defaultComment = hug1;
12084                 this._watchIDList = hug2;
12085         }
12086
12087         //variables/etc.
12088         private var _defaultComment:String;                             //slotID:0
12089         private var _watchIDList:Vector.<String>;                       //slotID:0
12090
12091         public function get comment():String
12092         {       //MethodID:1242, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12093                 return this._defaultComment;
12094         }
12095
12096         public function get watchIDList():Vector.<String>
12097         {       //MethodID:1243, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12098                 return this._watchIDList;
12099         }
12100 }
12101
12102 //■script079■
12103
12104 package jp.nicovideo.nicoplayer.models{
12105
12106         import jp.nicovideo.nicoplayer.models.api.IJumper
12107         import jp.nicovideo.nicoplayer.models.api.Jumper
12108         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
12109         import jp.nicovideo.nicoplayer.models.video.IVideo
12110
12111         //■class(instance)_index:94
12112         public class StartVposConfig extends Object
12113         {
12114                 //static constructor
12115                 public static function StartVposConfig$cinit()
12116                 {       //MethodID:1269, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 18
12117                         PERMISSIBLE_JUMPING_DELAY = ((2 * 60) * 1000);
12118                 }
12119
12120                 //static variables/etc.
12121                 private static const PERMISSIBLE_JUMPING_DELAY:Number = 0x1D4C0;//slotID:1
12122
12123                 //constructor
12124                 public function StartVposConfig(hug1:IJumper, hug2:NicoFlashVars)
12125                 {       //MethodID:1270, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 21
12126                         super();
12127
12128                         this._jumper = hug1;
12129                         this._flashVars = hug2;
12130
12131                         this._initialize();
12132                 }
12133
12134                 //variables/etc.
12135                 private var _fromMsec:Number;                                   //slotID:0
12136                 private var _type:String;                                       //slotID:0
12137                 private var _isHalfway:Boolean = false;                         //slotID:0
12138                 private var _isAutoPlay:Boolean = false;                        //slotID:0
12139                 private var _flashVars:NicoFlashVars;                           //slotID:0
12140                 private var _jumper:IJumper;                                    //slotID:0
12141                 private var _video:IVideo;                                      //slotID:0
12142
12143                 private function _initialize():void
12144                 {       //MethodID:1272, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 409
12145                         internal var vposKey:String;                                    //slotID:1
12146                         internal var dateKey:String;                                    //slotID:2
12147                         internal var __flushJumperObj:Function;                         //slotID:3
12148                         internal var clicked:Number;                                    //slotID:4
12149                         internal var now:Number;                                        //slotID:5
12150
12151                         vposKey = null;
12152                         dateKey = null;
12153                         clicked = NaN;
12154                         now = NaN;
12155                         __flushJumperObj = function():void{     //MethodID:1271, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 80
12156                                 if(_jumper && _jumper.tossedObject){
12157                                         if(_jumper.tossedObject[vposKey]) _jumper.tossedObject[vposKey] = null;
12158
12159                                         if(_jumper.tossedObject[dateKey]) _jumper.tossedObject[dateKey] = null;
12160                                 }
12161                         };
12162
12163                         this._cleanFlags();
12164
12165                         vposKey = Jumper.KEY_OF_PLAY_FROM_VPOS_SEC;
12166                         dateKey = Jumper.KEY_OF_PLAY_FROM_CLICKED_DATE;
12167                         this._fromMsec = -1;
12168
12169                         if(this._jumper.tossedObject){
12170                                 if(this._jumper.tossedObject[vposKey]){
12171                                         if(this._jumper.tossedObject[dateKey]){
12172                                                 clicked = this._jumper.tossedObject[dateKey];
12173                                                 now = new Date().getTime();
12174
12175                                                 if((clicked < now) && (now < (clicked + PERMISSIBLE_JUMPING_DELAY))){
12176                                                         this._fromMsec = (this._jumper.tossedObject[vposKey] * 1000);
12177                                                         this._type = StartVposType.EXT;
12178                                                         this._isAutoPlay = Boolean(this._jumper.tossedObject[Jumper.KEY_OF_PLAY_FROM_IS_AUTO_PLAY]);
12179                                                 }else{
12180                                                         __flushJumperObj();
12181                                                 }
12182                                         }else{
12183                                                 __flushJumperObj();
12184                                         }
12185                                 }else if(this._jumper.tossedObject.jumpFrom && this._flashVars.watchFlashVars){
12186                                         this._fromMsec = (this._flashVars.watchFlashVars.jumpVPosPlayFrom * 1000);
12187                                         this._isAutoPlay = true;
12188                                         this._type = StartVposType.ATJUMP;
12189                                 }
12190                         }else if(this._flashVars.watchFlashVars && (this._flashVars.watchFlashVars.jumpVPosPlayFrom > 0)){
12191                                 this._fromMsec = (this._flashVars.watchFlashVars.jumpVPosPlayFrom * 1000);
12192                                 this._isAutoPlay = false;
12193                                 this._type = StartVposType.URL;
12194                         }
12195
12196                         this._isHalfway = (0 < this._fromMsec);
12197                 }
12198
12199                 private function _cleanFlags():void
12200                 {       //MethodID:1273, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
12201                         this._isHalfway = false;
12202                         this._isAutoPlay = false;
12203                         this._type = null;
12204                         this._fromMsec = -1;
12205                 }
12206
12207                 public function judgebyVideoLength(hug1:IVideo):void
12208                 {       //MethodID:1274, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 54
12209                         if(!hug1) return;
12210
12211                         this._video = hug1;
12212                         this._isHalfway = (this._isHalfway && (this._fromMsec < this._video.length));
12213
12214                         if(!this._isHalfway) this._cleanFlags();
12215                 }
12216
12217                 public function get fromMsec():Number
12218                 {       //MethodID:1275, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12219                         return this._fromMsec;
12220                 }
12221
12222                 public function get halfwayStartEnabled():Boolean
12223                 {       //MethodID:1276, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12224                         return this._isHalfway;
12225                 }
12226
12227                 public function get isAutoPlay():Boolean
12228                 {       //MethodID:1277, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12229                         return this._isAutoPlay;
12230                 }
12231
12232                 public function get type():String
12233                 {       //MethodID:1278, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12234                         return this._type;
12235                 }
12236         }
12237 }
12238
12239 //■script080■
12240
12241 package jp.nicovideo.nicoplayer.models.api{
12242
12243         //■class(instance)_index:95
12244         public interface IGetFLV
12245         {
12246                 //static constructor
12247                 public static function IGetFLV$cinit()
12248                 {       //MethodID:1280, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
12249                 }
12250
12251                 //variables/etc.
12252                 function get threadID():String;                                             //MethodID:1281, dispID:0
12253
12254                 function get videoLength():Number;                                          //MethodID:1282, dispID:0
12255
12256                 function get videoURL():String;                                             //MethodID:1283, dispID:0
12257
12258                 function get videoProtocol():String;                                        //MethodID:1284, dispID:0
12259
12260                 function get videoFileName():String;                                        //MethodID:1285, dispID:0
12261
12262                 function get smilevideoLink():String;                                       //MethodID:1286, dispID:0
12263
12264                 function get messageServerURL():String;                                     //MethodID:1287, dispID:0
12265
12266                 function get accessTimestamp():uint;                                        //MethodID:1288, dispID:0
12267
12268                 function get closed():Boolean;                                              //MethodID:1289, dispID:0
12269
12270                 function get optionalThreadID():String;                                     //MethodID:1290, dispID:0
12271
12272                 function get commentExpire():Boolean;                                       //MethodID:1291, dispID:0
12273
12274                 function get nicoSThreadID():String;                                        //MethodID:1292, dispID:0
12275
12276                 function get isAS3():Boolean;                                               //MethodID:1293, dispID:0
12277
12278                 function get channelFilter():String;                                        //MethodID:1294, dispID:0
12279
12280                 function get ownerFilter():String;                                          //MethodID:1295, dispID:0
12281
12282                 function get fmsToken():String;                                             //MethodID:1296, dispID:0
12283
12284                 function get deleted():uint;                                                //MethodID:1297, dispID:0
12285
12286                 //constructor
12287                 public function IGetFLV();                                                  //MethodID:1298, dispID:0
12288         }
12289 }
12290
12291 //■script081■
12292
12293 package jp.nicovideo.nicoplayer.models.api{
12294
12295         import com.adobe.serialization.json.JSON
12296         import flash.net.URLVariables
12297         import jp.nicovideo.util.HTTPUtils
12298         import jp.nicovideo.util.StringUtils
12299         import jp.nicovideo.util.TimeUtils
12300
12301         //■class(instance)_index:96
12302         public class GetFLV extends Object implements IGetFLV
12303         {
12304                 //static constructor
12305                 public static function GetFLV$cinit()
12306                 {       //MethodID:1300, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
12307                 }
12308
12309                 //constructor
12310                 public function GetFLV(hug1:String, hug2:Object=null, hug3:Function=null)
12311                 {       //MethodID:1301, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 34
12312                         super();
12313
12314                         this._apiURL = hug1;
12315
12316                         if(hug2 && (hug3 != null)) this.getInfo(hug2, hug3);
12317                 }
12318
12319                 //variables/etc.
12320                 private var _apiURL:String;                                     //slotID:0
12321                 private var _messageServerURL:String;                           //slotID:0
12322                 private var _threadID:String;                                   //slotID:0
12323                 private var _optionalThreadID:String;                           //slotID:0
12324                 private var _nicoSThreadID:String;                              //slotID:0
12325                 private var _smilevideoLink:String;                             //slotID:0
12326                 private var _videoURL:String = "";                              //slotID:0
12327                 private var _videoProtocol:String = "";                         //slotID:0
12328                 private var _videoFileName:String = "";                         //slotID:0
12329                 private var _videoLength:Number;                                //slotID:0
12330                 private var _accessTimestamp:uint = 0;                          //slotID:0
12331                 private var _deleted:uint;                                      //slotID:0
12332                 private var _fmsToken:String;                                   //slotID:0
12333                 private var _ownerFilter:String = "";                           //slotID:0
12334                 private var _channelFilter:String;                              //slotID:0
12335                 private var _initializeInfo:InitializeInfo;                     //slotID:0
12336                 private var _closed:Boolean = false;                            //slotID:0
12337                 private var _commentExpire:Boolean = true;                      //slotID:0
12338                 private var _isAS3:Boolean = false;                             //slotID:0
12339                 private var _hirobaHost:String;                                 //slotID:0
12340                 private var _hirobaPort:uint;                                   //slotID:0
12341                 private var _hirobaThreadID:String;                             //slotID:0
12342                 private var _hirobaThreadKey:String;                            //slotID:0
12343
12344                 public function getInfo(hug1:Object, hug2:Function):void
12345                 {       //MethodID:1303, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 35
12346                         internal var apiParam:Object;                                   //slotID:1
12347                         internal var callbackFunc:Function;                             //slotID:2
12348
12349                         apiParam = hug1;
12350                         callbackFunc = hug2;
12351
12352                         HTTPUtils.sendPostData(function(hug1:URLVariables):void{        //MethodID:1302, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 649
12353                                 var hug3:Object = null;
12354
12355                                 if(!hug1 || hug1.error){
12356                                         callbackFunc(false);
12357
12358                                         return;
12359                                 }
12360
12361                                 _threadID = hug1.thread_id;
12362                                 _videoLength = (hug1.l * 1000);
12363                                 _videoURL = hug1.url;
12364                                 _hirobaHost = (hug1.hms ? hug1.hms : null);
12365                                 _hirobaPort = hug1.hmsp;
12366                                 _hirobaThreadID = (hug1.hmst ? hug1.hmst : null);
12367                                 _hirobaThreadKey = hug1.hmstk;
12368                                 var hug2:Object = StringUtils.parseURL(_videoURL);
12369                                 _videoProtocol = hug2.protocol;
12370
12371                                 if((_videoProtocol == "rtmp") || (_videoProtocol == "rtmpe") || (_videoProtocol == "rtmpt") || (_videoProtocol == "rtmpte")){
12372                                         _videoURL = (_videoProtocol + "://" + hug2.host + hug2.directory + hug2.file);
12373                                         hug3 = hug2.queryObject;
12374
12375                                         if(hug3.m != null){
12376                                                 _videoFileName = hug3.m;
12377                                         }else if(hug3.v != null){
12378                                                 _videoFileName = hug3.v;
12379                                         }else if(hug3.s != null){
12380                                                 _videoFileName = hug3.s;
12381                                         }else{
12382                                                 callbackFunc(false);
12383
12384                                                 return;
12385                                         }
12386                                 }
12387
12388                                 _fmsToken = hug1.fmst;
12389                                 _smilevideoLink = hug1.link;
12390                                 _messageServerURL = hug1.ms;
12391                                 _accessTimestamp = hug1.time;
12392                                 TimeUtils.time = (_accessTimestamp * 1000);
12393
12394                                 if(hug1.closed) _closed = Boolean(parseInt(hug1.closed, 10));
12395
12396                                 if(hug1.ng_up) _ownerFilter = hug1.ng_up;
12397
12398                                 if(hug1.ce) _commentExpire = ((hug1.ce == 0) ? false : true);
12399
12400                                 if(hug1.nicos_id) _nicoSThreadID = hug1.nicos_id;
12401
12402                                 if(hug1.optional_thread_id) _optionalThreadID = hug1.optional_thread_id;
12403
12404                                 if(hug1.as3) _isAS3 = (hug1.as3 == "1");
12405
12406                                 if(hug1.ng_ch) _channelFilter = hug1.ng_ch;
12407
12408                                 if(hug1.deleted) _deleted = parseInt(hug1.deleted);
12409
12410                                 _initializeInfo = InitializeInfo.init(hug1.user_id, hug1.nickname, (hug1.is_premium == "1"), parseInt(hug1.ng_rv, 10), (hug1.ng_maintenance == "1"), hug1.feedrev, ((hug1.rpu != null) ? JSON.decode(hug1.rpu) : null));
12411
12412                                 callbackFunc(true);
12413                         }, this._apiURL, apiParam);
12414                 }
12415
12416                 public function get threadID():String
12417                 {       //MethodID:1304, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12418                         return this._threadID;
12419                 }
12420
12421                 public function get videoLength():Number
12422                 {       //MethodID:1305, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12423                         return this._videoLength;
12424                 }
12425
12426                 public function get videoURL():String
12427                 {       //MethodID:1306, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12428                         return this._videoURL;
12429                 }
12430
12431                 public function get fmsToken():String
12432                 {       //MethodID:1307, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12433                         return this._fmsToken;
12434                 }
12435
12436                 public function get smilevideoLink():String
12437                 {       //MethodID:1308, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12438                         return this._smilevideoLink;
12439                 }
12440
12441                 public function get messageServerURL():String
12442                 {       //MethodID:1309, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12443                         return this._messageServerURL;
12444                 }
12445
12446                 public function get accessTimestamp():uint
12447                 {       //MethodID:1310, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12448                         return this._accessTimestamp;
12449                 }
12450
12451                 public function get closed():Boolean
12452                 {       //MethodID:1311, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12453                         return this._closed;
12454                 }
12455
12456                 public function get ownerFilter():String
12457                 {       //MethodID:1312, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12458                         return this._ownerFilter;
12459                 }
12460
12461                 public function get commentExpire():Boolean
12462                 {       //MethodID:1313, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12463                         return this._commentExpire;
12464                 }
12465
12466                 public function get nicoSThreadID():String
12467                 {       //MethodID:1314, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12468                         return this._nicoSThreadID;
12469                 }
12470
12471                 public function get optionalThreadID():String
12472                 {       //MethodID:1315, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12473                         return this._optionalThreadID;
12474                 }
12475
12476                 public function get isAS3():Boolean
12477                 {       //MethodID:1316, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12478                         return this._isAS3;
12479                 }
12480
12481                 public function get videoProtocol():String
12482                 {       //MethodID:1317, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12483                         return this._videoProtocol;
12484                 }
12485
12486                 public function get videoFileName():String
12487                 {       //MethodID:1318, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12488                         return this._videoFileName;
12489                 }
12490
12491                 public function get channelFilter():String
12492                 {       //MethodID:1319, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12493                         return this._channelFilter;
12494                 }
12495
12496                 public function get deleted():uint
12497                 {       //MethodID:1320, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12498                         return this._deleted;
12499                 }
12500
12501                 public function get hirobaHost():String
12502                 {       //MethodID:1321, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12503                         return this._hirobaHost;
12504                 }
12505
12506                 public function get hirobaPort():uint
12507                 {       //MethodID:1322, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12508                         return this._hirobaPort;
12509                 }
12510
12511                 public function get hirobaThreadID():String
12512                 {       //MethodID:1323, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12513                         return this._hirobaThreadID;
12514                 }
12515
12516                 public function get hirobaThreadKey():String
12517                 {       //MethodID:1324, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12518                         return this._hirobaThreadKey;
12519                 }
12520         }
12521 }
12522
12523 //■script082■
12524
12525 package jp.nicovideo.nicoplayer.models.api{
12526
12527         //■class(instance)_index:97
12528         public interface IJumper
12529         {
12530                 //static constructor
12531                 public static function IJumper$cinit()
12532                 {       //MethodID:1326, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
12533                 }
12534
12535                 //variables/etc.
12536                 function get tossedObject():Object;                                         //MethodID:1327, dispID:0
12537
12538                 function jump(hug1:String, hug2:Object, hug3:Boolean=false, hug4:Object=null):void;//MethodID:1328, dispID:0
12539
12540                 //constructor
12541                 public function IJumper();                                                  //MethodID:1329, dispID:0
12542         }
12543 }
12544
12545 //■script083■
12546
12547 package jp.nicovideo.nicoplayer.models.api{
12548
12549         import flash.net.URLRequest
12550         import flash.net.navigateToURL
12551         import jp.nicovideo.nicoplayer.config.NicoConfig
12552         import jp.nicovideo.util.CrossSharedObject
12553         import jp.nicovideo.util.StringUtils
12554         import jp.nicovideo.util.external.JSConnector
12555         import jp.nicovideo.util.storage.LocalStorage
12556
12557         //■class(instance)_index:98
12558         public class Jumper extends Object implements IJumper
12559         {
12560                 //static constructor
12561                 public static function Jumper$cinit()
12562                 {       //MethodID:1331, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 70
12563                         KEY_OF_PLAY_FROM_VPOS_SEC = "play_from_vpos_sec";
12564                         KEY_OF_PLAY_FROM_CLICKED_DATE = "play_from_clicked_date";
12565                         KEY_OF_PLAY_FROM_IS_AUTO_PLAY = "play_from_and_auto_play";
12566                         __SO_NAME = "jp.nicovideo.nicoplayer.api.Jumper";
12567                         __TOSS_EXPIRES = (1000 * 60 * 3);
12568                         __sharedObj = CrossSharedObject.getStorage(__SO_NAME);
12569                 }
12570
12571                 //static variables/etc.
12572                 public static const KEY_OF_PLAY_FROM_VPOS_SEC:String = "play_from_vpos_sec";//slotID:1
12573                 public static const KEY_OF_PLAY_FROM_CLICKED_DATE:String = "play_from_clicked_date";//slotID:2
12574                 public static const KEY_OF_PLAY_FROM_IS_AUTO_PLAY:String = "play_from_and_auto_play";//slotID:3
12575                 private static const __SO_NAME:String = "jp.nicovideo.nicoplayer.api.Jumper";//slotID:4
12576                 private static const __TOSS_EXPIRES:int = 0x2BF20;              //slotID:5
12577                 private static var __sharedObj:LocalStorage;                    //slotID:6
12578
12579                 //constructor
12580                 public function Jumper(hug1:NicoConfig, hug2:String)
12581                 {       //MethodID:1332, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 34
12582                         this.__JUMP_WINDOW_ID = ("UNK_" + this.__getCurrentTimeMillis());
12583
12584                         super();
12585
12586                         this.__cfg = hug1;
12587                         this.__videoID = hug2;
12588
12589                         this.__initialize();
12590                 }
12591
12592                 //variables/etc.
12593                 private var __cfg:NicoConfig;                                   //slotID:0
12594                 private var __tossedObject:Object;                              //slotID:0
12595                 private var __videoID:String;                                   //slotID:0
12596                 private var __JUMP_WINDOW_ID:String;                            //slotID:0
12597
12598                 private function __initialize():void
12599                 {       //MethodID:1333, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 118
12600                         var hug1:Object = null;
12601
12602                         if(!__sharedObj) throw new Error("Jumper: SharedObject.getLocal failed.");
12603
12604                         if("tossedObjects" in __sharedObj.data){
12605                                 this.__sweepExpiredTossedObjects();
12606
12607                                 hug1 = __sharedObj.data.tossedObjects[this.__videoID];
12608
12609                                 if(hug1){
12610                                         this.__tossedObject = hug1.obj;
12611
12612                                         delete __sharedObj.data.tossedObjects[this.__videoID];
12613                                         __sharedObj.flush();
12614
12615                                         if(hug1.focus) JSConnector.call("window.focus");
12616                                 }
12617                         }
12618                 }
12619
12620                 public function get tossedObject():Object
12621                 {       //MethodID:1334, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12622                         return this.__tossedObject;
12623                 }
12624
12625                 public function jump(hug1:String, hug2:Object, hug3:Boolean=false, hug4:Object=null):void
12626                 {       //MethodID:1335, LocalCount= 6 , MaxScope= 1, MaxStack= 8, CodeLength= 163
12627                         __sharedObj.data.tossedObjects = (__sharedObj.data.tossedObjects || {});
12628                         __sharedObj.data.tossedObjects[hug1] = {obj:hug4, time:this.__getCurrentTimeMillis(), focus:hug3};
12629
12630                         __sharedObj.flush();
12631
12632                         hug2.p = (new RegExp("^\d{10}$").test(hug1) ? ("watch/" + hug1) : hug1);
12633                         var hug5:String = StringUtils.joinQuery(this.__cfg.REDIRECTOR_URL, hug2);
12634
12635                         if(hug3){
12636                                 navigateToURL(new URLRequest(hug5), "_blank");
12637                         }else{
12638                                 navigateToURL(new URLRequest(hug5), "_self");
12639                         }
12640                 }
12641
12642                 private function __getCurrentTimeMillis():Number
12643                 {       //MethodID:1336, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 12
12644                         return new Date().getTime();
12645                 }
12646
12647                 private function __sweepExpiredTossedObjects():void
12648                 {       //MethodID:1337, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 89
12649                         var hug2:String = null;
12650                         var hug1:Number = this.__getCurrentTimeMillis();
12651
12652                         for(hug2 in __sharedObj.data.tossedObjects){
12653                                 if(__TOSS_EXPIRES < (hug1 - __sharedObj.data.tossedObjects[hug2].time)) delete __sharedObj.data.tossedObjects[hug2];
12654                         }
12655                 }
12656         }
12657 }
12658
12659 //■script084■
12660
12661 package jp.nicovideo.nicoplayer.models{
12662
12663         //■class(instance)_index:99
12664         public interface IPlayerVersion
12665         {
12666                 //static constructor
12667                 public static function IPlayerVersion$cinit()
12668                 {       //MethodID:1339, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
12669                 }
12670
12671                 //variables/etc.
12672                 function get nicoplayer():String;                                           //MethodID:1340, dispID:0
12673
12674                 function get nicoscriptPlayer():String;                                     //MethodID:1341, dispID:0
12675
12676                 function get nicoplayerTemplate():String;                                   //MethodID:1342, dispID:0
12677
12678                 function get nicoplayerViewController():String;                             //MethodID:1343, dispID:0
12679
12680                 function get hirobaMovie():String;                                          //MethodID:1344, dispID:0
12681
12682                 function get userSponsorMovie():String;                                     //MethodID:1345, dispID:0
12683
12684                 function get thumbplayerView():String;                                      //MethodID:1346, dispID:0
12685
12686                 function get thumbplayerController():String;                                //MethodID:1347, dispID:0
12687
12688                 function get marqueePlayer():String;                                        //MethodID:1348, dispID:0
12689
12690                 function get updatedLogs():Array;                                           //MethodID:1349, dispID:0
12691
12692                 function get hirobaconnector():String;                                      //MethodID:1350, dispID:0
12693
12694                 function get videoMenu():String;                                            //MethodID:1351, dispID:0
12695
12696                 function get videoEnder():String;                                           //MethodID:1352, dispID:0
12697
12698                 function get jsconnector():String;                                          //MethodID:1353, dispID:0
12699
12700                 function get remoconAlert():String;                                         //MethodID:1354, dispID:0
12701
12702                 //constructor
12703                 public function IPlayerVersion();                                           //MethodID:1355, dispID:0
12704         }
12705 }
12706
12707 //■script085■
12708
12709 package jp.nicovideo.nicoplayer.models{
12710
12711         import jp.nicovideo.util.ObjectUtils
12712         import jp.nicovideo.util.StringUtils
12713         import jp.nicovideo.util.api.IAPICacheProxy
12714         import jp.nicovideo.util.loka.__MSG__
12715
12716         //■class(instance)_index:100
12717         public class PlayerVersion extends Object implements IPlayerVersion
12718         {
12719                 //static constructor
12720                 public static function PlayerVersion$cinit()
12721                 {       //MethodID:1357, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
12722                         SO_PLAYERVERSION = "jp.nicovideo.nicoplayer.models.playerVersion";
12723                 }
12724
12725                 //static variables/etc.
12726                 public static const SO_PLAYERVERSION:String = "jp.nicovideo.nicoplayer.models.playerVersion";//slotID:1
12727
12728                 //constructor
12729                 public function PlayerVersion(hug1:Function, hug2:IAPICacheProxy)
12730                 {       //MethodID:1362, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 77
12731                         internal var callback:Function;                                 //slotID:1
12732                         internal var apiCacheProxy:IAPICacheProxy;                      //slotID:2
12733                         internal var defaultIgnoreWhiteSpace:Boolean;                   //slotID:3
12734                         internal var onLoadError:Function;                              //slotID:4
12735                         internal var setLogDateFormat:Function;                         //slotID:5
12736
12737                         defaultIgnoreWhiteSpace = false;
12738                         callback = hug1;
12739                         apiCacheProxy = hug2;
12740                         this._updatedLogs = [];
12741
12742                         super();
12743
12744                         onLoadError = function():void{  //MethodID:1359, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 35
12745                                 SystemMessage.instance.inform(__MSG__("プレイヤー情報の取得に失敗しました。"));
12746                                 ObjectUtils.callLater(function():void{  //MethodID:1358, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
12747                                         callback(false);
12748                                 });
12749                         };
12750
12751                         setLogDateFormat = function(hug1:String):String{        //MethodID:1360, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 47
12752                                 return StringUtils.sprintf("%02d/%02d %02d:%02d", hug1.substr(4, 2), hug1.substr(6, 2), hug1.substr(8, 2), hug1.substr(10, 2));
12753                         };
12754
12755                         defaultIgnoreWhiteSpace = XML.ignoreWhitespace;
12756                         XML.ignoreWhitespace = true;
12757
12758                         apiCacheProxy.load(function(hug1:Boolean, hug2:*):void{ //MethodID:1361, LocalCount= 7 , MaxScope= 0, MaxStack= 3, CodeLength= 365
12759                                 var hug4:XML = null;
12760
12761                                 if(!hug1){
12762                                         onLoadError();
12763
12764                                         XML.ignoreWhitespace = defaultIgnoreWhiteSpace;
12765                                         return;
12766                                 }
12767
12768                                 var hug3:XML = XML(hug2);
12769                                 _nicoplayer = hug3.swf.nicoplayer;
12770                                 _nicoscriptPlayer = hug3.swf.nicoscript_player;
12771                                 _nicoplayerTemplate = hug3.swf.nicoplayer_template;
12772                                 _nicoplayerViewController = hug3.swf.nicoplayer_view_controller;
12773                                 _hirobaMovie = hug3.swf.hiroba_movie;
12774                                 _userSponsorMovie = hug3.swf.user_sponsor_movie;
12775                                 _marqueePlayer = hug3.swf.marquee_player;
12776                                 _thumbplayerView = hug3.swf.thumbplayer_view;
12777                                 _thumbplayerController = hug3.swf.thumbplayer_controller;
12778                                 _hirobaconnector = hug3.swf.hirobaconnector;
12779                                 _larquee = hug3.swf.larquee;
12780                                 _videoMenu = hug3.swf.video_menu;
12781                                 _videoEnder = hug3.swf.video_ender;
12782                                 _pluginloader = hug3.swf.pluginloader;
12783                                 _crossSharedObject = hug3.swf.cross_sharedobject;
12784                                 _applibar = hug3.swf.applibar;
12785                                 _jsconnector = hug3.swf.jsconnector;
12786                                 _remoconAlert = hug3.swf.remocon_alert;
12787                                 _updatedLogs = [];
12788
12789                                 for each(hug4 in hug3.updated_logs.log){
12790                                         _updatedLogs.push((setLogDateFormat(hug4.@date) + " ") + hug4.valueOf());
12791                                 }
12792
12793                                 XML.ignoreWhitespace = defaultIgnoreWhiteSpace;
12794
12795                                 callback(true);
12796                         }, false);
12797                 }
12798
12799                 //variables/etc.
12800                 private var _nicoplayer:String;                                 //slotID:0
12801                 private var _nicoscriptPlayer:String;                           //slotID:0
12802                 private var _nicoplayerTemplate:String;                         //slotID:0
12803                 private var _nicoplayerViewController:String;                   //slotID:0
12804                 private var _hirobaMovie:String;                                //slotID:0
12805                 private var _userSponsorMovie:String;                           //slotID:0
12806                 private var _thumbplayerView:String;                            //slotID:0
12807                 private var _thumbplayerController:String;                      //slotID:0
12808                 private var _marqueePlayer:String;                              //slotID:0
12809                 private var _hirobaconnector:String;                            //slotID:0
12810                 private var _larquee:String;                                    //slotID:0
12811                 private var _videoMenu:String;                                  //slotID:0
12812                 private var _videoEnder:String;                                 //slotID:0
12813                 private var _pluginloader:String;                               //slotID:0
12814                 private var _crossSharedObject:String;                          //slotID:0
12815                 private var _applibar:String;                                   //slotID:0
12816                 private var _jsconnector:String;                                //slotID:0
12817                 private var _remoconAlert:String;                               //slotID:0
12818                 private var _updatedLogs:Array;                                 //slotID:0
12819
12820                 public function get nicoplayer():String
12821                 {       //MethodID:1363, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12822                         return this._nicoplayer;
12823                 }
12824
12825                 public function get nicoplayerViewController():String
12826                 {       //MethodID:1364, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12827                         return this._nicoplayerViewController;
12828                 }
12829
12830                 public function get nicoscriptPlayer():String
12831                 {       //MethodID:1365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12832                         return this._nicoscriptPlayer;
12833                 }
12834
12835                 public function get nicoplayerTemplate():String
12836                 {       //MethodID:1366, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12837                         return this._nicoplayerTemplate;
12838                 }
12839
12840                 public function get hirobaMovie():String
12841                 {       //MethodID:1367, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12842                         return this._hirobaMovie;
12843                 }
12844
12845                 public function get userSponsorMovie():String
12846                 {       //MethodID:1368, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12847                         return this._userSponsorMovie;
12848                 }
12849
12850                 public function get thumbplayerView():String
12851                 {       //MethodID:1369, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12852                         return this._thumbplayerView;
12853                 }
12854
12855                 public function get thumbplayerController():String
12856                 {       //MethodID:1370, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12857                         return this._thumbplayerController;
12858                 }
12859
12860                 public function get marqueePlayer():String
12861                 {       //MethodID:1371, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12862                         return this._marqueePlayer;
12863                 }
12864
12865                 public function get updatedLogs():Array
12866                 {       //MethodID:1372, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12867                         return this._updatedLogs;
12868                 }
12869
12870                 public function get hirobaconnector():String
12871                 {       //MethodID:1373, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12872                         return this._hirobaconnector;
12873                 }
12874
12875                 public function get larquee():String
12876                 {       //MethodID:1374, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12877                         return this._larquee;
12878                 }
12879
12880                 public function get videoMenu():String
12881                 {       //MethodID:1375, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12882                         return this._videoMenu;
12883                 }
12884
12885                 public function get videoEnder():String
12886                 {       //MethodID:1376, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12887                         return this._videoEnder;
12888                 }
12889
12890                 public function get crossSharedObject():String
12891                 {       //MethodID:1377, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12892                         return this._crossSharedObject;
12893                 }
12894
12895                 public function get pluginloader():String
12896                 {       //MethodID:1378, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12897                         return this._pluginloader;
12898                 }
12899
12900                 public function get applibar():String
12901                 {       //MethodID:1379, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12902                         return this._applibar;
12903                 }
12904
12905                 public function get jsconnector():String
12906                 {       //MethodID:1380, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12907                         return this._jsconnector;
12908                 }
12909
12910                 public function get remoconAlert():String
12911                 {       //MethodID:1381, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
12912                         return this._remoconAlert;
12913                 }
12914         }
12915 }
12916
12917 //■script086■
12918
12919 package jp.nicovideo.hiroba.events{
12920
12921         //■class(instance)_index:101
12922         public class HirobaEventReferer extends Object
12923         {
12924                 //static constructor
12925                 public static function HirobaEventReferer$cinit()
12926                 {       //MethodID:1383, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
12927                         NICO_PLAYER = "nicoPlayer";
12928                         HIROBA_AGENT = "hirobaAgent";
12929                         LOCAL_CONNECTION = "localConnection";
12930                         MESSAGE_SERVER = "messageServer";
12931                 }
12932
12933                 //static variables/etc.
12934                 public static const NICO_PLAYER:String = "nicoPlayer";          //slotID:1
12935                 public static const HIROBA_AGENT:String = "hirobaAgent";        //slotID:2
12936                 public static const LOCAL_CONNECTION:String = "localConnection";//slotID:3
12937                 public static const MESSAGE_SERVER:String = "messageServer";    //slotID:4
12938
12939                 //constructor
12940                 public function HirobaEventReferer()
12941                 {       //MethodID:1384, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
12942                         super();
12943                 }
12944         }
12945 }
12946
12947 //■script087■
12948
12949 package jp.nicovideo.nicoplayer.hiroba{
12950
12951         import flash.display.Sprite
12952         import jp.nicovideo.nicoplayer.models.comment.IComment
12953         import jp.nicovideo.util.Functions
12954
12955         //■class(instance)_index:102
12956         public interface IHirobaPlayer
12957         {
12958                 //static constructor
12959                 public static function IHirobaPlayer$cinit()
12960                 {       //MethodID:1386, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
12961                 }
12962
12963                 //variables/etc.
12964                 function get onClickedLink():Functions;                                     //MethodID:1387, dispID:0
12965
12966                 function inializeView(hug1:Sprite):void;                                    //MethodID:1388, dispID:0
12967
12968                 function get visible():Boolean;                                             //MethodID:1389, dispID:0
12969
12970                 function post(hug1:IComment):void;                                          //MethodID:1390, dispID:0
12971
12972                 function postSystemMessage(hug1:IComment):void;                             //MethodID:1391, dispID:0
12973
12974                 function updateVisible(hug1:Boolean):void;                                  //MethodID:1392, dispID:0
12975
12976                 function get optionalCommentVisible():Boolean;                              //MethodID:1393, dispID:0
12977
12978                 function set optionalCommentVisible(hug1:Boolean):void;                     //MethodID:1394, dispID:0
12979
12980                 //constructor
12981                 public function IHirobaPlayer();                                            //MethodID:1395, dispID:0
12982         }
12983 }
12984
12985 //■script088■
12986
12987 package jp.nicovideo.nicoplayer.hiroba{
12988
12989         import flash.display.Sprite
12990         import flash.errors.IllegalOperationError
12991         import jp.nicovideo.hiroba.IHirobaConnector
12992         import jp.nicovideo.hiroba.events.HirobaErrorEvent
12993         import jp.nicovideo.hiroba.events.HirobaEvent
12994         import jp.nicovideo.hiroba.models.IHirobaComment
12995         import jp.nicovideo.marquee.models.info.IMarqueeInfo
12996         import jp.nicovideo.nicoplayer.hiroba.models.HirobaComment
12997         import jp.nicovideo.nicoplayer.hiroba.view.HirobaCommentListName
12998         import jp.nicovideo.nicoplayer.hiroba.view.HirobaCommentPlayer
12999         import jp.nicovideo.nicoplayer.models.IPlayerConfig
13000         import jp.nicovideo.nicoplayer.models.SystemMessage
13001         import jp.nicovideo.nicoplayer.models.comment.Command
13002         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
13003         import jp.nicovideo.nicoplayer.models.comment.IComment
13004         import jp.nicovideo.util.Assert
13005         import jp.nicovideo.util.CrossSharedObject
13006         import jp.nicovideo.util.Functions
13007         import jp.nicovideo.util.TimeUtils
13008         import jp.nicovideo.util.events.EventResult
13009         import jp.nicovideo.util.events.event_receiver
13010         import jp.nicovideo.util.events.event_sender
13011         import jp.nicovideo.util.loka.__MSG__
13012         import jp.nicovideo.util.storage.LocalStorage
13013
13014         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
13015         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
13016
13017         //■class(instance)_index:103
13018         public class HirobaPlayer extends Object
13019                         implements EventSender, IHirobaPlayer
13020         {
13021                 //static constructor
13022                 public static function HirobaPlayer$cinit()
13023                 {       //MethodID:1397, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
13024                 }
13025
13026                 //constructor
13027                 public function HirobaPlayer(hug1:IPlayerConfig, hug2:Boolean)
13028                 {       //MethodID:1398, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 111
13029                         this.onHirobaPlayerInitialized = new Functions();
13030                         this.onHirobaPlayerVisibleUpdated = new Functions();
13031                         this.onHirobaPlayerOptionalCommentVisibleUpdated = new Functions();
13032                         this.onHirobaPlayerError = new Functions();
13033                         this._onClickedLink = new Functions();
13034                         this._so = CrossSharedObject.getStorage("jp.nicovideo.nicoplayer.hiroba.HirobaPlayer");
13035
13036                         super();
13037
13038                         this._playerConfig = hug1;
13039                         this._isPremium = hug2;
13040
13041                         if(this._so.data.optionalCommentVisible == undefined){
13042                                 this._so.data.optionalCommentVisible = true;
13043
13044                                 this._so.flush();
13045                         }
13046                 }
13047
13048                 //variables/etc.
13049                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onHirobaPlayerInitialized:Functions;//slotID:0
13050                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onHirobaPlayerVisibleUpdated:Functions;//slotID:0
13051                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onHirobaPlayerOptionalCommentVisibleUpdated:Functions;//slotID:0
13052                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onHirobaPlayerError:Functions;//slotID:0
13053                 private const _onClickedLink:Functions;                         //slotID:0
13054                 private var _so:LocalStorage;                                   //slotID:0
13055                 private var _playerConfig:IPlayerConfig;                        //slotID:0
13056                 private var _activeNicowari:IMarqueeInfo;                       //slotID:0
13057                 private var _isInitialized:Boolean = false;                     //slotID:0
13058                 private var _visible:Boolean = false;                           //slotID:0
13059                 private var _isPremium:Boolean = false;                         //slotID:0
13060                 private var _isNicowariFull:Boolean = false;                    //slotID:0
13061                 private var _isVisibleByNicowari:Boolean = false;               //slotID:0
13062                 private var _connector:IHirobaConnector;                        //slotID:0
13063                 private var _commentPlayer:HirobaCommentPlayer;                 //slotID:0
13064
13065                 private function getListName(hug1:IComment):String
13066                 {       //MethodID:1399, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 9
13067                         return HirobaCommentListName.HIROBA;
13068                 }
13069
13070                 public function inializeView(hug1:Sprite):void
13071                 {       //MethodID:1400, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 51
13072                         this._commentPlayer = new HirobaCommentPlayer(hug1, this._playerConfig, this._isPremium);
13073
13074                         this._commentPlayer.commentLayer.onPlayerConfigOptionalCommentVisibleUpdated(this.optionalCommentVisible);
13075                 }
13076
13077                 public function post(hug1:IComment):void
13078                 {       //MethodID:1402, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 67
13079                         internal var comment:IComment;                                  //slotID:1
13080
13081                         comment = hug1;
13082
13083                         if(!this._isInitialized) throw new IllegalOperationError("HirobaPlayer.post: HirobaPlayer is not initialized.");
13084                         Assert.assert(this._connector, "HirobaPlayer.post: hirobaAgent has been set yet.");
13085                         this._connector.post(function(hug1:Boolean):void{       //MethodID:1401, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 45
13086                                 var hug2:String = (hug1 ? __MSG__("広場へのコメントに成功") : __MSG__("広場へのコメントに失敗"));
13087
13088                                 SystemMessage.instance.informln(hug2);
13089                         }, new HirobaComment(comment));
13090                 }
13091
13092                 public function postSystemMessage(hug1:IComment):void
13093                 {       //MethodID:1404, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 67
13094                         internal var comment:IComment;                                  //slotID:1
13095
13096                         comment = hug1;
13097
13098                         if(!this._isInitialized) throw new IllegalOperationError("HirobaPlayer.postSystemMessage: HirobaPlayer is not initialized.");
13099                         Assert.assert(this._connector, "HirobaPlayer.post: hirobaAgent has been set yet.");
13100                         this._connector.post(function(hug1:Boolean):void{       //MethodID:1403, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
13101                         }, new HirobaComment(comment));
13102                 }
13103
13104                 public function updateVisible(hug1:Boolean):void
13105                 {       //MethodID:1405, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 107
13106                         if(!this._isInitialized) throw new IllegalOperationError("HirobaPlayer.updateVisible: HirobaPlayer is not initialized.");
13107
13108                         if(this._visible == hug1) return;
13109
13110                         this._visible = hug1;
13111
13112                         this.updateVolume();
13113
13114                         this._commentPlayer.commentLayer.visibleEnabled = hug1;
13115
13116                         onHirobaPlayerVisibleUpdated.apply(hug1);
13117                         this._commentPlayer.commentLayer.onPlayerConfigCommentVisibleUpdated(this._playerConfig.commentVisible);
13118                 }
13119
13120                 private function updateVolume(hug1:Number=-1.0):void
13121                 {       //MethodID:1406, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 75
13122                         if(!this._isInitialized) return;
13123
13124                         if(!this._visible || this._isNicowariFull){
13125                                 hug1 = 0;
13126                         }else if(hug1 < 0){
13127                                 hug1 = (this._playerConfig.isMute ? 0 : this._playerConfig.volume);
13128                         }
13129                 }
13130
13131                 public function get eventNames():Array
13132                 {       //MethodID:1407, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 21
13133                         var hug1:Array = ["onHirobaPlayerInitialized", "onHirobaPlayerVisibleUpdated", "onHirobaPlayerOptionalCommentVisibleUpdated", "onHirobaPlayerError"];
13134                         return hug1;
13135                 }
13136
13137                 public function get visible():Boolean
13138                 {       //MethodID:1408, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13139                         return this._visible;
13140                 }
13141
13142                 public function get optionalCommentVisible():Boolean
13143                 {       //MethodID:1409, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
13144                         return this._so.data.optinalCommentVisible;
13145                 }
13146
13147                 public function set optionalCommentVisible(hug1:Boolean):void
13148                 {       //MethodID:1410, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 47
13149                         this._so.data.optinalCommentVisible = hug1;
13150
13151                         this._so.flush();
13152                         this._commentPlayer.commentLayer.onPlayerConfigOptionalCommentVisibleUpdated(hug1);
13153                 }
13154
13155                 public function get onClickedLink():Functions
13156                 {       //MethodID:1411, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13157                         return this._onClickedLink;
13158                 }
13159
13160                 public function set connector(hug1:IHirobaConnector):void
13161                 {       //MethodID:1415, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 146
13162                         internal var connector:IHirobaConnector;                        //slotID:1
13163                         internal var onErrorOccurred:Function;                          //slotID:2
13164
13165                         onErrorOccurred = null;
13166                         connector = hug1;
13167                         onErrorOccurred = function():void{      //MethodID:1412, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 38
13168                                 if(_visible) updateVisible(false);
13169                                 onHirobaPlayerError.apply();
13170                         };
13171
13172                         this._connector = connector;
13173
13174                         this._connector.addEventListener(HirobaEvent.RECEIVED_COMMENT, function(hug1:HirobaEvent):void{ //MethodID:1413, LocalCount= 8 , MaxScope= 0, MaxStack= 4, CodeLength= 243
13175                                 var hug7:String = null;
13176
13177                                 if(!hug1.comment) return;
13178
13179                                 var hug2:IHirobaComment = hug1.comment;
13180                                 var hug3:CommentBuilder = new CommentBuilder();
13181                                 hug3.message = hug2.message;
13182                                 hug3.command = new Command(hug2.mail, hug2.isPremium);
13183                                 hug3.isPremium = hug2.isPremium;
13184                                 hug3.date = hug2.date;
13185                                 hug3.justPosted = hug2.yourpost;
13186                                 var hug4:IComment = hug3.make();
13187                                 hug3 = new CommentBuilder(hug4);
13188                                 hug3.vpos = TimeUtils.now().time;
13189                                 var hug5:IComment = hug3.make();
13190                                 var hug6:String = getListName(hug5);
13191
13192                                 if(_commentPlayer && _visible) _commentPlayer.addComment(hug5, hug6);
13193
13194                                 if(!_visible && _playerConfig.clockMessageVisible && (hug6 == HirobaCommentListName.HIROBA)){
13195                                         hug7 = hug4.message.substr(0, 10);
13196
13197                                         if(hug4.message.length > 10) hug7 += "...";
13198                                 }
13199                         });
13200                         this._connector.addEventListener(HirobaEvent.RECEIVED_DATA, function(hug1:HirobaEvent):void{    //MethodID:1414, LocalCount= 3 , MaxScope= 0, MaxStack= 1, CodeLength= 8
13201                                 var hug2:Object = hug1.data;
13202                         });
13203                         this._connector.addEventListener(HirobaErrorEvent.CONNECTION_FAIL, onErrorOccurred);
13204                         this._connector.addEventListener(HirobaErrorEvent.DISCONNECTED, onErrorOccurred);
13205
13206                         this._isInitialized = true;
13207
13208                         if(this._activeNicowari != null) onMarqueeClientNicowariStarted(this._activeNicowari);
13209                 }
13210
13211                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
13212                 {       //MethodID:1416, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 33
13213                         this.updateVolume(hug1 ? 0 : this._playerConfig.volume);
13214
13215                         return EventResult.THROUGH;
13216                 }
13217
13218                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
13219                 {       //MethodID:1417, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 33
13220                         this.updateVolume(this._playerConfig.isMute ? 0 : hug1);
13221
13222                         return EventResult.THROUGH;
13223                 }
13224
13225                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigCommentVisibleUpdated(hug1:Boolean):EventResult
13226                 {       //MethodID:1418, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 27
13227                         return this._commentPlayer.commentLayer.onPlayerConfigCommentVisibleUpdated(hug1);
13228                 }
13229
13230                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariStarted(hug1:IMarqueeInfo):EventResult
13231                 {       //MethodID:1419, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 78
13232                         this._activeNicowari = hug1;
13233
13234                         if(this._isInitialized){
13235                                 if(hug1.jumpToHirobaEnabled){
13236                                         if(!this._visible) this.updateVisible(true);
13237
13238                                         this._isNicowariFull = true;
13239
13240                                         this.updateVolume(0);
13241                                 }else if(this._visible){
13242                                         this._isVisibleByNicowari = true;
13243
13244                                         this.updateVisible(false);
13245                                 }
13246                         }
13247
13248                         return EventResult.THROUGH;
13249                 }
13250
13251                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onMarqueeClientNicowariEnded(hug1:IMarqueeInfo):EventResult
13252                 {       //MethodID:1420, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 65
13253                         this._activeNicowari = null;
13254
13255                         if(this._isInitialized){
13256                                 if(hug1.jumpToHirobaEnabled && this._visible){
13257                                         this.updateVisible(false);
13258                                 }else if(this._isVisibleByNicowari){
13259                                         this.updateVisible(true);
13260                                 }
13261                         }
13262
13263                         return EventResult.THROUGH;
13264                 }
13265         }
13266 }
13267
13268 //■script089■
13269
13270 package jp.nicovideo.nicoplayer.models{
13271
13272         //■class(instance)_index:104
13273         public interface IVideoTag
13274         {
13275                 //static constructor
13276                 public static function IVideoTag$cinit()
13277                 {       //MethodID:1422, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
13278                 }
13279
13280                 //variables/etc.
13281                 function get tag():String;                                                  //MethodID:1423, dispID:0
13282
13283                 function get hasLocked():Boolean;                                           //MethodID:1424, dispID:0
13284
13285                 function get isCategory():Boolean;                                          //MethodID:1425, dispID:0
13286
13287                 //constructor
13288                 public function IVideoTag();                                                //MethodID:1426, dispID:0
13289         }
13290 }
13291
13292 //■script090■
13293
13294 package jp.nicovideo.nicoplayer.models{
13295
13296         //■class(instance)_index:105
13297         public interface IVideoDetail
13298         {
13299                 //static constructor
13300                 public static function IVideoDetail$cinit()
13301                 {       //MethodID:1428, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
13302                 }
13303
13304                 //variables/etc.
13305                 function get title():String;                                                //MethodID:1429, dispID:0
13306
13307                 function get description():String;                                          //MethodID:1430, dispID:0
13308
13309                 function get postedAt():Date;                                               //MethodID:1431, dispID:0
13310
13311                 function get tags():Array;                                                  //MethodID:1432, dispID:0
13312
13313                 function get viewCount():Number;                                            //MethodID:1433, dispID:0
13314
13315                 //constructor
13316                 public function IVideoDetail();                                             //MethodID:1434, dispID:0
13317         }
13318 }
13319
13320 //■script091■
13321
13322 package jp.nicovideo.nicoplayer.models{
13323
13324         import jp.nicovideo.util.external.JSConnector
13325
13326         //■class(instance)_index:106
13327         public class VideoDetail extends Object implements IVideoDetail
13328         {
13329                 //static constructor
13330                 public static function VideoDetail$cinit()
13331                 {       //MethodID:1436, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
13332                         EXTERNAL_VIDEO_NAME = "Video";
13333                 }
13334
13335                 //static variables/etc.
13336                 public static const EXTERNAL_VIDEO_NAME:String = "Video";       //slotID:1
13337
13338                 //constructor
13339                 public function VideoDetail(hug1:String=null, hug2:Object=null)
13340                 {       //MethodID:1437, LocalCount= 10 , MaxScope= 1, MaxStack= 10, CodeLength= 308
13341                         var hug3:* = undefined;
13342                         var hug6:String = null;
13343                         var hug7:Array = null;
13344                         this._tags = [];
13345
13346                         super();
13347
13348                         if(hug2){
13349                                 hug3 = hug2;
13350                         }else{
13351                                 hug3 = JSConnector.call("function() {return " + EXTERNAL_VIDEO_NAME + ";}");
13352                         }
13353
13354                         if(hug3 == null) return;
13355
13356                         this._title = hug3.title;
13357                         this._description = hug3.description;
13358                         this._viewCount = parseInt(hug3.viewCount);
13359                         var hug4:Array = hug3.tags;
13360                         var hug5:Array = hug3.lockedTags;
13361
13362                         for each(hug6 in hug4){
13363                                 this._tags.push(new _VideoTag(hug6, (hug5.indexOf(hug6) >= 0), (hug1 == hug6)));
13364                         }
13365
13366                         hug7 = new RegExp("^(\d{4})\/(\d{2})\/(\d{2})\s(\d{2}):(\d{2}):(\d{2})$").exec(hug3.postedAt);
13367
13368                         if(hug7 && (hug7.length >= 7)) this._postedAt = new Date(parseInt(hug7[1]), (parseInt(hug7[2]) - 1), parseInt(hug7[3]), parseInt(hug7[4]), parseInt(hug7[5]), parseInt(hug7[6]));
13369                 }
13370
13371                 //variables/etc.
13372                 private var _title:String;                                      //slotID:0
13373                 private var _description:String;                                //slotID:0
13374                 private var _postedAt:Date;                                     //slotID:0
13375                 private var _tags:Array;                                        //slotID:0
13376                 private var _viewCount:Number;                                  //slotID:0
13377
13378                 public function get title():String
13379                 {       //MethodID:1438, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13380                         return this._title;
13381                 }
13382
13383                 public function get description():String
13384                 {       //MethodID:1439, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13385                         return this._description;
13386                 }
13387
13388                 public function get postedAt():Date
13389                 {       //MethodID:1440, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13390                         return this._postedAt;
13391                 }
13392
13393                 public function get tags():Array
13394                 {       //MethodID:1441, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13395                         return this._tags;
13396                 }
13397
13398                 public function get viewCount():Number
13399                 {       //MethodID:1442, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13400                         return this._viewCount;
13401                 }
13402         }
13403 }
13404
13405
13406 //■class(instance)_index:107
13407 //private
13408 class _VideoTag extends Object implements IVideoTag
13409 {
13410         //static constructor
13411         public static function _VideoTag$cinit()
13412         {       //MethodID:1443, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
13413         }
13414
13415         //constructor
13416         public function _VideoTag(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
13417         {       //MethodID:1444, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
13418                 super();
13419
13420                 this._tag = hug1;
13421                 this._hasLocked = hug2;
13422                 this._isCategory = hug3;
13423         }
13424
13425         //variables/etc.
13426         private var _tag:String;                                        //slotID:0
13427         private var _hasLocked:Boolean;                                 //slotID:0
13428         private var _isCategory:Boolean;                                //slotID:0
13429
13430         public function get tag():String
13431         {       //MethodID:1445, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13432                 return this._tag;
13433         }
13434
13435         public function get hasLocked():Boolean
13436         {       //MethodID:1446, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13437                 return this._hasLocked;
13438         }
13439
13440         public function get isCategory():Boolean
13441         {       //MethodID:1447, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13442                 return this._isCategory;
13443         }
13444 }
13445
13446 //■script092■
13447
13448 package jp.nicovideo.nicoscript{
13449
13450         import flash.display.DisplayObjectContainer
13451         import flash.display.Sprite
13452         import jp.nicovideo.nicoplayer.models.comment.ICommand
13453         import jp.nicovideo.nicoplayer.models.video.IChildVideo
13454         import jp.nicovideo.nicoplayer.views.comment.ICommentLayerView
13455
13456         //■class(instance)_index:108
13457         public interface INicoSClient
13458         {
13459                 //static constructor
13460                 public static function INicoSClient$cinit()
13461                 {       //MethodID:1449, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
13462                 }
13463
13464                 //variables/etc.
13465                 function get graphicsLayer():DisplayObjectContainer;                        //MethodID:1450, dispID:0
13466
13467                 function get graphicsMaskLayer():DisplayObjectContainer;                    //MethodID:1451, dispID:0
13468
13469                 function get commentLayer():DisplayObjectContainer;                         //MethodID:1452, dispID:0
13470
13471                 function get ownerCommentLayer():DisplayObjectContainer;                    //MethodID:1453, dispID:0
13472
13473                 function get BGMLayer():DisplayObjectContainer;                             //MethodID:1454, dispID:0
13474
13475                 function get postDisabled():Boolean;                                        //MethodID:1455, dispID:0
13476
13477                 function set postDisabled(hug1:Boolean):void;                               //MethodID:1456, dispID:0
13478
13479                 function get seekDisabled():Boolean;                                        //MethodID:1457, dispID:0
13480
13481                 function set seekDisabled(hug1:Boolean):void;                               //MethodID:1458, dispID:0
13482
13483                 function get commentLayerView():ICommentLayerView;                          //MethodID:1459, dispID:0
13484
13485                 function seek(hug1:int, hug2:Function=null):void;                           //MethodID:1460, dispID:0
13486
13487                 function createEmptySprite():Sprite;                                        //MethodID:1461, dispID:0
13488
13489                 function showJumpMessage(hug1:Function, hug2:String, hug3:Boolean=false):void;//MethodID:1462, dispID:0
13490
13491                 function jumpVideo(hug1:String, hug2:String, hug3:String, hug4:int, hug5:int, hug6:String, hug7:Boolean, hug8:Object):void;//MethodID:1463, dispID:0
13492
13493                 function pause(hug1:Function, hug2:Function, hug3:int):void;                //MethodID:1464, dispID:0
13494
13495                 function showButtons(hug1:Array):void;                                      //MethodID:1465, dispID:0
13496
13497                 function getBGMVideo(hug1:String):IChildVideo;                              //MethodID:1466, dispID:0
13498
13499                 function setCommentReverseEnabled(hug1:String, hug2:Boolean):void;          //MethodID:1467, dispID:0
13500
13501                 function parseCommand(hug1:String):ICommand;                                //MethodID:1468, dispID:0
13502
13503                 function postButtonComment(hug1:String, hug2:String, hug3:Boolean):void;    //MethodID:1469, dispID:0
13504
13505                 function playCM(hug1:String, hug2:String, hug3:Boolean, hug4:Number):void;  //MethodID:1470, dispID:0
13506
13507                 function updateWideNicoSLayer(hug1:Boolean=false):void;                     //MethodID:1471, dispID:0
13508
13509                 function updateVideoMask(hug1:Boolean=false):void;                          //MethodID:1472, dispID:0
13510
13511                 //constructor
13512                 public function INicoSClient();                                             //MethodID:1473, dispID:0
13513         }
13514 }
13515
13516 //■script093■
13517
13518 package jp.nicovideo.nicoscript{
13519
13520         import flash.display.DisplayObjectContainer
13521         import flash.display.MovieClip
13522         import flash.display.Sprite
13523         import flash.events.MouseEvent
13524         import flash.events.TimerEvent
13525         import flash.utils.Timer
13526         import flash.utils.clearTimeout
13527         import flash.utils.setTimeout
13528         import jp.nicovideo.marquee.INicoMarqueePlayer
13529         import jp.nicovideo.marquee.MarqueeInterruptType
13530         import jp.nicovideo.marquee.models.MarqueePriorityConstants
13531         import jp.nicovideo.nicoplayer.models.IPlayerConfig
13532         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
13533         import jp.nicovideo.nicoplayer.models.SystemMessage
13534         import jp.nicovideo.nicoplayer.models.api.IJumper
13535         import jp.nicovideo.nicoplayer.models.comment.Command
13536         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
13537         import jp.nicovideo.nicoplayer.models.comment.ICommand
13538         import jp.nicovideo.nicoplayer.models.comment.ICommentList
13539         import jp.nicovideo.nicoplayer.models.comment.ICommentRouter
13540         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
13541         import jp.nicovideo.nicoplayer.models.video.IChildVideo
13542         import jp.nicovideo.nicoplayer.models.video.IVideoController
13543         import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
13544         import jp.nicovideo.nicoplayer.tpls.shutter.CommentShutterConstants
13545         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
13546         import jp.nicovideo.nicoplayer.views.VideoLayerManager
13547         import jp.nicovideo.nicoplayer.views.comment.CommentLayer
13548         import jp.nicovideo.nicoplayer.views.comment.CommentLayerID
13549         import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
13550         import jp.nicovideo.nicoplayer.views.comment.ICommentLayerView
13551         import jp.nicovideo.util.ObjectUtils
13552         import jp.nicovideo.util.TimeUtils
13553         import jp.nicovideo.util.events.EventResult
13554         import jp.nicovideo.util.loka.__MSG__
13555
13556         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
13557
13558         //■class(instance)_index:109
13559         public class NicoSClient extends Object implements INicoSClient
13560         {
13561                 //static constructor
13562                 public static function NicoSClient$cinit()
13563                 {       //MethodID:1475, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 27
13564                         _PLAY_FROM_DELAY_FOR_IGNORING_NICOS_JUMP = (5 * 1000);
13565                         _USER_NICOWARI_PRIORITY = MarqueePriorityConstants.USER_NICOWARI;
13566                 }
13567
13568                 //static variables/etc.
13569                 private static const _PLAY_FROM_DELAY_FOR_IGNORING_NICOS_JUMP:Number = 5000.0;//slotID:1
13570                 private static const _USER_NICOWARI_PRIORITY:Number = 3.0;      //slotID:2
13571
13572                 //constructor
13573                 public function NicoSClient(hug1:INicoSPlayer, hug2:IVideoController, hug3:VideoLayerManager, hug4:IJumper, hug5:NicoFlashVars, hug6:IControllerShutter, hug7:CommentLayerView, hug8:ICommentList, hug9:IPlayerConfig, hug10:Boolean)
13574                 {       //MethodID:1476, LocalCount= 12 , MaxScope= 1, MaxStack= 3, CodeLength= 179
13575                         this._bgmVideos = {};
13576                         this._cmVideos = {};
13577                         this._jumpHistory = {};
13578                         this._timer = new Timer(40);
13579                         this._delayedActionsToVideo = {};
13580
13581                         super();
13582
13583                         this._scriptPlayer = hug1;
13584                         this._videoController = hug2;
13585                         this._layerMgr = hug3;
13586                         this._jumper = hug4;
13587                         this._flashvars = hug5;
13588                         this._commentShutter = hug6;
13589                         this._clv = hug7;
13590                         this._nicosCommentList = hug8;
13591                         this._playerConfig = hug9;
13592                         this._isPlaylist = hug10;
13593                         var hug11:Object = (this._jumper.tossedObject as Object);
13594
13595                         if(hug11 && hug11.jumpHistory) this._jumpHistory = hug11.jumpHistory;
13596                         this._timer.addEventListener(TimerEvent.TIMER, this._nicosPlayerSeekHandler);
13597                         this._layerMgr.nicosLayer.parent.addEventListener(MouseEvent.CLICK, this._nicosLayerClickHandler);
13598                 }
13599
13600                 //variables/etc.
13601                 private var _scriptPlayer:INicoSPlayer;                         //slotID:0
13602                 private var _bgmVideos:Object;                                  //slotID:0
13603                 private var _cmVideos:Object;                                   //slotID:0
13604                 private var _layerMgr:VideoLayerManager;                        //slotID:0
13605                 private var _jumper:IJumper;                                    //slotID:0
13606                 private var _jumpHistory:Object;                                //slotID:0
13607                 private var _commentShutter:IControllerShutter;                 //slotID:0
13608                 private var _audioShutter:IControllerShutter;                   //slotID:0
13609                 private var _flashvars:NicoFlashVars;                           //slotID:0
13610                 private var _clv:CommentLayerView;                              //slotID:0
13611                 private var _commentLayer:CommentLayer;                         //slotID:0
13612                 private var _timer:Timer;                                       //slotID:0
13613                 private var _delayedActionsToVideo:Object;                      //slotID:0
13614                 private var _nicosCommentList:ICommentList;                     //slotID:0
13615                 private var _commentRouter:ICommentRouter;                      //slotID:0
13616                 private var _marqueePlayer:INicoMarqueePlayer;                  //slotID:0
13617                 private var _videoController:IVideoController;                  //slotID:0
13618                 private var _playerConfig:IPlayerConfig;                        //slotID:0
13619                 private var _isPlaylist:Boolean = false;                        //slotID:0
13620
13621                 private function _nicosPlayerSeekHandler(hug1:TimerEvent):void
13622                 {       //MethodID:1477, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
13623                         this._seekNicoSPlayer(this._currentVpos);
13624                 }
13625
13626                 private function _nicosLayerClickHandler(hug1:MouseEvent):void
13627                 {       //MethodID:1478, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 16
13628                         this._callDelayedAction(null, "@ポーズ", this._delayedActionsToVideo);
13629                 }
13630
13631                 public function setup():void
13632                 {       //MethodID:1479, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 45
13633                         this._scriptPlayer.setup(this);
13634
13635                         this._scriptPlayer.volume = (this._playerConfig.isMute ? 0 : this._playerConfig.volume);
13636                 }
13637
13638                 public function clear():void
13639                 {       //MethodID:1480, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 151
13640                         this._bgmVideos = null;
13641                         this._cmVideos = null;
13642
13643                         this._commentShutter.open(CommentShutterConstants.SHUTTER_NICOS_ATPAUSE);
13644                         this._commentShutter.open(CommentShutterConstants.SHUTTER_NICOS_COMMENT_DISABLED);
13645                         this._audioShutter.open(AudioShutterConstants.SHUTTER_SEEK);
13646
13647                         if(this._timer.hasEventListener(TimerEvent.TIMER)){
13648                                 this._timer.stop();
13649                                 this._timer.reset();
13650                                 this._timer.removeEventListener(TimerEvent.TIMER, this._nicosPlayerSeekHandler);
13651                         }
13652
13653                         if(this._layerMgr.nicosLayer.parent.hasEventListener(MouseEvent.CLICK)) this._layerMgr.nicosLayer.parent.removeEventListener(MouseEvent.CLICK, this._nicosLayerClickHandler);
13654                 }
13655
13656                 public function setBGMVideos(hug1:Object, hug2:Object):void
13657                 {       //MethodID:1481, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 13
13658                         this._bgmVideos = hug1;
13659                         this._cmVideos = hug2;
13660                 }
13661
13662                 public function seek(hug1:int, hug2:Function=null):void
13663                 {       //MethodID:1482, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
13664                         if(!this._isPlaylist) this._videoController.seek(hug1);
13665                 }
13666
13667                 public function createEmptySprite():Sprite
13668                 {       //MethodID:1483, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
13669                         return new Sprite();
13670                 }
13671
13672                 public function showJumpMessage(hug1:Function, hug2:String, hug3:Boolean=false):void
13673                 {       //MethodID:1485, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 84
13674                         internal var f:Function;                                        //slotID:1
13675                         internal var msg:String;                                        //slotID:2
13676                         internal var play:Boolean = false;                              //slotID:3
13677                         internal var isStopped:Boolean;                                 //slotID:4
13678                         internal var func:Function;                                     //slotID:5
13679
13680                         isStopped = false;
13681                         f = hug1;
13682                         msg = hug2;
13683                         play = hug3;
13684                         isStopped = false;
13685
13686                         if(this._videoController.isPlaying){
13687                                 isStopped = true;
13688
13689                                 this._videoController.stop();
13690                         }
13691
13692                         func = function():void{ //MethodID:1484, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 34
13693                                 f();
13694
13695                                 if(isStopped && play) _videoController.play();
13696                         };
13697
13698                         SystemMessage.instance.informJumpMessage(func, msg);
13699                 }
13700
13701                 public function jumpVideo(hug1:String, hug2:String, hug3:String, hug4:int, hug5:int, hug6:String, hug7:Boolean, hug8:Object):void
13702                 {       //MethodID:1487, LocalCount= 10 , MaxScope= 2, MaxStack= 3, CodeLength= 225
13703                         internal var msg:String;                                        //slotID:1
13704                         internal var jumpHash:String;                                   //slotID:2
13705                         internal var videoID:String;                                    //slotID:3
13706                         internal var from:int;                                          //slotID:4
13707                         internal var length:int;                                        //slotID:5
13708                         internal var returnMsg:String;                                  //slotID:6
13709                         internal var newWindow:Boolean;                                 //slotID:7
13710                         internal var obj:Object;                                        //slotID:8
13711                         internal var do_jump:Function;                                  //slotID:9
13712
13713                         do_jump = null;
13714                         msg = hug1;
13715                         jumpHash = hug2;
13716                         videoID = hug3;
13717                         from = hug4;
13718                         length = hug5;
13719                         returnMsg = hug6;
13720                         newWindow = hug7;
13721                         obj = hug8;
13722                         do_jump = function():void{      //MethodID:1486, LocalCount= 2 , MaxScope= 0, MaxStack= 12, CodeLength= 140
13723                                 var hug1:Object = {};
13724
13725                                 if(from > 0) hug1.from = from;
13726
13727                                 if(length > 0){
13728                                         hug1.returnid = _flashvars.watchID;
13729                                         hug1.length = length;
13730                                         hug1.returnto = (_currentVpos / 1000);
13731
13732                                         if(returnMsg != "") hug1.returnmsg = returnMsg;
13733
13734                                         _jumpHistory[videoID] = true;
13735                                 }else{
13736                                         _jumpHistory = {};
13737                                 }
13738
13739                                 _jumper.jump(videoID, hug1, newWindow, {jumpObj:obj, jumpFrom:_flashvars.watchID, jumpHistory:_jumpHistory, jumpHash:jumpHash});
13740                         };
13741
13742                         if(this._flashvars.thumbFlashVars || this._isPlaylist || (videoID == this._flashvars.watchID) || this._jumpHistory.hasOwnProperty(videoID)) return;
13743
13744                         if(this._flashvars.watchFlashVars && this._flashvars.watchFlashVars.isOwnerThreadEditMode){
13745                                 SystemMessage.instance.alert(videoID + " へのジャンプが発生しました。");
13746
13747                                 return;
13748                         }
13749
13750                         this._videoController.stop();
13751
13752                         if(msg != ""){
13753                                 this.showJumpMessage(do_jump, msg);
13754                         }else{
13755                                 do_jump();
13756                         }
13757                 }
13758
13759                 public function pause(hug1:Function, hug2:Function, hug3:int):void
13760                 {       //MethodID:1490, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 193
13761                         internal var startHandler:Function;                             //slotID:1
13762                         internal var finishHandler:Function;                            //slotID:2
13763                         internal var wait:int;                                          //slotID:3
13764                         internal var timerID:uint;                                      //slotID:4
13765
13766                         timerID = 0;
13767                         startHandler = hug1;
13768                         finishHandler = hug2;
13769                         wait = hug3;
13770
13771                         if(this._isPlaylist) return;
13772                         startHandler();
13773                         this._videoController.stop();
13774                         this._commentShutter.close(CommentShutterConstants.SHUTTER_NICOS_ATPAUSE, __MSG__("投稿者にポーズされたため、コメントできません"));
13775
13776                         if(this._commentLayer.getLayer(CommentLayerID.MAIN)) this._commentLayer.getLayer(CommentLayerID.MAIN).visible = false;
13777
13778                         if(this._commentLayer.getLayer(CommentLayerID.OPTION)) this._commentLayer.getLayer(CommentLayerID.OPTION).visible = false;
13779
13780                         this._delayedActionsToVideo["@ポーズ"] = function(hug1:*):Boolean{ //MethodID:1488, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 123
13781                                 if(hug1 == "stop") return false;
13782                                 clearTimeout(timerID);
13783
13784                                 if(!hug1) _videoController.play();
13785                                 _commentShutter.open(CommentShutterConstants.SHUTTER_NICOS_ATPAUSE);
13786
13787                                 if(_commentLayer.getLayer(CommentLayerID.MAIN)) _commentLayer.getLayer(CommentLayerID.MAIN).visible = true;
13788
13789                                 if(_commentLayer.getLayer(CommentLayerID.OPTION)) _commentLayer.getLayer(CommentLayerID.OPTION).visible = true;
13790                                 finishHandler();
13791
13792                                 return true;
13793                         };
13794
13795                         if(wait > 0){
13796                                 timerID = setTimeout(function():void{   //MethodID:1489, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 15
13797                                         _callDelayedAction(null, "@ポーズ", _delayedActionsToVideo);
13798                                 }, wait);
13799                         }
13800                 }
13801
13802                 public function showButtons(hug1:Array):void
13803                 {       //MethodID:1491, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
13804                 }
13805
13806                 public function getBGMVideo(hug1:String):IChildVideo
13807                 {       //MethodID:1492, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
13808                         return (this._bgmVideos[hug1] || null);
13809                 }
13810
13811                 public function getCMVideo(hug1:String):MovieClip
13812                 {       //MethodID:1493, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
13813                         return (this._cmVideos[hug1] || null);
13814                 }
13815
13816                 public function setCommentReverseEnabled(hug1:String, hug2:Boolean):void
13817                 {       //MethodID:1494, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 13
13818                         this._clv.setReverseMode(hug1, hug2);
13819                 }
13820
13821                 public function parseCommand(hug1:String):ICommand
13822                 {       //MethodID:1495, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
13823                         return new Command(hug1);
13824                 }
13825
13826                 public function postButtonComment(hug1:String, hug2:String, hug3:Boolean):void
13827                 {       //MethodID:1496, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 89
13828                         var hug4:CommentBuilder = new CommentBuilder();
13829                         hug4.message = hug1;
13830                         hug4.command = new Command("from_button " + hug2 + (hug3 ? "" : " invisible"));
13831                         hug4.vpos = this._currentVpos;
13832                         hug4.date = TimeUtils.now();
13833
13834                         this._commentRouter.post(hug4.make());
13835                 }
13836
13837                 public function playCM(hug1:String, hug2:String, hug3:Boolean, hug4:Number):void
13838                 {       //MethodID:1500, LocalCount= 6 , MaxScope= 2, MaxStack= 7, CodeLength= 302
13839                         internal var videoID:String;                                    //slotID:1
13840                         internal var link:String;                                       //slotID:2
13841                         internal var pause:Boolean;                                     //slotID:3
13842                         internal var volume:Number;                                     //slotID:4
13843                         internal var cm:MovieClip;                                      //slotID:5
13844                         internal var clickHandler:Function;                             //slotID:6
13845                         internal var finishHandler:Function;                            //slotID:7
13846
13847                         clickHandler = null;
13848                         finishHandler = null;
13849                         videoID = hug1;
13850                         link = hug2;
13851                         pause = hug3;
13852                         volume = hug4;
13853                         clickHandler = function():void{ //MethodID:1497, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 31
13854                                 if(link == "") return;
13855                                 _videoController.stop();
13856                                 _jumper.jump(link, {}, true);
13857                         };
13858
13859                         finishHandler = function():void{        //MethodID:1498, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 22
13860                                 if(pause) _callDelayedAction(null, "@CM", _delayedActionsToVideo);
13861                         };
13862
13863                         if(this._flashvars.thumbFlashVars) return;
13864
13865                         if(this._flashvars.watchFlashVars && this._flashvars.watchFlashVars.isOwnerThreadEditMode){
13866                                 SystemMessage.instance.alert("ユーザーニコ割 " + videoID + " の再生が発生しました。");
13867
13868                                 return;
13869                         }
13870
13871                         cm = this.getCMVideo(videoID);
13872
13873                         if(!cm) return;
13874
13875                         if(!this._marqueePlayer){
13876                                 SystemMessage.instance.informln(__MSG__("マーキーの準備が完了していません"));
13877
13878                                 return;
13879                         }
13880
13881                         if(this._playerConfig.aspectRatio == ScreenAspectRatio.NORMAL){
13882                                 SystemMessage.instance.informClockMessage(__MSG__("ユーザーニコ割:[[videoID]]", videoID));
13883                         }else{
13884                                 SystemMessage.instance.informClockMessage(videoID);
13885                         }
13886
13887                         this._marqueePlayer.interruptContent(MarqueeInterruptType.CM, cm, (volume / 100), clickHandler, finishHandler, _USER_NICOWARI_PRIORITY);
13888
13889                         if(pause){
13890                                 this._videoController.stop();
13891
13892                                 this._delayedActionsToVideo["@CM"] = function(hug1:*):Boolean{        //MethodID:1499, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 31
13893                                         if(hug1 == "stop") return false;
13894
13895                                         pause = false;
13896
13897                                         if(!hug1) _videoController.play();
13898
13899                                         return true;
13900                                 };
13901                         }
13902                 }
13903
13904                 public function updateWideNicoSLayer(hug1:Boolean=false):void
13905                 {       //MethodID:1501, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
13906                         this._layerMgr.updateWideNicoSLayer(hug1);
13907                 }
13908
13909                 public function updateVideoMask(hug1:Boolean=false):void
13910                 {       //MethodID:1502, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
13911                         this._layerMgr.updateVideoMask(hug1);
13912                 }
13913
13914                 private function _seekNicoSPlayer(hug1:Number):void
13915                 {       //MethodID:1503, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
13916                         this._scriptPlayer.seek(hug1);
13917                 }
13918
13919                 private function _clearDelayedActions(hug1:*, hug2:Object):void
13920                 {       //MethodID:1504, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 45
13921                         var hug3:String = null;
13922
13923                         for(hug3 in hug2){
13924                                 this._callDelayedAction(hug1, hug3, hug2);
13925                         }
13926                 }
13927
13928                 private function _callDelayedAction(hug1:*, hug2:String, hug3:Object):void
13929                 {       //MethodID:1506, LocalCount= 5 , MaxScope= 2, MaxStack= 2, CodeLength= 33
13930                         internal var ctrl:*;                                            //slotID:1
13931                         internal var id:String;                                         //slotID:2
13932                         internal var delayedActions:Object;                             //slotID:3
13933
13934                         ctrl = hug1;
13935                         id = hug2;
13936                         delayedActions = hug3;
13937
13938                         ObjectUtils.callLater(function():void{  //MethodID:1505, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 45
13939                                 var hug1:Function = delayedActions[id];
13940
13941                                 if((hug1 is Function) && hug1(ctrl)) delete delayedActions[id];
13942                         });
13943                 }
13944
13945                 public function get player():INicoSPlayer
13946                 {       //MethodID:1507, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13947                         return this._scriptPlayer;
13948                 }
13949
13950                 public function get jumper():IJumper
13951                 {       //MethodID:1508, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13952                         return this._jumper;
13953                 }
13954
13955                 public function get commentLayer():DisplayObjectContainer
13956                 {       //MethodID:1509, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
13957                         return this._layerMgr.commentLayer;
13958                 }
13959
13960                 public function get ownerCommentLayer():DisplayObjectContainer
13961                 {       //MethodID:1510, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
13962                         return this._commentLayer.getLayer(CommentLayerID.OWNER);
13963                 }
13964
13965                 public function get graphicsLayer():DisplayObjectContainer
13966                 {       //MethodID:1511, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
13967                         return this._layerMgr.nicosLayer;
13968                 }
13969
13970                 public function get graphicsMaskLayer():DisplayObjectContainer
13971                 {       //MethodID:1512, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
13972                         return this._layerMgr.nicosMaskLayer;
13973                 }
13974
13975                 public function get BGMLayer():DisplayObjectContainer
13976                 {       //MethodID:1513, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
13977                         return this._layerMgr.nicosBGMLayer;
13978                 }
13979
13980                 private function get _currentVpos():Number
13981                 {       //MethodID:1514, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
13982                         return this._videoController.videoWrapper.vpos;
13983                 }
13984
13985                 public function get commentLayerView():ICommentLayerView
13986                 {       //MethodID:1515, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
13987                         return this._clv;
13988                 }
13989
13990                 public function set commentLayerView_(hug1:CommentLayerView):void
13991                 {       //MethodID:1516, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
13992                         this._clv = hug1;
13993                 }
13994
13995                 public function get postDisabled():Boolean
13996                 {       //MethodID:1517, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
13997                         return this._commentShutter.isClosing(CommentShutterConstants.SHUTTER_NICOS_COMMENT_DISABLED);
13998                 }
13999
14000                 public function set postDisabled(hug1:Boolean):void
14001                 {       //MethodID:1518, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 74
14002                         if(hug1){
14003                                 this._commentShutter.close(CommentShutterConstants.SHUTTER_NICOS_COMMENT_DISABLED, __MSG__("投稿者によってコメントが禁止されています。"));
14004                         }else{
14005                                 this._commentShutter.open(CommentShutterConstants.SHUTTER_NICOS_COMMENT_DISABLED);
14006                         }
14007
14008                         this._commentLayer.visibleEnabled = (this._scriptPlayer.isCommentInvisible && !hug1);
14009                 }
14010
14011                 public function get seekDisabled():Boolean
14012                 {       //MethodID:1519, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
14013                         return this._audioShutter.isClosing(AudioShutterConstants.SHUTTER_SEEK);
14014                 }
14015
14016                 public function set seekDisabled(hug1:Boolean):void
14017                 {       //MethodID:1520, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 50
14018                         if(hug1){
14019                                 this._audioShutter.close(AudioShutterConstants.SHUTTER_SEEK, __MSG__("投稿者によってシークが禁止されています。"));
14020                         }else{
14021                                 this._audioShutter.open(AudioShutterConstants.SHUTTER_SEEK);
14022                         }
14023                 }
14024
14025                 public function set commentShutter(hug1:IControllerShutter):void
14026                 {       //MethodID:1521, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14027                         this._commentShutter = hug1;
14028                 }
14029
14030                 public function set audioShutter(hug1:IControllerShutter):void
14031                 {       //MethodID:1522, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14032                         this._audioShutter = hug1;
14033                 }
14034
14035                 public function set commentLayer_(hug1:CommentLayer):void
14036                 {       //MethodID:1523, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14037                         this._commentLayer = hug1;
14038                 }
14039
14040                 public function set marqueePlayer(hug1:INicoMarqueePlayer):void
14041                 {       //MethodID:1524, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14042                         this._marqueePlayer = hug1;
14043                 }
14044
14045                 public function set commentRouter(hug1:ICommentRouter):void
14046                 {       //MethodID:1525, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14047                         this._commentRouter = hug1;
14048                 }
14049
14050                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
14051                 {       //MethodID:1526, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 36
14052                         this._clearDelayedActions("play", this._delayedActionsToVideo);
14053                         this._timer.start();
14054                         this._scriptPlayer.play();
14055
14056                         return EventResult.THROUGH;
14057                 }
14058
14059                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
14060                 {       //MethodID:1527, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 36
14061                         this._clearDelayedActions("stop", this._delayedActionsToVideo);
14062                         this._timer.stop();
14063                         this._scriptPlayer.pause();
14064
14065                         return EventResult.THROUGH;
14066                 }
14067
14068                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
14069                 {       //MethodID:1528, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 26
14070                         this._clearDelayedActions("seek", this._delayedActionsToVideo);
14071                         this._seekNicoSPlayer(hug1);
14072
14073                         return EventResult.THROUGH;
14074                 }
14075
14076                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
14077                 {       //MethodID:1529, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 60
14078                         this._clearDelayedActions("seek", this._delayedActionsToVideo);
14079                         this._seekNicoSPlayer(0x7FFFFFFF);
14080
14081                         if(!hug1){
14082                                 this._clearDelayedActions("end", this._delayedActionsToVideo);
14083                                 this._timer.stop();
14084                                 this._scriptPlayer.pause();
14085                         }
14086
14087                         return EventResult.THROUGH;
14088                 }
14089
14090                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
14091                 {       //MethodID:1530, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 54
14092                         if(!this._scriptPlayer) return EventResult.THROUGH;
14093
14094                         if(hug1){
14095                                 this._scriptPlayer.volume = 0;
14096                         }else{
14097                                 this._scriptPlayer.volume = this._playerConfig.volume;
14098                         }
14099
14100                         return EventResult.THROUGH;
14101                 }
14102
14103                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
14104                 {       //MethodID:1531, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 30
14105                         if(!this._scriptPlayer) return EventResult.THROUGH;
14106
14107                         this._scriptPlayer.volume = hug1;
14108                         return EventResult.THROUGH;
14109                 }
14110
14111                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
14112                 {       //MethodID:1532, LocalCount= 6 , MaxScope= 1, MaxStack= 6, CodeLength= 101
14113                         var hug5:Array = this._scriptPlayer.commit(hug4, hug1, hug2, hug3);
14114
14115                         if(this._videoController.videoWrapper.isInitialized && this._flashvars.watchFlashVars && this._flashvars.watchFlashVars.isOwnerThreadEditMode) this._scriptPlayer.seek(this._videoController.videoWrapper.vpos);
14116
14117                         return EventResult.replace([hug1, hug2, hug5, hug3, hug4]);
14118                 }
14119         }
14120 }
14121
14122 //■script094■
14123
14124 package jp.nicovideo.nicoplayer.models.api{
14125
14126         import jp.nicovideo.util.Functions
14127
14128         //■class(instance)_index:110
14129         public interface IVideoContainer
14130         {
14131                 //static constructor
14132                 public static function IVideoContainer$cinit()
14133                 {       //MethodID:1534, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
14134                 }
14135
14136                 //variables/etc.
14137                 function get vpos():Number;                                                 //MethodID:1535, dispID:0
14138
14139                 function get currentChildVideoName():String;                                //MethodID:1536, dispID:0
14140
14141                 function childVideoNameOf(hug1:Number):String;                              //MethodID:1537, dispID:0
14142
14143                 function get onChildVideoChanged():Functions;                               //MethodID:1538, dispID:0
14144
14145                 //constructor
14146                 public function IVideoContainer();                                          //MethodID:1539, dispID:0
14147         }
14148 }
14149
14150 //■script095■
14151
14152 package jp.nicovideo.nicoplayer.models.api{
14153
14154         //■class(instance)_index:111
14155         public interface ICapturableVideoContainer implements IVideoContainer
14156         {
14157                 //static constructor
14158                 public static function ICapturableVideoContainer$cinit()
14159                 {       //MethodID:1541, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
14160                 }
14161
14162                 //variables/etc.
14163                 function getCapture(hug1:Function, hug2:Number=Number.NaN):void;            //MethodID:1542, dispID:0
14164
14165                 function get mainVideoLength():Number;                                      //MethodID:1543, dispID:0
14166
14167                 //constructor
14168                 public function ICapturableVideoContainer();                                //MethodID:1544, dispID:0
14169         }
14170 }
14171
14172 //■script096■
14173
14174 package jp.nicovideo.nicoplayer.models.video{
14175
14176         import flash.display.BitmapData
14177         import flash.display.DisplayObject
14178         import flash.display.Sprite
14179         import flash.events.Event
14180         import flash.geom.Matrix
14181         import flash.utils.setTimeout
14182         import jp.nicovideo.nicoplayer.config.NicoConfig
14183         import jp.nicovideo.nicoplayer.models.api.IGetFLV
14184         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
14185         import jp.nicovideo.util.Functions
14186         import jp.nicovideo.util.ObjectUtils
14187         import jp.nicovideo.util.test
14188         import jp.nicovideo.util.events.EventBarrier
14189         import jp.nicovideo.util.events.event_sender
14190
14191         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
14192         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
14193
14194         //■class(instance)_index:114
14195         public class VideoWrapper extends Object
14196                         implements IVideo, IVideoContainer, ICapturableVideoContainer, EventSender
14197         {
14198                 //static constructor
14199                 public static function VideoWrapper$cinit()
14200                 {       //MethodID:1556, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
14201                         _GET_CAPTURE_DELAY_FRAMES = 10;
14202                 }
14203
14204                 //static variables/etc.
14205                 private static const _GET_CAPTURE_DELAY_FRAMES:int = 10;        //slotID:1
14206
14207                 //constructor
14208                 public function VideoWrapper(hug1:Sprite, hug2:IGetFLV, hug3:NicoConfig, hug4:NicoFlashVars, hug5:Number=0.0, hug6:Number=0.0)
14209                 {       //MethodID:1557, LocalCount= 7 , MaxScope= 1, MaxStack= 10, CodeLength= 429
14210                         this.onChangedVideoStatus = new Functions();
14211                         this._onVideoLoadError = new Functions();
14212                         this._onChildVideoChanged = new Functions();
14213                         this.onVideoStarted = new Functions();
14214                         this.onVideoPlayed = new Functions();
14215                         this.onVideoStopped = new Functions();
14216                         this.onVideoEnded = new Functions();
14217                         this.onVideoSeeked = new Functions();
14218                         this.onVideoSeeking = new Functions();
14219                         this.onVideoLengthFixed = new Functions();
14220                         this.onVideoError = new Functions();
14221                         this.onInitMetaInfo = new Functions();
14222                         this.__CHILDREN_ORDER = [ChildVideoName.MAIN_VIDEO, ChildVideoName.USER_SPONSOR];
14223                         this._childVideos = [];
14224
14225                         super();
14226
14227                         this._getFLV = hug2;
14228                         this._videoURL = hug2.videoURL;
14229                         this._isDeleted = ((hug2.deleted != 8) && (hug2.deleted != 0));
14230                         this._flashVars = hug4;
14231
14232                         if(hug4.watchFlashVars && hug4.watchFlashVars.isNoMovie){
14233                                 this._mainVideo = new DummyVideo(hug2.videoLength);
14234                         }else if((hug4.videoType == VideoType.SWF) && !this._isDeleted){
14235                                 if(hug4.waitsSWFVideoInit){
14236                                         this._mainVideo = new SWFVideo(hug2.videoURL, hug1, hug2.videoLength, true, hug4.videoTitle, hug3, hug4.originalVideoID, hug2.isAS3);
14237                                 }else{
14238                                         this._mainVideo = new SWFVideo(hug2.videoURL, hug1, hug2.videoLength, false, "", null, "", hug2.isAS3);
14239                                 }
14240                         }else{
14241                                 this._mainVideo = new FLVVideo(hug2.videoURL, hug1, hug2.videoLength, hug5, hug6, hug2.videoProtocol, hug2.videoFileName, hug2.fmsToken);
14242                         }
14243
14244                         this._mainVideo.layer.visible = false;
14245
14246                         this._initializeVideoEventHandler(this._mainVideo);
14247                         this._childVideos.push(new _ChildVideoContainer(ChildVideoName.MAIN_VIDEO, this._mainVideo));
14248
14249                         this._seekLocker = new _SeekLocker(this.seek);
14250                 }
14251
14252                 //variables/etc.
14253                 public const onChangedVideoStatus:Functions;                    //slotID:0
14254                 private const _onVideoLoadError:Functions;                      //slotID:0
14255                 private const _onChildVideoChanged:Functions;                   //slotID:0
14256                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoStarted:Functions;//slotID:0
14257                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoPlayed:Functions;//slotID:0
14258                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoStopped:Functions;//slotID:0
14259                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoEnded:Functions;//slotID:0
14260                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoSeeked:Functions;//slotID:0
14261                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoSeeking:Functions;//slotID:0
14262                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoLengthFixed:Functions;//slotID:0
14263                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoError:Functions;//slotID:0
14264                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onInitMetaInfo:Functions;//slotID:0
14265                 private const __CHILDREN_ORDER:Array;                           //slotID:0
14266                 private var _childVideos:Array;                                 //slotID:0
14267                 private var _currentChildIndex:uint = 0;                        //slotID:0
14268                 private var _currentVolume:Number = 0.0;                        //slotID:0
14269                 private var _videoURL:String = "";                              //slotID:0
14270                 private var _mainVideo:IChildVideo;                             //slotID:0
14271                 private var _errorVideo:IChildVideo;                            //slotID:0
14272                 private var _getFLV:IGetFLV;                                    //slotID:0
14273                 private var _flashVars:NicoFlashVars;                           //slotID:0
14274                 private var _seekLocker:_SeekLocker;                            //slotID:0
14275                 private var _captureVPos:Number = Number.NaN;                   //slotID:0
14276                 private var _lastCapturedVPos:Number = Number.NaN;              //slotID:0
14277                 private var _capturedBitmapData:BitmapData;                     //slotID:0
14278                 private var _hasPlayed:Boolean = false;                         //slotID:0
14279                 private var _isDeleted:Boolean = false;                         //slotID:0
14280                 private var _hasSponsorVideo:Boolean = false;                   //slotID:0
14281                 private var _isShowSponsorVideoOnLoop:Boolean = false;          //slotID:0
14282                 private var _isLoop:Boolean = false;                            //slotID:0
14283                 private var _hasLoaded:Boolean = false;                         //slotID:0
14284                 private var _isLoadRetryable:Boolean = false;                   //slotID:0
14285                 private var _hasTimeOutError:Boolean = false;                   //slotID:0
14286                 private var _isNoSeekEvent:Boolean = false;                     //slotID:0
14287
14288                 public function play():void
14289                 {       //MethodID:1558, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 57
14290                         if(!this._hasPlayed){
14291                                 this._hasPlayed = true;
14292
14293                                 onVideoStarted.apply();
14294                         }
14295
14296                         this.__currentChild.layer.visible = true;
14297
14298                         this.__currentChild.play();
14299                 }
14300
14301                 public function stop():void
14302                 {       //MethodID:1559, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
14303                         this.__currentChild.stop();
14304                 }
14305
14306                 public function close():void
14307                 {       //MethodID:1560, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 51
14308                         var hug1:_ChildVideoContainer = null;
14309
14310                         this.killEvents();
14311
14312                         for each(hug1 in this._childVideos){
14313                                 hug1.video.close();
14314                         }
14315                 }
14316
14317                 public function seek(hug1:Number):void
14318                 {       //MethodID:1561, LocalCount= 7 , MaxScope= 1, MaxStack= 3, CodeLength= 168
14319                         var hug5:IChildVideo = null;
14320                         var hug6:IChildVideo = null;
14321
14322                         if(this._seekLocker.isLock){
14323                                 this._seekLocker.stockSeek(hug1);
14324
14325                                 return;
14326                         }
14327
14328                         var hug2:int = this._childVideoIndexOf(hug1);
14329
14330                         if(hug2 < 0) return;
14331
14332                         if(this._currentChildIndex != hug2){
14333                                 hug5 = this._childVideos[this._currentChildIndex].video;
14334
14335                                 this._setCurrentChildIndex(hug2);
14336                                 hug5.stop();
14337                         }
14338
14339                         var hug3:Number = 0;
14340                         var hug4:uint = 0;
14341
14342                         while(hug4 < hug2){
14343                                 hug6 = this._childVideos[hug4].video;
14344                                 hug3 += hug6.length;
14345                                 hug4++;
14346                         }
14347
14348                         this.__currentChild.seek(hug1 - hug3);
14349                         this._setEveryVideoSilent();
14350
14351                         this.__currentChild.volume = this._currentVolume;
14352                 }
14353
14354                 public function load(hug1:Function):void
14355                 {       //MethodID:1572, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 204
14356                         internal var f:Function;                                        //slotID:1
14357                         internal var wholeSucceeded:Boolean;                            //slotID:2
14358                         internal var barrier:EventBarrier;                              //slotID:3
14359                         internal var retryCounter:uint;                                 //slotID:4
14360                         internal var container:_ChildVideoContainer;                    //slotID:5
14361                         internal var mainBarrier:Function;                              //slotID:6
14362                         internal var onMainVideoLoaded:Function;                        //slotID:7
14363                         internal var initializeSuplimentionVideo:Function;              //slotID:8
14364
14365                         wholeSucceeded = false;
14366                         container = null;
14367                         mainBarrier = null;
14368                         onMainVideoLoaded = null;
14369                         f = hug1;
14370                         onMainVideoLoaded = function(hug1:Boolean):void{        //MethodID:1567, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 302
14371                                 internal var succeeded:Boolean;                                 //slotID:1
14372                                 internal var dummyVideo:DummyVideo;                             //slotID:2
14373                                 internal var mainIndex:int;                                     //slotID:3
14374                                 internal var dummyContainer:_ChildVideoContainer;               //slotID:4
14375                                 internal var flvVideo:FLVVideo;                                 //slotID:5
14376
14377                                 flvVideo = null;
14378                                 succeeded = hug1;
14379
14380                                 if(succeeded){
14381                                         if(!_isDeleted){
14382                                                 mainBarrier.apply(null, null);
14383
14384                                                 return;
14385                                         }
14386
14387                                         flvVideo = (_mainVideo as FLVVideo);
14388
14389                                         if(flvVideo.hasLengthSet){
14390                                                 initializeSuplimentionVideo(flvVideo, mainBarrier);
14391                                         }else{
14392                                                 flvVideo.onVideoLengthFixed.add(function(hug1:Number):void{     //MethodID:1563, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 43
14393                                                         if((_getFLV.videoLength - hug1) > 1000){
14394                                                                 initializeSuplimentionVideo(flvVideo, mainBarrier);
14395                                                         }else{
14396                                                                 mainBarrier.apply(null, null);
14397                                                         }
14398                                                 });
14399                                         }
14400
14401                                         return;
14402                                 }
14403
14404                                 if(_isLoadRetryable && ((retryCounter++) < VideoConstants.RETRY_LOADING_COUNT)){
14405                                         setTimeout(function():void{     //MethodID:1564, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 11
14406                                                 mainVideo.load(onMainVideoLoaded);
14407                                         }, VideoConstants.RETRY_LOADING_INTERVAL);
14408
14409                                         return;
14410                                 }
14411
14412                                 wholeSucceeded = false;
14413                                 dummyVideo = new DummyVideo(_getFLV.videoLength);
14414                                 mainIndex = -1;
14415
14416                                 _childVideos.every(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):Boolean{   //MethodID:1565, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 25
14417                                         if(hug1.name == ChildVideoName.MAIN_VIDEO){
14418                                                 mainIndex = hug2;
14419                                                 return false;
14420                                         }
14421
14422                                         return true;
14423                                 });
14424
14425                                 if(mainIndex < 0) throw new Error("VideoWrapper.load:onMainVideoLoaded:");
14426
14427                                 dummyContainer = new _ChildVideoContainer(ChildVideoName.MAIN_VIDEO, dummyVideo);
14428                                 _childVideos.splice(mainIndex, 1, dummyContainer);
14429                                 _initializeVideoEventHandler(dummyVideo);
14430
14431                                 _errorVideo = _mainVideo;
14432                                 _mainVideo = dummyVideo;
14433
14434                                 _mainVideo.load(function(hug1:Boolean):void{    //MethodID:1566, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 10
14435                                         mainBarrier.apply(null, null);
14436                                 });
14437                         };
14438
14439                         initializeSuplimentionVideo = function(hug1:FLVVideo, hug2:Function):void{      //MethodID:1569, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 123
14440                                 internal var mainVideo:FLVVideo;                                //slotID:1
14441                                 internal var callback:Function;                                 //slotID:2
14442                                 internal var rest:Number;                                       //slotID:3
14443                                 internal var supplemention:DummyVideo;                          //slotID:4
14444                                 internal var container:_ChildVideoContainer;                    //slotID:5
14445
14446                                 mainVideo = hug1;
14447                                 callback = hug2;
14448                                 rest = (_getFLV.videoLength - length);
14449
14450                                 if(rest <= 0){
14451                                         callback.apply(null, null);
14452
14453                                         return;
14454                                 }
14455
14456                                 supplemention = new DummyVideo(rest);
14457                                 container = new _ChildVideoContainer(ChildVideoName.DELETED_SUPPLEMENTION, supplemention);
14458
14459                                 _initializeVideoEventHandler(supplemention);
14460                                 _childVideos.push(container);
14461                                 supplemention.load(function(hug1:Boolean):void{ //MethodID:1568, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 10
14462                                         callback.apply(null, null);
14463                                 });
14464                         };
14465
14466                         wholeSucceeded = true;
14467                         barrier = new EventBarrier();
14468                         retryCounter = 0;
14469                         this._hasLoaded = true;
14470
14471                         for each(container in this._childVideos){
14472                                 if(container.video == this.mainVideo) break;
14473                                 container.video.load(barrier.bind(function(hug1:Boolean):void{  //MethodID:1570, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 13
14474                                         if(!hug1) wholeSucceeded = false;
14475                                 }));
14476                         }
14477
14478                         this.mainVideo.load(onMainVideoLoaded);
14479
14480                         mainBarrier = barrier.bind(function():void{     //MethodID:1562, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
14481                         });
14482                         barrier.finish(function():void{ //MethodID:1571, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 35
14483                                 if(!wholeSucceeded) onVideoLoadError.apply();
14484
14485                                 volume = _currentVolume;
14486
14487                                 f(wholeSucceeded);
14488                         });
14489                 }
14490
14491                 public function appendVideo(hug1:String, hug2:IChildVideo):void
14492                 {       //MethodID:1573, LocalCount= 8 , MaxScope= 1, MaxStack= 5, CodeLength= 219
14493                         var hug7:_ChildVideoContainer = null;
14494                         var hug3:int = this.__CHILDREN_ORDER.indexOf(hug1);
14495
14496                         if(hug3 == (-1)) throw new ArgumentError("VideoWrapper.appendVideo: invalid videoName.");
14497
14498                         if(hug1 == ChildVideoName.USER_SPONSOR) this._hasSponsorVideo = true;
14499
14500                         hug2.volume = this._currentVolume;
14501
14502                         this._initializeVideoEventHandler(hug2);
14503
14504                         var hug4:_ChildVideoContainer = new _ChildVideoContainer(hug1, hug2);
14505                         var hug5:Boolean = false;
14506                         var hug6:uint = 0;
14507
14508                         while(hug6 < this._childVideos.length){
14509                                 hug7 = this._childVideos[hug6];
14510
14511                                 if(hug3 < this.__CHILDREN_ORDER.indexOf(hug7.name)){
14512                                         this._childVideos.splice(hug6, 1, hug4, hug7);
14513
14514                                         hug5 = true;
14515                                         break;
14516                                 }
14517
14518                                 hug6++;
14519                         }
14520
14521                         if(!hug5) this._childVideos.push(hug4);
14522                         this._setCurrentChildIndex(this._currentChildIndex);
14523                         onVideoLengthFixed.apply(this.length, this._hasSponsorVideo);
14524                 }
14525
14526                 public function killEvents():void
14527                 {       //MethodID:1574, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 233
14528                         this.onChangedVideoStatus.clear();
14529                         onVideoStarted.clear();
14530                         onVideoPlayed.clear();
14531                         onVideoStopped.clear();
14532                         onVideoEnded.clear();
14533                         onVideoSeeked.clear();
14534                         onVideoSeeking.clear();
14535                         onVideoLengthFixed.clear();
14536                         onVideoError.clear();
14537                         onInitMetaInfo.clear();
14538                         this.onVideoBufferingStarted.clear();
14539                         this.onVideoLoadComplete.clear();
14540                         this.onVideoLoadError.clear();
14541                 }
14542
14543                 private function _initializeVideoEventHandler(hug1:IChildVideo):void
14544                 {       //MethodID:1584, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 286
14545                         internal var video:IChildVideo;                                 //slotID:1
14546                         internal var _onChildVideoEnded:Function;                       //slotID:2
14547
14548                         video = hug1;
14549                         _onChildVideoEnded = function(hug1:IChildVideo):void{   //MethodID:1575, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 136
14550                                 if(!__nextContainer){
14551                                         onVideoEnded.apply(_isLoop);
14552
14553                                         return;
14554                                 }
14555
14556                                 var hug2:IChildVideo = _childVideos[_currentChildIndex].video;
14557                                 var hug3:IChildVideo = _childVideos[_currentChildIndex + 1].video;
14558
14559                                 hug3.seek(0);
14560                                 _setCurrentChildIndex(_currentChildIndex + 1);
14561
14562                                 hug2.layer.visible = false;
14563                                 hug3.layer.visible = true;
14564
14565                                 hug2.stop();
14566                                 hug3.play();
14567                                 hug2.seek(0);
14568                                 _setEveryVideoSilent();
14569
14570                                 __currentChild.volume = _currentVolume;
14571                         };
14572
14573                         video.onVideoEnded.clear();
14574                         video.onVideoSeeked.clear();
14575                         video.onVideoSeeking.clear();
14576                         video.onVideoPlayed.clear();
14577                         video.onVideoStopped.clear();
14578                         video.onVideoError.clear();
14579
14580                         if(video is DummyVideo) DummyVideo(video).initEvent();
14581
14582                         if(video is FLVVideo){
14583                                 FLVVideo(video).onVideoLengthFixed.clear();
14584                                 FLVVideo(video).onInitMetaInfo.clear();
14585                         }
14586
14587                         video.onVideoEnded.add(function(hug1:Boolean):void{     //MethodID:1576, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 25
14588                                 _onChildVideoEnded(video);
14589                                 onChangedVideoStatus.apply(video.videoPlayerStatus);
14590                         });
14591                         video.onVideoSeeked.add(function(hug1:Number):void{     //MethodID:1577, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 44
14592                                 if(_isNoSeekEvent) return;
14593
14594                                 if(__currentChild == video) onVideoSeeked.apply(vpos);
14595                         });
14596                         video.onVideoSeeking.add(function(hug1:Number):void{    //MethodID:1578, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 57
14597                                 if(_isNoSeekEvent) return;
14598
14599                                 if(__currentChild == video){
14600                                         onVideoSeeking.apply(vpos);
14601                                         onChangedVideoStatus.apply(video.videoPlayerStatus);
14602                                 }
14603                         });
14604                         video.onVideoPlayed.add(function():void{        //MethodID:1579, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 46
14605                                 if(__currentChild == video){
14606                                         onVideoPlayed.apply();
14607                                         onChangedVideoStatus.apply(video.videoPlayerStatus);
14608                                 }
14609                         });
14610                         video.onVideoStopped.add(function():void{       //MethodID:1580, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 46
14611                                 if(__currentChild == video){
14612                                         onVideoStopped.apply();
14613                                         onChangedVideoStatus.apply(video.videoPlayerStatus);
14614                                 }
14615                         });
14616                         video.onVideoError.add(function(hug1:String):void{      //MethodID:1581, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
14617                                 onVideoError.apply(hug1);
14618                         });
14619
14620                         if(video is FLVVideo){
14621                                 (video as FLVVideo).onInitMetaInfo.add(function():void{ //MethodID:1582, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 23
14622                                         onInitMetaInfo.apply();
14623                                 });
14624                                 (video as FLVVideo).onVideoLengthFixed.add(function(hug1:Number):void{  //MethodID:1583, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 29
14625                                         onVideoLengthFixed.apply(length, _hasSponsorVideo);
14626                                 });
14627                         }
14628                 }
14629
14630                 private function _setCurrentChildIndex(hug1:int):void
14631                 {       //MethodID:1586, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 98
14632                         internal var index:int;                                         //slotID:1
14633                         internal var container:_ChildVideoContainer;                    //slotID:2
14634
14635                         container = null;
14636                         index = hug1;
14637
14638                         for each(container in this._childVideos){
14639                                 container.video.layer.visible = false;
14640                         }
14641
14642                         this._currentChildIndex = index;
14643                         this.__currentChild.layer.visible = true;
14644
14645                         ObjectUtils.callLater(function():void{  //MethodID:1585, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 11
14646                                 _onChildVideoChanged.apply(currentChildVideoName);
14647                         });
14648                 }
14649
14650                 private function _setEveryVideoSilent():void
14651                 {       //MethodID:1588, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 18
14652                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1587, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 21
14653                                 if(hug1.video.isInitialized) hug1.video.volume = 0;
14654                         });
14655                 }
14656
14657                 public function resize(hug1:Number, hug2:Number):void
14658                 {       //MethodID:1589, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 13
14659                         this.__currentChild.resize(hug1, hug2);
14660                 }
14661
14662                 public function getCapture(hug1:Function, hug2:Number=Number.NaN):void
14663                 {       //MethodID:1592, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 308
14664                         internal var callback:Function;                                 //slotID:1
14665                         internal var vpos:Number = Number.NaN;                          //slotID:2
14666                         internal var takeABitmapData:Function;                          //slotID:3
14667                         internal var childIdx:int;                                      //slotID:4
14668                         internal var targetVideo_:IChildVideo;                          //slotID:5
14669                         internal var bmpData:BitmapData;                                //slotID:6
14670                         internal var targetChildVideoIndex:int;                         //slotID:7
14671                         internal var targetVideo:IChildVideo;                           //slotID:8
14672                         internal var count:int;                                         //slotID:9
14673
14674                         childIdx = 0;
14675                         targetVideo_ = null;
14676                         bmpData = null;
14677                         targetChildVideoIndex = 0;
14678                         targetVideo = null;
14679                         count = 0;
14680                         callback = hug1;
14681                         vpos = hug2;
14682                         takeABitmapData = function(hug1:IChildVideo):BitmapData{        //MethodID:1590, LocalCount= 6 , MaxScope= 0, MaxStack= 7, CodeLength= 249
14683                                 if((hug1.layer == null) || (hug1.source == null) || (hug1.contentWidth <= 0) || (hug1.contentHeight <= 0)) return null;
14684
14685                                 var hug2:BitmapData = new BitmapData(hug1.contentWidth, hug1.contentHeight, false, 0);
14686                                 var hug3:Number = hug1.source.scaleX;
14687                                 var hug4:Number = hug1.source.scaleY;
14688
14689                                 if((hug1.source.width == hug1.layer.width) && (hug1.source.height == hug1.layer.height)){
14690                                         hug3 = 1;
14691                                         hug4 = 1;
14692                                 }
14693
14694                                 var hug5:Number = hug1.vpos;
14695
14696                                 hug2.draw(hug1.source, new Matrix(hug3, 0, 0, hug4));
14697
14698                                 if(!_capturedBitmapData){
14699                                         _lastCapturedVPos = hug5;
14700                                         _capturedBitmapData = hug2;
14701                                 }else if(Math.abs(_captureVPos - _lastCapturedVPos) > Math.abs(_captureVPos - hug5)){
14702                                         _lastCapturedVPos = hug5;
14703                                         _capturedBitmapData = hug2;
14704                                 }
14705
14706                                 _seekLocker.endLock();
14707
14708                                 return _capturedBitmapData;
14709                         };
14710
14711                         if(!isNaN(vpos)){
14712                                 childIdx = this._childVideoIndexOf(vpos);
14713
14714                                 if(childIdx < 0) throw new ArgumentError("VideoWrapper.getCapture: vpos(2nd argument) does not exist in this video container.");
14715
14716                                 if(childIdx == this._currentChildIndex) throw new ArgumentError("VideoWrapper.getCapture: You cannot get capture whose vpos is current playing child. Use methods of 'currentChildVideoName' and 'childVideoNameOf'.");
14717                         }
14718
14719                         this._seekLocker.startLock();
14720
14721                         if(isNaN(vpos)){
14722                                 targetVideo_ = _ChildVideoContainer(this._childVideos[this._currentChildIndex]).video;
14723                                 bmpData = takeABitmapData(targetVideo_);
14724
14725                                 callback.apply(null, [bmpData]);
14726
14727                                 return;
14728                         }
14729
14730                         this._captureVPos = vpos;
14731                         targetChildVideoIndex = this._childVideoIndexOf(vpos);
14732                         this._isNoSeekEvent = true;
14733                         targetVideo = _ChildVideoContainer(this._childVideos[targetChildVideoIndex]).video;
14734
14735                         targetVideo.seek(vpos);
14736
14737                         count = 0;
14738
14739                         targetVideo.layer.addEventListener(Event.ENTER_FRAME, function(hug1:Event, ...args):void{       //MethodID:1591, LocalCount= 6 , MaxScope= 0, MaxStack= 3, CodeLength= 83
14740                                 if((count++) <= _GET_CAPTURE_DELAY_FRAMES) return;
14741                                 targetVideo.layer.removeEventListener(Event.ENTER_FRAME, args.callee);
14742
14743                                 var hug3:BitmapData = takeABitmapData(targetVideo);
14744
14745                                 callback.apply(null, [hug3]);
14746
14747                                 _isNoSeekEvent = false;
14748                         });
14749                 }
14750
14751                 private function _childVideoIndexOf(hug1:Number):int
14752                 {       //MethodID:1593, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 77
14753                         var hug4:IChildVideo = null;
14754                         var hug2:Number = 0;
14755                         var hug3:uint = 0;
14756
14757                         while(hug3 < this._childVideos.length){
14758                                 hug4 = this._childVideos[hug3].video;
14759
14760                                 if(hug1 <= (hug2 + hug4.length)) return hug3;
14761
14762                                 hug2 += hug4.length;
14763                                 hug3++;
14764                         }
14765
14766                         return -1;
14767                 }
14768
14769                 public function childVideoNameOf(hug1:Number):String
14770                 {       //MethodID:1594, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 28
14771                         var hug2:int = this._childVideoIndexOf(hug1);
14772
14773                         if(hug2 < 0) return null;
14774
14775                         return this.__CHILDREN_ORDER[hug2];
14776                 }
14777
14778                 public function get eventNames():Array
14779                 {       //MethodID:1595, LocalCount= 2 , MaxScope= 1, MaxStack= 8, CodeLength= 33
14780                         var hug1:Array = ["onVideoStarted", "onVideoPlayed", "onVideoStopped", "onVideoSeeked", "onVideoSeeking", "onVideoEnded", "onVideoError", "onInitMetaInfo"];
14781                         return hug1;
14782                 }
14783
14784                 public function get url():String
14785                 {       //MethodID:1596, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14786                         return this._videoURL;
14787                 }
14788
14789                 public function get length():Number
14790                 {       //MethodID:1598, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 34
14791                         internal var length:Number;                                     //slotID:1
14792
14793                         length = NaN;
14794                         length = 0;
14795
14796                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1597, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 18
14797                                 length += hug1.video.length;
14798                         });
14799
14800                         return length;
14801                 }
14802
14803                 public function get mainVideo():IVideo
14804                 {       //MethodID:1599, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14805                         return this._mainVideo;
14806                 }
14807
14808                 public function get mainVideoLength():Number
14809                 {       //MethodID:1600, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14810                         return this._mainVideo.length;
14811                 }
14812
14813                 public function get errorVideo():IVideo
14814                 {       //MethodID:1601, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14815                         return this._errorVideo;
14816                 }
14817
14818                 public function get hasLoaded():Boolean
14819                 {       //MethodID:1602, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14820                         return this._hasLoaded;
14821                 }
14822
14823                 public function get hasPlayed():Boolean
14824                 {       //MethodID:1603, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14825                         return this._hasPlayed;
14826                 }
14827
14828                 public function set sponsorVisibleOnLoop(hug1:Boolean):void
14829                 {       //MethodID:1604, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14830                         this._isShowSponsorVideoOnLoop = hug1;
14831                 }
14832
14833                 public function set isRetryable(hug1:Boolean):void
14834                 {       //MethodID:1605, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
14835                         this._isLoadRetryable = hug1;
14836                 }
14837
14838                 public function get isPlaying():Boolean
14839                 {       //MethodID:1606, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14840                         return this.__currentChild.isPlaying;
14841                 }
14842
14843                 public function get isPausing():Boolean
14844                 {       //MethodID:1607, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14845                         return this.__currentChild.isPausing;
14846                 }
14847
14848                 public function get isSeeking():Boolean
14849                 {       //MethodID:1608, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14850                         return this.__currentChild.isSeeking;
14851                 }
14852
14853                 public function get isEnd():Boolean
14854                 {       //MethodID:1609, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14855                         return this.__currentChild.isEnd;
14856                 }
14857
14858                 public function get isBuffering():Boolean
14859                 {       //MethodID:1610, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14860                         return this.__currentChild.isBuffering;
14861                 }
14862
14863                 public function get mainTotalLength():Number
14864                 {       //MethodID:1612, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 50
14865                         internal var length:Number;                                     //slotID:1
14866
14867                         length = NaN;
14868
14869                         if(!this._isDeleted) return this._mainVideo.length;
14870
14871                         length = 0;
14872
14873                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1611, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 33
14874                                 if(hug1.name == ChildVideoName.USER_SPONSOR) return;
14875
14876                                 length += hug1.video.length;
14877                         });
14878
14879                         return length;
14880                 }
14881
14882                 public function get loadedLength():Number
14883                 {       //MethodID:1614, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 34
14884                         internal var loaded:Number;                                     //slotID:1
14885
14886                         loaded = NaN;
14887                         loaded = 0;
14888
14889                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1613, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 18
14890                                 loaded += hug1.video.loadedLength;
14891                         });
14892
14893                         return loaded;
14894                 }
14895
14896                 public function get vpos():Number
14897                 {       //MethodID:1615, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 70
14898                         if(!this.isInitialized) return 0;
14899
14900                         var hug1:Number = 0;
14901                         var hug2:uint = 0;
14902
14903                         while(hug2 < this._currentChildIndex){
14904                                 hug1 += (this._childVideos[hug2].video as IChildVideo).length;
14905                                 hug2++;
14906                         }
14907
14908                         return (hug1 + this.__currentChild.vpos);
14909                 }
14910
14911                 public function get isInitialized():Boolean
14912                 {       //MethodID:1617, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 32
14913                         internal var ret:Boolean;                                       //slotID:1
14914
14915                         ret = false;
14916                         ret = true;
14917
14918                         this._childVideos.every(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):Boolean{      //MethodID:1616, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 17
14919                                 ret = hug1.video.isInitialized;
14920                                 return ret;
14921                         });
14922
14923                         return ret;
14924                 }
14925
14926                 public function get isControllable():Boolean
14927                 {       //MethodID:1618, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14928                         return this.__currentChild.isControllable;
14929                 }
14930
14931                 public function set isLoop(hug1:Boolean):void
14932                 {       //MethodID:1620, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 42
14933                         internal var flag:Boolean;                                      //slotID:1
14934
14935                         flag = hug1;
14936
14937                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1619, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 9
14938                                 hug1.video.isLoop = false;
14939                         });
14940
14941                         this.__lastChild.isLoop = flag;
14942
14943                         this._isLoop = flag;
14944                 }
14945
14946                 public function set volume(hug1:Number):void
14947                 {       //MethodID:1622, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 40
14948                         internal var vol:Number;                                        //slotID:1
14949
14950                         vol = hug1;
14951                         this._currentVolume = vol;
14952
14953                         if(!this.isInitialized) return;
14954                         this._childVideos.forEach(function(hug1:_ChildVideoContainer, hug2:int, hug3:Array):void{       //MethodID:1621, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 22
14955                                 if(hug1.video.isInitialized) hug1.video.volume = _currentVolume;
14956                         });
14957                 }
14958
14959                 public function get videoPlayerStatus():String
14960                 {       //MethodID:1623, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14961                         return this.__currentChild.videoPlayerStatus;
14962                 }
14963
14964                 public function get layer():DisplayObject
14965                 {       //MethodID:1624, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14966                         return this.__currentChild.layer;
14967                 }
14968
14969                 public function get nakedDisplayObject():DisplayObject
14970                 {       //MethodID:1625, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14971                         return this.__currentChild.source;
14972                 }
14973
14974                 public function get onVideoBufferingStarted():Functions
14975                 {       //MethodID:1626, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14976                         return this._mainVideo.onVideoBufferingStarted;
14977                 }
14978
14979                 public function get onVideoLoadComplete():Functions
14980                 {       //MethodID:1627, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
14981                         return this._mainVideo.onVideoLoadComplete;
14982                 }
14983
14984                 public function get onVideoLoadError():Functions
14985                 {       //MethodID:1628, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
14986                         return this._onVideoLoadError;
14987                 }
14988
14989                 private function get __currentChild():IChildVideo
14990                 {       //MethodID:1629, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 40
14991                         var hug1:IChildVideo = null;
14992
14993                         if(this._childVideos[this._currentChildIndex]) hug1 = this._childVideos[this._currentChildIndex].video;
14994
14995                         return hug1;
14996                 }
14997
14998                 private function get __nextContainer():_ChildVideoContainer
14999                 {       //MethodID:1630, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 77
15000                         var hug1:int = (this._currentChildIndex + 1);
15001
15002                         if(this._childVideos.length <= hug1) return null;
15003
15004                         var hug2:_ChildVideoContainer = this._childVideos[hug1];
15005
15006                         if(this._isLoop && !this._isShowSponsorVideoOnLoop && (hug2.name == ChildVideoName.USER_SPONSOR)) return null;
15007
15008                         return hug2;
15009                 }
15010
15011                 private function get __lastChild():IChildVideo
15012                 {       //MethodID:1631, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 21
15013                         return this._childVideos[this._childVideos.length - 1].video;
15014                 }
15015
15016                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get volume():Number
15017                 {       //MethodID:1632, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 16
15018                         return this.__currentChild.volume;
15019                 }
15020
15021                 public function get contentWidth():int
15022                 {       //MethodID:1633, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
15023                         return this._mainVideo.contentWidth;
15024                 }
15025
15026                 public function get contentHeight():int
15027                 {       //MethodID:1634, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
15028                         return this._mainVideo.contentHeight;
15029                 }
15030
15031                 public function get onChildVideoChanged():Functions
15032                 {       //MethodID:1635, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15033                         return this._onChildVideoChanged;
15034                 }
15035
15036                 public function get currentChildVideoName():String
15037                 {       //MethodID:1636, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 14
15038                         return this.__CHILDREN_ORDER[this._currentChildIndex];
15039                 }
15040         }
15041 }
15042
15043 import flash.errors.IllegalOperationError
15044 import jp.nicovideo.nicoplayer.models.video.IChildVideo
15045
15046 //■class(instance)_index:112
15047 //private
15048 class _ChildVideoContainer extends Object
15049 {
15050         //static constructor
15051         public static function _ChildVideoContainer$cinit()
15052         {       //MethodID:1546, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
15053         }
15054
15055         //constructor
15056         public function _ChildVideoContainer(hug1:String, hug2:IChildVideo)
15057         {       //MethodID:1547, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
15058                 super();
15059
15060                 this._name = hug1;
15061                 this._video = hug2;
15062         }
15063
15064         //variables/etc.
15065         private var _name:String;                                       //slotID:0
15066         private var _video:IChildVideo;                                 //slotID:0
15067
15068         public function get video():IChildVideo
15069         {       //MethodID:1548, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15070                 return this._video;
15071         }
15072
15073         public function get name():String
15074         {       //MethodID:1549, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15075                 return this._name;
15076         }
15077 }
15078
15079 //■class(instance)_index:113
15080 //private
15081 class _SeekLocker extends Object
15082 {
15083         //static constructor
15084         public static function _SeekLocker$cinit()
15085         {       //MethodID:1550, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
15086                 _MAX_COUNT_OF_STORE = 400;
15087         }
15088
15089         //static variables/etc.
15090         private static const _MAX_COUNT_OF_STORE:int = 400;             //slotID:1
15091
15092         //constructor
15093         public function _SeekLocker(hug1:Function)
15094         {       //MethodID:1551, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 28
15095                 super();
15096
15097                 if(hug1 == null) throw new ArgumentError("_SeekLocker._SeekLock: You have to set a valid function");
15098
15099                 this._seekFunction = hug1;
15100         }
15101
15102         //variables/etc.
15103         private var _isLock:Boolean = false;                            //slotID:0
15104         private var _lastVpos:Number = -1.0;                            //slotID:0
15105         private var _count:int = 0;                                     //slotID:0
15106         private var _seekFunction:Function;                             //slotID:0
15107
15108         public function startLock():void
15109         {       //MethodID:1552, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 8
15110                 this._isLock = true;
15111         }
15112
15113         public function stockSeek(hug1:Number):void
15114         {       //MethodID:1553, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 55
15115                 this._count++;
15116
15117                 if(this._count > _MAX_COUNT_OF_STORE) throw new ArgumentError("_SeekLock.stockSeek: You can not stock seek vpos more than " + _MAX_COUNT_OF_STORE + " times.");
15118
15119                 this._lastVpos = hug1;
15120         }
15121
15122         public function endLock():void
15123         {       //MethodID:1554, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 64
15124                 if(!this._isLock) throw new IllegalOperationError("_SeekLock.endLock: You have not called startLock() yet.");
15125
15126                 if(this._count > 0) this._seekFunction.apply(null, [this._lastVpos]);
15127
15128                 this._count = 0;
15129                 this._lastVpos = -1;
15130                 this._isLock = false;
15131         }
15132
15133         public function get isLock():Boolean
15134         {       //MethodID:1555, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15135                 return this._isLock;
15136         }
15137 }
15138
15139 //■script097■
15140
15141 package jp.nicovideo.nicoplayer.tpls{
15142
15143         import flash.display.MovieClip
15144         import jp.nicovideo.ext.config.IThumbConfig
15145         import jp.nicovideo.marquee.INicoMarqueeClient
15146         import jp.nicovideo.nicoplayer.app.IApplibarLoader
15147         import jp.nicovideo.nicoplayer.config.NicoConfig
15148         import jp.nicovideo.nicoplayer.external.IExternalClient
15149         import jp.nicovideo.nicoplayer.hiroba.IHirobaPlayer
15150         import jp.nicovideo.nicoplayer.models.IMyList
15151         import jp.nicovideo.nicoplayer.models.IObsevableContainer
15152         import jp.nicovideo.nicoplayer.models.IPlayerConfig
15153         import jp.nicovideo.nicoplayer.models.IPlayerInfo
15154         import jp.nicovideo.nicoplayer.models.IPlayerVersion
15155         import jp.nicovideo.nicoplayer.models.IRelatedVideoList
15156         import jp.nicovideo.nicoplayer.models.StartVposConfig
15157         import jp.nicovideo.nicoplayer.models.api.IGetFLV
15158         import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
15159         import jp.nicovideo.nicoplayer.models.api.IJumper
15160         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
15161         import jp.nicovideo.nicoplayer.models.comment.ICommentRouter
15162         import jp.nicovideo.nicoplayer.models.comment.ITimeMachine
15163         import jp.nicovideo.nicoplayer.models.filter.IDeleteFilter
15164         import jp.nicovideo.nicoplayer.models.filter.INGComment
15165         import jp.nicovideo.nicoplayer.models.filter.IReplacer
15166         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
15167         import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
15168         import jp.nicovideo.nicoplayer.models.log.ILogManager
15169         import jp.nicovideo.nicoplayer.models.mylist.IDefaultMylistAppendable
15170         import jp.nicovideo.nicoplayer.models.playlist.IPlaylistController
15171         import jp.nicovideo.nicoplayer.models.video.IVideo
15172         import jp.nicovideo.nicoplayer.models.video.IVideoController
15173         import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
15174         import jp.nicovideo.nicoplayer.remocon.IRemoconClient
15175         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
15176         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
15177         import jp.nicovideo.nicoplayer.views.IJumpMessageLayer
15178         import jp.nicovideo.nicoplayer.views.IVideoLayerManager
15179         import jp.nicovideo.nicoplayer.views.comment.ICommentLayer
15180         import jp.nicovideo.nicoplayer.views.framerate.IFrameRateBooster
15181         import jp.nicovideo.nicoscript.INicoSClient
15182         import jp.nicovideo.util.events.EventSender
15183
15184         //■class(instance)_index:115
15185         public interface INicoViewControllerClient
15186         {
15187                 //static constructor
15188                 public static function INicoViewControllerClient$cinit()
15189                 {       //MethodID:1638, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
15190                 }
15191
15192                 //variables/etc.
15193                 function addSetUpHandler(hug1:Array, hug2:Function):void;                   //MethodID:1639, dispID:0
15194
15195                 function get nicoConfig():NicoConfig;                                       //MethodID:1640, dispID:0
15196
15197                 function get playerVersion():IPlayerVersion;                                //MethodID:1641, dispID:0
15198
15199                 function get playerInfo():IPlayerInfo;                                      //MethodID:1642, dispID:0
15200
15201                 function get playerConfig():IPlayerConfig;                                  //MethodID:1643, dispID:0
15202
15203                 function get flashVars():NicoFlashVars;                                     //MethodID:1644, dispID:0
15204
15205                 function get viewRoot():MovieClip;                                          //MethodID:1645, dispID:0
15206
15207                 function get getFLVData():IGetFLV;                                          //MethodID:1646, dispID:0
15208
15209                 function get video():IVideo;                                                //MethodID:1647, dispID:0
15210
15211                 function get commentListContainer():Object;                                 //MethodID:1648, dispID:0
15212
15213                 function get ngFilter():INGComment;                                         //MethodID:1649, dispID:0
15214
15215                 function get relatedList():IRelatedVideoList;                               //MethodID:1650, dispID:0
15216
15217                 function get deleteFilter():IDeleteFilter;                                  //MethodID:1651, dispID:0
15218
15219                 function get commentShutter():IControllerShutter;                           //MethodID:1652, dispID:0
15220
15221                 function get audioShutter():IControllerShutter;                             //MethodID:1653, dispID:0
15222
15223                 function get commentRouter():ICommentRouter;                                //MethodID:1654, dispID:0
15224
15225                 function get videoController():IVideoController;                            //MethodID:1655, dispID:0
15226
15227                 function get jumpMessageLayer():IJumpMessageLayer;                          //MethodID:1656, dispID:0
15228
15229                 function get commentLayer():ICommentLayer;                                  //MethodID:1657, dispID:0
15230
15231                 function get commentLayerView():*;                                          //MethodID:1658, dispID:0
15232
15233                 function get commentViewTransformer():*;                                    //MethodID:1659, dispID:0
15234
15235                 function get videoLayerManager():IVideoLayerManager;                        //MethodID:1660, dispID:0
15236
15237                 function get timeMachine():ITimeMachine;                                    //MethodID:1661, dispID:0
15238
15239                 function get nicoSClient():INicoSClient;                                    //MethodID:1662, dispID:0
15240
15241                 function get marqueeClient():INicoMarqueeClient;                            //MethodID:1663, dispID:0
15242
15243                 function get commentStorageEvents():EventSender;                            //MethodID:1664, dispID:0
15244
15245                 function get replacer():IReplacer;                                          //MethodID:1665, dispID:0
15246
15247                 function get externalClient():IExternalClient;                              //MethodID:1666, dispID:0
15248
15249                 function get thumbConfig():IThumbConfig;                                    //MethodID:1667, dispID:0
15250
15251                 function get hirobaPlayer():IHirobaPlayer;                                  //MethodID:1668, dispID:0
15252
15253                 function get jumper():IJumper;                                              //MethodID:1669, dispID:0
15254
15255                 function get channelReplacer():*;                                           //MethodID:1670, dispID:0
15256
15257                 function get getSponsorInfo():IGetSponsorInfo;                              //MethodID:1671, dispID:0
15258
15259                 function get myList():IMyList;                                              //MethodID:1672, dispID:0
15260
15261                 function get defaultMylistAppender():IDefaultMylistAppendable;              //MethodID:1673, dispID:0
15262
15263                 function get pluginClient():IObsevableContainer;                            //MethodID:1674, dispID:0
15264
15265                 function get applibarLoader():IApplibarLoader;                              //MethodID:1675, dispID:0
15266
15267                 function get lockedComment():*;                                             //MethodID:1676, dispID:0
15268
15269                 function get initializeInfo():InitializeInfo;                               //MethodID:1677, dispID:0
15270
15271                 function get playlistController():IPlaylistController;                      //MethodID:1678, dispID:0
15272
15273                 function get playlistFlashVars():PlaylistFlashVars;                         //MethodID:1679, dispID:0
15274
15275                 function get logManager():ILogManager;                                      //MethodID:1680, dispID:0
15276
15277                 function get startVposConfig():StartVposConfig;                             //MethodID:1681, dispID:0
15278
15279                 function get filteredCommentPoolContainers():Array;                         //MethodID:1682, dispID:0
15280
15281                 function get videoLoadWatcher():VideoLoadWatcher;                           //MethodID:1683, dispID:0
15282
15283                 function get remoconClient():IRemoconClient;                                //MethodID:1684, dispID:0
15284
15285                 function get playerPageMyselfURL():String;                                  //MethodID:1685, dispID:0
15286
15287                 function get videoenderTesterConfig():IVideoenderTesterConfig;              //MethodID:1686, dispID:0
15288
15289                 function get frameRateBooster():IFrameRateBooster;                          //MethodID:1687, dispID:0
15290
15291                 //constructor
15292                 public function INicoViewControllerClient();                                //MethodID:1688, dispID:0
15293         }
15294 }
15295
15296 //■script098■
15297
15298 package jp.nicovideo.nicoplayer.tpls{
15299
15300         import flash.display.MovieClip
15301         import flash.errors.IllegalOperationError
15302         import jp.nicovideo.ext.config.IThumbConfig
15303         import jp.nicovideo.marquee.INicoMarqueeClient
15304         import jp.nicovideo.nicoplayer.app.IApplibarLoader
15305         import jp.nicovideo.nicoplayer.config.NicoConfig
15306         import jp.nicovideo.nicoplayer.external.IExternalClient
15307         import jp.nicovideo.nicoplayer.hiroba.IHirobaPlayer
15308         import jp.nicovideo.nicoplayer.models.IMyList
15309         import jp.nicovideo.nicoplayer.models.IObsevableContainer
15310         import jp.nicovideo.nicoplayer.models.IPlayerConfig
15311         import jp.nicovideo.nicoplayer.models.IPlayerInfo
15312         import jp.nicovideo.nicoplayer.models.IPlayerVersion
15313         import jp.nicovideo.nicoplayer.models.IRelatedVideoList
15314         import jp.nicovideo.nicoplayer.models.StartVposConfig
15315         import jp.nicovideo.nicoplayer.models.api.IGetFLV
15316         import jp.nicovideo.nicoplayer.models.api.IGetSponsorInfo
15317         import jp.nicovideo.nicoplayer.models.api.IJumper
15318         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
15319         import jp.nicovideo.nicoplayer.models.comment.ICommentRouter
15320         import jp.nicovideo.nicoplayer.models.comment.ITimeMachine
15321         import jp.nicovideo.nicoplayer.models.filter.IDeleteFilter
15322         import jp.nicovideo.nicoplayer.models.filter.INGComment
15323         import jp.nicovideo.nicoplayer.models.filter.IReplacer
15324         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
15325         import jp.nicovideo.nicoplayer.models.flashvars.PlaylistFlashVars
15326         import jp.nicovideo.nicoplayer.models.log.ILogManager
15327         import jp.nicovideo.nicoplayer.models.mylist.IDefaultMylistAppendable
15328         import jp.nicovideo.nicoplayer.models.playlist.IPlaylistController
15329         import jp.nicovideo.nicoplayer.models.video.IVideo
15330         import jp.nicovideo.nicoplayer.models.video.IVideoController
15331         import jp.nicovideo.nicoplayer.models.video.VideoLoadWatcher
15332         import jp.nicovideo.nicoplayer.remocon.IRemoconClient
15333         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
15334         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
15335         import jp.nicovideo.nicoplayer.views.IJumpMessageLayer
15336         import jp.nicovideo.nicoplayer.views.IVideoLayerManager
15337         import jp.nicovideo.nicoplayer.views.comment.ICommentLayer
15338         import jp.nicovideo.nicoplayer.views.framerate.IFrameRateBooster
15339         import jp.nicovideo.nicoscript.INicoSClient
15340         import jp.nicovideo.util.events.EventSender
15341
15342         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
15343
15344         //■class(instance)_index:117
15345         public class NicoViewControllerClient extends Object implements INicoViewControllerClient
15346         {
15347                 //static constructor
15348                 public static function NicoViewControllerClient$cinit()
15349                 {       //MethodID:1695, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
15350                 }
15351
15352                 //variables/etc.
15353                 private var _viewRoot:MovieClip;                                //slotID:0
15354                 private var _nicoConfig:NicoConfig;                             //slotID:0
15355                 private var _playerVersion:IPlayerVersion;                      //slotID:0
15356                 private var _playerInfo:IPlayerInfo;                            //slotID:0
15357                 private var _playerConfig:IPlayerConfig;                        //slotID:0
15358                 private var _flashVars:NicoFlashVars;                           //slotID:0
15359                 private var _getFLVData:IGetFLV;                                //slotID:0
15360                 private var _video:IVideo;                                      //slotID:0
15361                 private var _commentListContainer:Object;                       //slotID:0
15362                 private var _ngFilter:INGComment;                               //slotID:0
15363                 private var _relatedList:IRelatedVideoList;                     //slotID:0
15364                 private var _deleteFilter:IDeleteFilter;                        //slotID:0
15365                 private var _videoController:IVideoController;                  //slotID:0
15366                 private var _videoLayerManager:IVideoLayerManager;              //slotID:0
15367                 private var _commentShutter:IControllerShutter;                 //slotID:0
15368                 private var _audioShutter:IControllerShutter;                   //slotID:0
15369                 private var _commentRouter:ICommentRouter;                      //slotID:0
15370                 private var _timeMachine:ITimeMachine;                          //slotID:0
15371                 private var _jumpMessageLayer:IJumpMessageLayer;                //slotID:0
15372                 private var _nicoSClient:INicoSClient;                          //slotID:0
15373                 private var _marqueeClient:INicoMarqueeClient;                  //slotID:0
15374                 private var _commentStorageEvents:EventSender;                  //slotID:0
15375                 private var _setUpCheckers:Array;                               //slotID:0
15376                 private var _replacer:IReplacer;                                //slotID:0
15377                 private var _commentLayer:ICommentLayer;                        //slotID:0
15378                 private var _commentLayerView:*;                                //slotID:0
15379                 private var _commentViewTransformer:*;                          //slotID:0
15380                 private var _externalClient:IExternalClient;                    //slotID:0
15381                 private var _thumbConfig:IThumbConfig;                          //slotID:0
15382                 private var _hirobaPlayer:IHirobaPlayer;                        //slotID:0
15383                 private var _jumper:IJumper;                                    //slotID:0
15384                 private var _channelReplacer:*;                                 //slotID:0
15385                 private var _getSponsorInfo:IGetSponsorInfo;                    //slotID:0
15386                 private var _myList:IMyList;                                    //slotID:0
15387                 private var _pluginClient:IObsevableContainer;                  //slotID:0
15388                 private var _lockedComment:*;                                   //slotID:0
15389                 private var _applibarLoader:IApplibarLoader;                    //slotID:0
15390                 private var _initializeInfo:InitializeInfo;                     //slotID:0
15391                 private var _playlistController:IPlaylistController;            //slotID:0
15392                 private var _startVposConfig:StartVposConfig;                   //slotID:0
15393                 private var _playlistFlashVars:PlaylistFlashVars;               //slotID:0
15394                 private var _logManager:ILogManager;                            //slotID:0
15395                 private var _filteredCommentPoolContainers:Array;               //slotID:0
15396                 private var _videoLoadWatcher:VideoLoadWatcher;                 //slotID:0
15397                 private var _remoconClient:IRemoconClient;                      //slotID:0
15398                 private var _playerPageMyselfURL:String;                        //slotID:0
15399                 private var _defaultMylistAppender:IDefaultMylistAppendable;    //slotID:0
15400                 private var _videoenderTesterConfig:IVideoenderTesterConfig;    //slotID:0
15401                 private var _frameRateBooster:IFrameRateBooster;                //slotID:0
15402                 private var _hasSetList:Array;                                  //slotID:0
15403
15404                 public function get viewRoot():MovieClip
15405                 {       //MethodID:1696, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15406                         return this._viewRoot;
15407                 }
15408
15409                 public function set viewRoot(hug1:MovieClip):void
15410                 {       //MethodID:1697, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15411                         this._setProperty("viewRoot", hug1);
15412                 }
15413
15414                 public function get nicoConfig():NicoConfig
15415                 {       //MethodID:1698, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15416                         return this._nicoConfig;
15417                 }
15418
15419                 public function set nicoConfig(hug1:NicoConfig):void
15420                 {       //MethodID:1699, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15421                         this._setProperty("nicoConfig", hug1);
15422                 }
15423
15424                 public function get playerVersion():IPlayerVersion
15425                 {       //MethodID:1700, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15426                         return this._playerVersion;
15427                 }
15428
15429                 public function set playerVersion(hug1:IPlayerVersion):void
15430                 {       //MethodID:1701, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15431                         this._setProperty("playerVersion", hug1);
15432                 }
15433
15434                 public function get playerInfo():IPlayerInfo
15435                 {       //MethodID:1702, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15436                         return this._playerInfo;
15437                 }
15438
15439                 public function set playerInfo(hug1:IPlayerInfo):void
15440                 {       //MethodID:1703, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15441                         this._setProperty("playerInfo", hug1);
15442                 }
15443
15444                 public function get playerConfig():IPlayerConfig
15445                 {       //MethodID:1704, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15446                         return this._playerConfig;
15447                 }
15448
15449                 public function set playerConfig(hug1:IPlayerConfig):void
15450                 {       //MethodID:1705, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15451                         this._setProperty("playerConfig", hug1);
15452                 }
15453
15454                 public function get flashVars():NicoFlashVars
15455                 {       //MethodID:1706, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15456                         return this._flashVars;
15457                 }
15458
15459                 public function set flashVars(hug1:NicoFlashVars):void
15460                 {       //MethodID:1707, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15461                         this._setProperty("flashVars", hug1);
15462                 }
15463
15464                 public function get getFLVData():IGetFLV
15465                 {       //MethodID:1708, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15466                         return this._getFLVData;
15467                 }
15468
15469                 public function set getFLVData(hug1:IGetFLV):void
15470                 {       //MethodID:1709, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15471                         this._setProperty("getFLVData", hug1);
15472                 }
15473
15474                 public function get video():IVideo
15475                 {       //MethodID:1710, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15476                         return this._video;
15477                 }
15478
15479                 public function set video(hug1:IVideo):void
15480                 {       //MethodID:1711, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15481                         this._setProperty("video", hug1);
15482                 }
15483
15484                 public function get commentListContainer():Object
15485                 {       //MethodID:1712, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15486                         return this._commentListContainer;
15487                 }
15488
15489                 public function set commentListContainer(hug1:Object):void
15490                 {       //MethodID:1713, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15491                         this._setProperty("commentListContainer", hug1);
15492                 }
15493
15494                 public function get jumpMessageLayer():IJumpMessageLayer
15495                 {       //MethodID:1714, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15496                         return this._jumpMessageLayer;
15497                 }
15498
15499                 public function set jumpMessageLayer(hug1:IJumpMessageLayer):void
15500                 {       //MethodID:1715, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15501                         this._setProperty("jumpMessageLayer", hug1);
15502                 }
15503
15504                 public function get ngFilter():INGComment
15505                 {       //MethodID:1716, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15506                         return this._ngFilter;
15507                 }
15508
15509                 public function set ngFilter(hug1:INGComment):void
15510                 {       //MethodID:1717, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15511                         this._setProperty("ngFilter", hug1);
15512                 }
15513
15514                 public function get relatedList():IRelatedVideoList
15515                 {       //MethodID:1718, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15516                         return this._relatedList;
15517                 }
15518
15519                 public function set relatedList(hug1:IRelatedVideoList):void
15520                 {       //MethodID:1719, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15521                         this._setProperty("relatedList", hug1);
15522                 }
15523
15524                 public function get deleteFilter():IDeleteFilter
15525                 {       //MethodID:1720, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15526                         return this._deleteFilter;
15527                 }
15528
15529                 public function set deleteFilter(hug1:IDeleteFilter):void
15530                 {       //MethodID:1721, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15531                         this._setProperty("deleteFilter", hug1);
15532                 }
15533
15534                 public function get timeMachine():ITimeMachine
15535                 {       //MethodID:1722, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15536                         return this._timeMachine;
15537                 }
15538
15539                 public function set timeMachine(hug1:ITimeMachine):void
15540                 {       //MethodID:1723, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15541                         this._setProperty("timeMachine", hug1);
15542                 }
15543
15544                 public function get commentShutter():IControllerShutter
15545                 {       //MethodID:1724, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15546                         return this._commentShutter;
15547                 }
15548
15549                 public function set commentShutter(hug1:IControllerShutter):void
15550                 {       //MethodID:1725, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15551                         this._setProperty("commentShutter", hug1);
15552                 }
15553
15554                 public function get audioShutter():IControllerShutter
15555                 {       //MethodID:1726, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15556                         return this._audioShutter;
15557                 }
15558
15559                 public function set audioShutter(hug1:IControllerShutter):void
15560                 {       //MethodID:1727, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15561                         this._setProperty("audioShutter", hug1);
15562                 }
15563
15564                 public function get commentRouter():ICommentRouter
15565                 {       //MethodID:1728, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15566                         return this._commentRouter;
15567                 }
15568
15569                 public function set commentRouter(hug1:ICommentRouter):void
15570                 {       //MethodID:1729, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15571                         this._setProperty("commentRouter", hug1);
15572                 }
15573
15574                 public function get videoController():IVideoController
15575                 {       //MethodID:1730, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15576                         return this._videoController;
15577                 }
15578
15579                 public function set videoController(hug1:IVideoController):void
15580                 {       //MethodID:1731, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15581                         this._setProperty("videoController", hug1);
15582                 }
15583
15584                 public function get videoLayerManager():IVideoLayerManager
15585                 {       //MethodID:1732, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15586                         return this._videoLayerManager;
15587                 }
15588
15589                 public function set videoLayerManager(hug1:IVideoLayerManager):void
15590                 {       //MethodID:1733, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15591                         this._setProperty("videoLayerManager", hug1);
15592                 }
15593
15594                 public function get commentLayer():ICommentLayer
15595                 {       //MethodID:1734, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15596                         return this._commentLayer;
15597                 }
15598
15599                 public function set commentLayer(hug1:ICommentLayer):void
15600                 {       //MethodID:1735, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15601                         this._setProperty("commentLayer", hug1);
15602                 }
15603
15604                 public function get commentLayerView():*
15605                 {       //MethodID:1736, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15606                         return this._commentLayerView;
15607                 }
15608
15609                 public function set commentLayerView(hug1:*):void
15610                 {       //MethodID:1737, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15611                         this._setProperty("commentLayerView", hug1);
15612                 }
15613
15614                 public function get commentViewTransformer():*
15615                 {       //MethodID:1738, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15616                         return this._commentViewTransformer;
15617                 }
15618
15619                 public function set commentViewTransformer(hug1:*):void
15620                 {       //MethodID:1739, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15621                         this._setProperty("commentViewTransformer", hug1);
15622                 }
15623
15624                 public function get nicoSClient():INicoSClient
15625                 {       //MethodID:1740, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15626                         return this._nicoSClient;
15627                 }
15628
15629                 public function set nicoSClient(hug1:INicoSClient):void
15630                 {       //MethodID:1741, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15631                         this._setProperty("nicoSClient", hug1);
15632                 }
15633
15634                 public function get marqueeClient():INicoMarqueeClient
15635                 {       //MethodID:1742, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15636                         return this._marqueeClient;
15637                 }
15638
15639                 public function set marqueeClient(hug1:INicoMarqueeClient):void
15640                 {       //MethodID:1743, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15641                         this._setProperty("marqueeClient", hug1);
15642                 }
15643
15644                 public function get commentStorageEvents():EventSender
15645                 {       //MethodID:1744, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15646                         return this._commentStorageEvents;
15647                 }
15648
15649                 public function set commentStorageEvents(hug1:EventSender):void
15650                 {       //MethodID:1745, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15651                         this._setProperty("commentStorageEvents", hug1);
15652                 }
15653
15654                 public function get replacer():IReplacer
15655                 {       //MethodID:1746, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15656                         return this._replacer;
15657                 }
15658
15659                 public function set replacer(hug1:IReplacer):void
15660                 {       //MethodID:1747, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15661                         this._setProperty("replacer", hug1);
15662                 }
15663
15664                 public function get externalClient():IExternalClient
15665                 {       //MethodID:1748, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15666                         return this._externalClient;
15667                 }
15668
15669                 public function set externalClient(hug1:IExternalClient):void
15670                 {       //MethodID:1749, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15671                         this._setProperty("externalClient", hug1);
15672                 }
15673
15674                 public function get thumbConfig():IThumbConfig
15675                 {       //MethodID:1750, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15676                         return this._thumbConfig;
15677                 }
15678
15679                 public function set thumbConfig(hug1:IThumbConfig):void
15680                 {       //MethodID:1751, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15681                         this._setProperty("thumbConfig", hug1);
15682                 }
15683
15684                 public function get hirobaPlayer():IHirobaPlayer
15685                 {       //MethodID:1752, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15686                         return this._hirobaPlayer;
15687                 }
15688
15689                 public function set hirobaPlayer(hug1:IHirobaPlayer):void
15690                 {       //MethodID:1753, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15691                         this._setProperty("hirobaPlayer", hug1);
15692                 }
15693
15694                 public function get jumper():IJumper
15695                 {       //MethodID:1754, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15696                         return this._jumper;
15697                 }
15698
15699                 public function set jumper(hug1:IJumper):void
15700                 {       //MethodID:1755, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15701                         this._setProperty("jumper", hug1);
15702                 }
15703
15704                 public function get channelReplacer():*
15705                 {       //MethodID:1756, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15706                         return this._channelReplacer;
15707                 }
15708
15709                 public function set channelReplacer(hug1:*):void
15710                 {       //MethodID:1757, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15711                         this._setProperty("channelReplacer", hug1);
15712                 }
15713
15714                 public function get getSponsorInfo():IGetSponsorInfo
15715                 {       //MethodID:1758, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15716                         return this._getSponsorInfo;
15717                 }
15718
15719                 public function set getSponsorInfo(hug1:IGetSponsorInfo):void
15720                 {       //MethodID:1759, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15721                         this._setProperty("getSponsorInfo", hug1);
15722                 }
15723
15724                 public function get myList():IMyList
15725                 {       //MethodID:1760, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15726                         return this._myList;
15727                 }
15728
15729                 public function set myList(hug1:IMyList):void
15730                 {       //MethodID:1761, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15731                         this._setProperty("myList", hug1);
15732                 }
15733
15734                 public function get defaultMylistAppender():IDefaultMylistAppendable
15735                 {       //MethodID:1762, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15736                         return this._defaultMylistAppender;
15737                 }
15738
15739                 public function set defaultMylistAppender(hug1:IDefaultMylistAppendable):void
15740                 {       //MethodID:1763, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15741                         this._setProperty("defaultMylistAppender", hug1);
15742                 }
15743
15744                 public function get pluginClient():IObsevableContainer
15745                 {       //MethodID:1764, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15746                         return this._pluginClient;
15747                 }
15748
15749                 public function set pluginClient(hug1:IObsevableContainer):void
15750                 {       //MethodID:1765, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15751                         this._setProperty("pluginClient", hug1);
15752                 }
15753
15754                 public function get lockedComment():*
15755                 {       //MethodID:1766, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15756                         return this._lockedComment;
15757                 }
15758
15759                 public function set lockedComment(hug1:*):void
15760                 {       //MethodID:1767, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15761                         this._setProperty("lockedComment", hug1);
15762                 }
15763
15764                 public function get initializeInfo():InitializeInfo
15765                 {       //MethodID:1768, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15766                         return this._initializeInfo;
15767                 }
15768
15769                 public function set initializeInfo(hug1:InitializeInfo):void
15770                 {       //MethodID:1769, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15771                         this._setProperty("initializeInfo", hug1);
15772                 }
15773
15774                 public function get applibarLoader():IApplibarLoader
15775                 {       //MethodID:1770, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15776                         return this._applibarLoader;
15777                 }
15778
15779                 public function set applibarLoader(hug1:IApplibarLoader):void
15780                 {       //MethodID:1771, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15781                         this._setProperty("applibarLoader", hug1);
15782                 }
15783
15784                 public function get playlistController():IPlaylistController
15785                 {       //MethodID:1772, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15786                         return this._playlistController;
15787                 }
15788
15789                 public function set playlistController(hug1:IPlaylistController):void
15790                 {       //MethodID:1773, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15791                         this._setProperty("playlistController", hug1);
15792                 }
15793
15794                 public function get playlistFlashVars():PlaylistFlashVars
15795                 {       //MethodID:1774, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15796                         return this._playlistFlashVars;
15797                 }
15798
15799                 public function set playlistFlashVars(hug1:PlaylistFlashVars):void
15800                 {       //MethodID:1775, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15801                         this._setProperty("playlistFlashVars", hug1);
15802                 }
15803
15804                 public function addSetUpHandler(hug1:Array, hug2:Function):void
15805                 {       //MethodID:1776, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 116
15806                         var hug5:String = null;
15807                         var hug3:_SetUpChecker = new _SetUpChecker(hug1, hug2);
15808                         var hug4:Boolean = false;
15809
15810                         for each(hug5 in hug1){
15811                                 if(this["_" + hug5]) hug4 = hug3.check(hug5);
15812
15813                                 if(hug4) break;
15814                         }
15815
15816                         if(hug4){
15817                                 hug3.handler.apply();
15818                         }else{
15819                                 this._setUpCheckers.push(hug3);
15820                         }
15821                 }
15822
15823                 public function get startVposConfig():StartVposConfig
15824                 {       //MethodID:1777, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15825                         return this._startVposConfig;
15826                 }
15827
15828                 public function set startVposConfig(hug1:StartVposConfig):void
15829                 {       //MethodID:1778, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15830                         this._setProperty("startVposConfig", hug1);
15831                 }
15832
15833                 public function get logManager():ILogManager
15834                 {       //MethodID:1779, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15835                         return this._logManager;
15836                 }
15837
15838                 public function set logManager(hug1:ILogManager):void
15839                 {       //MethodID:1780, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15840                         this._setProperty("logManager", hug1);
15841                 }
15842
15843                 public function get filteredCommentPoolContainers():Array
15844                 {       //MethodID:1781, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15845                         return this._filteredCommentPoolContainers;
15846                 }
15847
15848                 public function set filteredCommentPoolContainers(hug1:Array):void
15849                 {       //MethodID:1782, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15850                         this._setProperty("filteredCommentPoolContainers", hug1);
15851                 }
15852
15853                 public function get videoLoadWatcher():VideoLoadWatcher
15854                 {       //MethodID:1783, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15855                         return this._videoLoadWatcher;
15856                 }
15857
15858                 public function set videoLoadWatcher(hug1:VideoLoadWatcher):void
15859                 {       //MethodID:1784, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15860                         this._setProperty("videoLoadWatcher", hug1);
15861                 }
15862
15863                 public function get remoconClient():IRemoconClient
15864                 {       //MethodID:1785, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15865                         return this._remoconClient;
15866                 }
15867
15868                 public function set remoconClient(hug1:*):void
15869                 {       //MethodID:1786, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15870                         this._setProperty("remoconClient", hug1);
15871                 }
15872
15873                 public function get playerPageMyselfURL():String
15874                 {       //MethodID:1787, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15875                         return this._playerPageMyselfURL;
15876                 }
15877
15878                 public function set playerPageMyselfURL(hug1:String):void
15879                 {       //MethodID:1788, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15880                         this._setProperty("playerPageMyselfURL", hug1);
15881                 }
15882
15883                 public function get videoenderTesterConfig():IVideoenderTesterConfig
15884                 {       //MethodID:1789, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15885                         return this._videoenderTesterConfig;
15886                 }
15887
15888                 public function set videoenderTesterConfig(hug1:IVideoenderTesterConfig):void
15889                 {       //MethodID:1790, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15890                         this._setProperty("videoenderTesterConfig", hug1);
15891                 }
15892
15893                 public function get frameRateBooster():IFrameRateBooster
15894                 {       //MethodID:1791, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15895                         return this._frameRateBooster;
15896                 }
15897
15898                 public function set frameRateBooster(hug1:IFrameRateBooster):void
15899                 {       //MethodID:1792, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
15900                         this._setProperty("frameRateBooster", hug1);
15901                 }
15902
15903                 private function _setProperty(hug1:String, hug2:*):void
15904                 {       //MethodID:1793, LocalCount= 10 , MaxScope= 1, MaxStack= 3, CodeLength= 241
15905                         var hug5:_SetUpChecker = null;
15906                         var hug6:uint = 0;
15907                         var hug7:_SetUpChecker = null;
15908
15909                         if(hug2 == null){
15910                                 this._removeProperty(hug1);
15911
15912                                 return;
15913                         }
15914
15915                         var hug3:String = ("_" + hug1);
15916
15917                         if(this._hasSetList.indexOf(hug1) != (-1)) throw new IllegalOperationError("NicoViewControllerClient._setProperty: _" + hug1 + " has set already.");
15918
15919                         this[hug3] = hug2;
15920
15921                         this._hasSetList.push(hug1);
15922
15923                         var hug4:Array = [];
15924
15925                         for each(hug5 in this._setUpCheckers){
15926                                 if(hug5.check(hug1)) hug4.push(this._setUpCheckers.indexOf(hug5));
15927                         }
15928
15929                         hug4.sort(Array.NUMERIC | Array.DESCENDING);
15930
15931                         for each(hug6 in hug4){
15932                                 hug7 = this._setUpCheckers[hug6];
15933
15934                                 this._setUpCheckers.splice(hug6, 1);
15935                                 hug7.handler.apply();
15936                         }
15937                 }
15938
15939                 private function _removeProperty(hug1:String):void
15940                 {       //MethodID:1794, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 48
15941                         var hug3:String = null;
15942                         var hug2:int = this._hasSetList.indexOf(hug1);
15943
15944                         if(hug2 >= 0){
15945                                 this._hasSetList.splice(hug2, 1);
15946
15947                                 hug3 = ("_" + hug1);
15948                                 this[hug3] = null;
15949                         }
15950                 }
15951
15952                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get setUpCounters():Array
15953                 {       //MethodID:1795, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
15954                         return this._setUpCheckers;
15955                 }
15956
15957                 //constructor
15958                 public function NicoViewControllerClient()
15959                 {       //MethodID:1796, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 18
15960                         this._setUpCheckers = [];
15961                         this._hasSetList = [];
15962
15963                         super();
15964                 }
15965         }
15966 }
15967
15968 import flash.errors.IllegalOperationError
15969
15970 //■class(instance)_index:116
15971 //private
15972 class _SetUpChecker extends Object
15973 {
15974         //static constructor
15975         public static function _SetUpChecker$cinit()
15976         {       //MethodID:1690, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
15977         }
15978
15979         //constructor
15980         public function _SetUpChecker(hug1:Array, hug2:Function)
15981         {       //MethodID:1691, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 26
15982                 super();
15983
15984                 this._names = hug1.concat();
15985                 this._flags = [];
15986                 this._handler = hug2;
15987         }
15988
15989         //variables/etc.
15990         private var _names:Array;                                       //slotID:0
15991         private var _handler:Function;                                  //slotID:0
15992         private var _flags:Array;                                       //slotID:0
15993         private var _finised:Boolean = false;                           //slotID:0
15994
15995         public function check(hug1:String):Boolean
15996         {       //MethodID:1692, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 96
15997                 if(this._finised) throw new IllegalOperationError("_SetUpCounter.check: check has finised.");
15998
15999                 var hug2:int = this._names.indexOf(hug1);
16000
16001                 if(hug2 == (-1)) return false;
16002
16003                 this._flags[hug2] = true;
16004                 var hug3:uint = 0;
16005
16006                 while(hug3 < this.names.length){
16007                         if(!this._flags[hug3]) return false;
16008
16009                         hug3++;
16010                 }
16011
16012                 this._finised = true;
16013                 return true;
16014         }
16015
16016         public function get handler():Function
16017         {       //MethodID:1693, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
16018                 return this._handler;
16019         }
16020
16021         public function get names():Array
16022         {       //MethodID:1694, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
16023                 return this._names;
16024         }
16025 }
16026
16027 //■script099■
16028
16029 package jp.nicovideo.hiroba{
16030
16031         import jp.nicovideo.hiroba.models.IHirobaComment
16032
16033         //■class(instance)_index:118
16034         public interface IHirobaConnector implements IEventDispatcher
16035         {
16036                 //static constructor
16037                 public static function IHirobaConnector$cinit()
16038                 {       //MethodID:1798, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
16039                 }
16040
16041                 //variables/etc.
16042                 function initialize(hug1:IHirobaConnectorClient):void;                      //MethodID:1799, dispID:0
16043
16044                 function connect(hug1:Function):void;                                       //MethodID:1800, dispID:0
16045
16046                 function post(hug1:Function, hug2:IHirobaComment):void;                     //MethodID:1801, dispID:0
16047
16048                 //constructor
16049                 public function IHirobaConnector();                                         //MethodID:1802, dispID:0
16050         }
16051 }
16052
16053 //■script100■
16054
16055 package jp.nicovideo.nicoplayer.models{
16056
16057         import flash.events.Event
16058         import flash.events.TimerEvent
16059         import flash.utils.Timer
16060         import jp.nicovideo.nicoplayer.models.video.VideoWrapper
16061         import jp.nicovideo.util.LC
16062         import jp.nicovideo.util.TimeUtils
16063
16064         //■class(instance)_index:119
16065         public class VideoLoadGuardian extends Object
16066         {
16067                 //static constructor
16068                 public static function VideoLoadGuardian$cinit()
16069                 {       //MethodID:1804, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
16070                         LC_LOAD_MAX = 2;
16071                 }
16072
16073                 //static variables/etc.
16074                 private static const LC_LOAD_MAX:uint = 2;                      //slotID:1
16075
16076                 //constructor
16077                 public function VideoLoadGuardian(hug1:VideoWrapper, hug2:Boolean)
16078                 {       //MethodID:1805, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 46
16079                         this._lc = new LC("jp.nicovideo.nicoplayer.models.LoadController");
16080
16081                         super();
16082
16083                         this._video = hug1;
16084                         this._isPremium = hug2;
16085                         this._loadLCList = {};
16086
16087                         if(!hug2) this._init();
16088                 }
16089
16090                 //variables/etc.
16091                 private var _lc:LC;                                             //slotID:0
16092                 private var _video:VideoWrapper;                                //slotID:0
16093                 private var _isPremium:Boolean;                                 //slotID:0
16094                 private var _lcName:String;                                     //slotID:0
16095                 private var _loadLCList:Object;                                 //slotID:0
16096                 private var _resultFunc:Function;                               //slotID:0
16097                 private var isLoadStart:Boolean = false;                        //slotID:0
16098                 private var _destroyFunc:Function;                              //slotID:0
16099
16100                 private function _init():void
16101                 {       //MethodID:1815, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 51
16102                         this._lcName = ("Mr." + TimeUtils.now().getTime());
16103
16104                         this._lc.join(function():void{  //MethodID:1813, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 112
16105                                 internal var timer:Timer;                                       //slotID:1
16106                                 internal var onTimer:Function;                                  //slotID:2
16107                                 internal var timerStart:Function;                               //slotID:3
16108                                 internal var loadEnd:Function;                                  //slotID:4
16109                                 internal var sendLoadLCName:Function;                           //slotID:5
16110
16111                                 timer = null;
16112                                 onTimer = null;
16113
16114                                 if(_lc.isMaster){
16115                                         onTimer = function():void{      //MethodID:1806, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 101
16116                                                 var hug2:String = null;
16117                                                 var hug1:Boolean = false;
16118
16119                                                 for(hug2 in _loadLCList){
16120                                                         hug1 = true;
16121
16122                                                         if((TimeUtils.now().getTime() - _loadLCList[hug2]) > 3000) loadEnd(hug2);
16123                                                 }
16124
16125                                                 if(!hug1){
16126                                                         timer.removeEventListener(TimerEvent.TIMER, onTimer);
16127
16128                                                         timer = null;
16129                                                 }
16130                                         };
16131
16132                                         timerStart = function():void{   //MethodID:1807, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 37
16133                                                 timer = new Timer(1000);
16134
16135                                                 timer.addEventListener(TimerEvent.TIMER, onTimer);
16136                                                 timer.start();
16137                                         };
16138
16139                                         loadEnd = function(hug1:String):void{   //MethodID:1808, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
16140                                                 delete _loadLCList[hug1];
16141                                         };
16142
16143                                         sendLoadLCName = function():void{       //MethodID:1809, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 15
16144                                                 _lc.send(null, "loadName", _loadLCList);
16145                                         };
16146
16147                                         timerStart();
16148                                         _lc.receive(function(hug1:Object):void{ //MethodID:1810, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 9
16149                                                 sendLoadLCName();
16150                                         }, "confirm");
16151                                         _lc.receive(function(hug1:Object):void{ //MethodID:1811, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 51
16152                                                 var hug2:String = String(hug1);
16153
16154                                                 if(timer == null) timerStart();
16155
16156                                                 _loadLCList[hug2] = TimeUtils.now().getTime();
16157
16158                                                 sendLoadLCName();
16159                                         }, "loading");
16160                                         _lc.receive(function(hug1:Object):void{ //MethodID:1812, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 15
16161                                                 loadEnd(String(hug1));
16162                                         }, "complete");
16163                                 }
16164                         });
16165                         this._lc.receive(function(hug1:Object):void{    //MethodID:1814, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
16166                                 _loadLCList = hug1;
16167
16168                                 if(!isLoadStart) _loadStart();
16169                         }, "loadName");
16170                 }
16171
16172                 public function loadStart(hug1:Function):void
16173                 {       //MethodID:1816, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 59
16174                         if(this._isPremium){
16175                                 hug1(true);
16176
16177                                 return;
16178                         }
16179
16180                         this._resultFunc = hug1;
16181
16182                         if(this._lc.isMaster){
16183                                 this._loadStart();
16184                         }else{
16185                                 this._lc.send(null, "confirm", this._lcName);
16186                         }
16187                 }
16188
16189                 public function destroy():void
16190                 {       //MethodID:1817, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
16191                         if(this._destroyFunc != null) this._destroyFunc();
16192                 }
16193
16194                 private function _loadStart():void
16195                 {       //MethodID:1820, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 227
16196                         internal var timer:Timer;                                       //slotID:1
16197                         internal var onTimer:Function;                                  //slotID:2
16198                         internal var loadEnd:Function;                                  //slotID:3
16199                         internal var count:uint;                                        //slotID:4
16200                         internal var key:String;                                        //slotID:5
16201
16202                         timer = null;
16203                         onTimer = null;
16204                         loadEnd = null;
16205                         count = 0;
16206                         key = null;
16207                         onTimer = function(hug1:Event):void{    //MethodID:1818, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 63
16208                                 if(_lc.isMaster){
16209                                         _loadLCList[_lcName] = TimeUtils.now().getTime();
16210
16211                                         _lc.send(null, "loadName", _loadLCList);
16212                                 }else{
16213                                         _lc.send(null, "loading", _lcName);
16214                                 }
16215                         };
16216
16217                         loadEnd = function():void{      //MethodID:1819, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 87
16218                                 if(_lc.isMaster){
16219                                         delete _loadLCList[_lcName];
16220                                 }else{
16221                                         _lc.send(null, "complete", _lcName);
16222                                 }
16223
16224                                 _lc.close();
16225                                 timer.removeEventListener(TimerEvent.TIMER, onTimer);
16226                                 _video.onVideoLoadComplete.remove(loadEnd);
16227                                 _video.onVideoLoadError.remove(loadEnd);
16228                         };
16229
16230                         this.isLoadStart = true;
16231
16232                         if(!this._lc.isMaster){
16233                                 count = 0;
16234
16235                                 for(key in this._loadLCList){
16236                                         count += 1;
16237                                 }
16238
16239                                 if(count >= LC_LOAD_MAX){
16240                                         this._resultFunc(false);
16241
16242                                         return;
16243                                 }
16244                         }
16245
16246                         timer = new Timer(1000);
16247
16248                         timer.addEventListener(TimerEvent.TIMER, onTimer);
16249
16250                         this._destroyFunc = loadEnd;
16251
16252                         this._video.onVideoLoadComplete.add(loadEnd);
16253                         this._video.onVideoLoadError.add(loadEnd);
16254                         timer.start();
16255                         this._resultFunc(true);
16256                 }
16257         }
16258 }
16259
16260 //■script101■
16261
16262 package jp.nicovideo.nicoplayer.models.api{
16263
16264         import __AS3__.vec.Vector
16265
16266         //■class(instance)_index:120
16267         public interface IGetRelation
16268         {
16269                 //static constructor
16270                 public static function IGetRelation$cinit()
16271                 {       //MethodID:1822, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
16272                 }
16273
16274                 //variables/etc.
16275                 function load(hug1:Function, hug2:Vector.<String>, hug3:Vector.<String>=null, hug4:uint=1, hug5:String=null, hug6:String=null, hug7:uint=1):void;//MethodID:1823, dispID:0
16276
16277                 //constructor
16278                 public function IGetRelation();                                             //MethodID:1824, dispID:0
16279         }
16280 }
16281
16282 //■script102■
16283
16284 package jp.nicovideo.nicoplayer.models.api{
16285
16286         import __AS3__.vec.Vector
16287         import flash.net.URLRequestMethod
16288         import jp.nicovideo.nicoplayer.models.RelatedConstants
16289         import jp.nicovideo.nicoplayer.models.api.relation.GetRelationResultFactory
16290         import jp.nicovideo.nicoplayer.models.api.relation.GetRelationTarget
16291         import jp.nicovideo.nicoplayer.models.api.relation.IGetRelationResult
16292         import jp.nicovideo.nicoplayer.models.api.relation.ILiveDJInfo
16293         import jp.nicovideo.util.ObjectUtils
16294
16295         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
16296
16297         //■class(instance)_index:123
16298         public class GetRelation extends Object implements IGetRelation
16299         {
16300                 //static constructor
16301                 public static function GetRelation$cinit()
16302                 {       //MethodID:1836, LocalCount= 1 , MaxScope= 1, MaxStack= 10, CodeLength= 129
16303                         LOAD_TARGETS = Vector.<String>([GetRelationTarget.RELATED_VIDEO, GetRelationTarget.OWNER_VIDEO, GetRelationTarget.LIVE_DJ]);
16304                         LOAD_SORT_VALUES = Vector.<String>([RelatedConstants.SORT_ENTRYDATE, RelatedConstants.SORT_RELATEDPOINT, RelatedConstants.SORT_VIEWCOUNTER, RelatedConstants.SORT_ENTRYDATE, RelatedConstants.SORT_RESDATE, RelatedConstants.SORT_RESNUM, RelatedConstants.SORT_MYLISTCOUNTER]);
16305                         LOAD_ORDER_VALUES = Vector.<String>([RelatedConstants.ORDER_UP, RelatedConstants.ORDER_DOWN]);
16306                 }
16307
16308                 //static variables/etc.
16309                 public static const LOAD_TARGETS:Vector.<String>;               //slotID:1
16310                 public static const LOAD_SORT_VALUES:Vector.<String>;           //slotID:2
16311                 public static const LOAD_ORDER_VALUES:Vector.<String>;          //slotID:3
16312
16313                 //constructor
16314                 public function GetRelation(hug1:Function, hug2:String, hug3:String=null, hug4:String=null)
16315                 {       //MethodID:1837, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 51
16316                         super();
16317
16318                         if((hug1 == null) || (hug2 == null)) throw new ArgumentError("GetRelation.GetRelation: invalid parameters.");
16319
16320                         this._loadFunc = hug1;
16321                         this._apiURL = hug2;
16322
16323                         this.initialize(hug3, hug4);
16324                 }
16325
16326                 //variables/etc.
16327                 private var _loadFunc:Function;                                 //slotID:0
16328                 private var _watchID:String;                                    //slotID:0
16329                 private var _apiURL:String;                                     //slotID:0
16330                 private var _category:String;                                   //slotID:0
16331                 private var _loadedInfoContainer:_LoadedInfoContainer;          //slotID:0
16332
16333                 public function initialize(hug1:String, hug2:String):void
16334                 {       //MethodID:1838, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 24
16335                         this._watchID = hug1;
16336                         this._category = hug2;
16337                         this._loadedInfoContainer = new _LoadedInfoContainer();
16338                 }
16339
16340                 public function load(hug1:Function, hug2:Vector.<String>, hug3:Vector.<String>=null, hug4:uint=0, hug5:String=null, hug6:String=null, hug7:uint=1):void
16341                 {       //MethodID:1842, LocalCount= 9 , MaxScope= 2, MaxStack= 10, CodeLength= 552
16342                         internal var onLoaded:Function;                                 //slotID:1
16343                         internal var targets:Vector.<String>;                           //slotID:2
16344                         internal var extTargets:Vector.<String> = null;                 //slotID:3
16345                         internal var extTargetCount:uint = 0;                           //slotID:4
16346                         internal var sort:String = null;                                //slotID:5
16347                         internal var order:String = null;                               //slotID:6
16348                         internal var page:uint = 1;                                     //slotID:7
16349                         internal var options:Object;                                    //slotID:8
16350                         internal var extTargetsLength:uint;                             //slotID:9
16351                         internal var loadedResultMap:Object;                            //slotID:10
16352                         internal var targets2Load:Vector.<String>;                      //slotID:11
16353                         internal var extTargets2Load:Vector.<String>;                   //slotID:12
16354                         internal var extTargetCount2Load:uint;                          //slotID:13
16355                         internal var i:uint;                                            //slotID:14
16356                         internal var filterTargets2UseCache:Function;                   //slotID:15
16357                         internal var createResult:Function;                             //slotID:16
16358
16359                         options = null;
16360                         loadedResultMap = null;
16361                         targets2Load = null;
16362                         extTargets2Load = null;
16363                         extTargetCount2Load = 0;
16364                         onLoaded = hug1;
16365                         targets = hug2;
16366                         extTargets = hug3;
16367                         extTargetCount = hug4;
16368                         sort = hug5;
16369                         order = hug6;
16370                         page = hug7;
16371                         filterTargets2UseCache = function(hug1:Vector.<String>, hug2:Object, hug3:Object):Vector.<String>{      //MethodID:1839, LocalCount= 9 , MaxScope= 0, MaxStack= 3, CodeLength= 97
16372                                 var hug5:String = null;
16373                                 var hug6:IGetRelationResult = null;
16374                                 var hug4:Vector.<String> = new Vector.<String>();
16375
16376                                 for each(hug5 in hug1){
16377                                         hug6 = _loadedInfoContainer.getResult(hug5, hug3);
16378
16379                                         if(hug6 == null){
16380                                                 hug4.push(hug5);
16381                                         }else{
16382                                                 hug2[hug5] = hug6;
16383                                         }
16384                                 }
16385
16386                                 return hug4;
16387                         };
16388
16389                         createResult = function(hug1:Object, hug2:IGetRelationResult=null):IGetRelationResult{  //MethodID:1840, LocalCount= 12 , MaxScope= 0, MaxStack= 5, CodeLength= 312
16390                                 var hug3:Vector.<RelatedVideo> = null;
16391                                 var hug4:Vector.<IOwnerOtherVideo> = null;
16392                                 var hug5:String = null;
16393                                 var hug6:ILiveDJInfo = null;
16394                                 var hug7:String = null;
16395                                 var hug8:IGetRelationResult = null;
16396
16397                                 for(hug7 in hug1){
16398                                         hug8 = hug1[hug7];
16399                                         var hug11:String = hug7;
16400
16401                                         switch(hug11){
16402                                         case GetRelationTarget.RELATED_VIDEO:
16403                                                 hug3 = hug8.recommendedVideoList;
16404                                                 break;
16405                                         case GetRelationTarget.OWNER_VIDEO:
16406                                                 hug4 = hug8.ownerOtherVideoList;
16407                                                 hug5 = hug8.ownerOtherVideoURL;
16408                                                 break;
16409                                         case GetRelationTarget.LIVE_DJ:
16410                                                 hug6 = hug8.liveDJInfo;
16411                                                 break;
16412                                         default:
16413                                                 break;
16414                                         }
16415                                 }
16416
16417                                 if(hug2 != null){
16418                                         if(hug2.recommendedVideoList != null) hug3 = hug2.recommendedVideoList;
16419
16420                                         if(hug2.ownerOtherVideoList != null) hug4 = hug2.ownerOtherVideoList;
16421
16422                                         if(hug2.ownerOtherVideoURL != null) hug5 = hug2.ownerOtherVideoURL;
16423
16424                                         if(hug2.liveDJInfo != null) hug6 = hug2.liveDJInfo;
16425                                 }
16426
16427                                 return GetRelationResultFactory.createByValues(hug3, hug4, hug5, hug6);
16428                         };
16429
16430                         if(((targets == null) || (targets.length == 0)) && ((extTargets == null) || (extTargets.length == 0))) throw new ArgumentError("GetRelation.load: no targets to load.");
16431
16432                         if(((extTargets == null) && (extTargetCount > 0)) || ((extTargets != null) && (extTargets.length < extTargetCount))) throw new ArgumentError("GetRelation.load: invalid extTargets or extTargetCount.");
16433
16434                         options = {sort:sort, order:order, page:page};
16435                         extTargetsLength = ((extTargets == null) ? 0 : extTargets.length);
16436                         loadedResultMap = {};
16437                         targets2Load = filterTargets2UseCache(targets, loadedResultMap, options);
16438                         extTargets2Load = filterTargets2UseCache(extTargets, loadedResultMap, options);
16439                         extTargetCount2Load = extTargetCount;
16440                         i = 0;
16441
16442                         while(i < extTargetCount){
16443                                 if(this._loadedInfoContainer.getResult(extTargets[i], options) != null) extTargetCount2Load -= 1;
16444
16445                                 i += 1;
16446                         }
16447
16448                         if(extTargetCount2Load <= 0){
16449                                 extTargetCount2Load = 0;
16450                                 extTargets2Load = null;
16451                         }
16452
16453                         if((targets2Load.length == 0) && (extTargetCount2Load == 0)){
16454                                 ObjectUtils.callLater(onLoaded, true, createResult(loadedResultMap));
16455
16456                                 return;
16457                         }
16458
16459                         this._loadFunc(function(hug1:XML):void{ //MethodID:1841, LocalCount= 4 , MaxScope= 3, MaxStack= 6, CodeLength= 138
16460                                 internal var response:XML;                                      //slotID:1
16461                                 internal var succeeded:Boolean;                                 //slotID:2
16462                                 internal var result:IGetRelationResult;                         //slotID:3
16463                                 internal var result0:IGetRelationResult;                        //slotID:4
16464
16465                                 result = null;
16466                                 result0 = null;
16467                                 response = hug1;
16468                                 succeeded = true;
16469
16470                                 try{
16471                                         result0 = GetRelationResultFactory.createByResponse(response, targets2Load, extTargets2Load, extTargetCount2Load);
16472
16473                                         _loadedInfoContainer.update(result0, options);
16474                                 }
16475                                 catch(error:Error){
16476                                         succeeded = false;
16477                                 }
16478
16479                                 if(succeeded) result = createResult(loadedResultMap, result0);
16480                                 onLoaded.apply(null, [succeeded, result]);
16481                         }, this._apiURL, this._createRequestParameters(targets2Load, extTargets2Load, extTargetCount, sort, order, page), URLRequestMethod.GET);
16482                 }
16483
16484                 private function _createRequestParameters(hug1:Vector.<String>, hug2:Vector.<String>=null, hug3:uint=1, hug4:String=null, hug5:String=null, hug6:uint=1):Object
16485                 {       //MethodID:1843, LocalCount= 8 , MaxScope= 1, MaxStack= 4, CodeLength= 312
16486                         if(((hug1 == null) || (hug1.length == 0)) && ((hug2 == null) || (hug2.length == 0))) throw new ArgumentError("GetRelation._createParametes: invalid targets or extTargets.");
16487
16488                         if(hug6 == 0) throw new ArgumentError("GetRelation._createParameters: invalid page.");
16489
16490                         var hug7:Object = {};
16491                         hug7["video"] = this._watchID;
16492
16493                         if((hug1 != null) && (hug1.length > 0)) hug7["target"] = hug1.join(",");
16494
16495                         if((hug2 != null) && (hug2.length > 0)){
16496                                 if((hug2.length < hug3) || (hug3 == 0)) throw new ArgumentError("GetRelation._createParameters. invalid extTargetCount.");
16497
16498                                 hug7["ext_target"] = hug2.join(",");
16499                                 hug7["ext_target_count"] = hug3;
16500                         }
16501
16502                         if(hug4 != null){
16503                                 if(LOAD_SORT_VALUES.indexOf(hug4) == (-1)) throw new ArgumentError("GetRelation._createParameters. invalid sort.");
16504
16505                                 hug7["sort"] = hug4;
16506                         }
16507
16508                         if(hug5 != null){
16509                                 if(LOAD_ORDER_VALUES.indexOf(hug5) == (-1)) throw new ArgumentError("GetRelation._createParameters. invalid order.");
16510
16511                                 hug7["order"] = hug5;
16512                         }
16513
16514                         if(hug6 > 1) hug7["page"] = hug6;
16515
16516                         return hug7;
16517                 }
16518
16519                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function createRequestParameters(hug1:Vector.<String>, hug2:Vector.<String>=null, hug3:uint=1, hug4:String=null, hug5:String=null, hug6:uint=1, ...args):Object
16520                 {       //MethodID:1844, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 14
16521                         return this._createRequestParameters.apply(this, args);
16522                 }
16523         }
16524 }
16525
16526 import jp.nicovideo.nicoplayer.models.api.relation.GetRelationTarget
16527 import jp.nicovideo.nicoplayer.models.api.relation.IGetRelationResult
16528
16529 //■class(instance)_index:121
16530 //private
16531 class _LoadedInfoContainer extends Object
16532 {
16533         //static constructor
16534         public static function _LoadedInfoContainer$cinit()
16535         {       //MethodID:1826, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
16536         }
16537
16538         //variables/etc.
16539         private var _infoMap:Object;                                    //slotID:0
16540
16541         public function update(hug1:IGetRelationResult, hug2:Object):void
16542         {       //MethodID:1827, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 127
16543                 var hug3:String = null;
16544
16545                 if(hug1.recommendedVideoList != null){
16546                         hug3 = GetRelationTarget.RELATED_VIDEO;
16547                         this._infoMap[this._createKey(hug3, hug2)] = new _LoadedInfo(hug3, hug1, hug2);
16548                 }
16549
16550                 if(hug1.ownerOtherVideoList != null){
16551                         hug3 = GetRelationTarget.OWNER_VIDEO;
16552                         this._infoMap[this._createKey(hug3, hug2)] = new _LoadedInfo(hug3, hug1);
16553                 }
16554
16555                 if(hug1.liveDJInfo != null){
16556                         hug3 = GetRelationTarget.LIVE_DJ;
16557                         this._infoMap[this._createKey(hug3, hug2)] = new _LoadedInfo(hug3, hug1);
16558                 }
16559         }
16560
16561         public function getResult(hug1:String, hug2:Object):IGetRelationResult
16562         {       //MethodID:1828, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 48
16563                 var hug3:_LoadedInfo = this._infoMap[this._createKey(hug1, hug2)];
16564
16565                 if((hug3 != null) && (hug3.data != null)) return hug3.data;
16566
16567                 return null;
16568         }
16569
16570         private function _createKey(hug1:String, hug2:Object=null):String
16571         {       //MethodID:1829, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 92
16572                 var hug4:String = null;
16573
16574                 if((hug2 == null) || (hug1 != GetRelationTarget.RELATED_VIDEO)) return hug1;
16575
16576                 var hug3:String = ("target:" + hug1);
16577
16578                 for(hug4 in hug2){
16579                         hug3 += ("," + hug4 + ":" + hug2[hug4]);
16580                 }
16581
16582                 return hug3;
16583         }
16584
16585         //constructor
16586         public function _LoadedInfoContainer()
16587         {       //MethodID:1830, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
16588                 this._infoMap = {};
16589
16590                 super();
16591         }
16592 }
16593
16594 //■class(instance)_index:122
16595 //private
16596 class _LoadedInfo extends Object
16597 {
16598         //static constructor
16599         public static function _LoadedInfo$cinit()
16600         {       //MethodID:1831, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
16601         }
16602
16603         //constructor
16604         public function _LoadedInfo(hug1:String, hug2:IGetRelationResult, hug3:*=null)
16605         {       //MethodID:1832, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 72
16606                 super();
16607
16608                 if((GetRelation).LOAD_TARGETS.indexOf(hug1) == (-1)) throw new ArgumentError("_LoadedInfo._LoadedInfo: invalid parameters. requestTarget: \"" + hug1 + "\"");
16609
16610                 if(hug2 == null) throw new ArgumentError("_LoadedInfo._LoadedInfo: invalid parameters: data.");
16611
16612                 this._requestTarget = hug1;
16613                 this._requestOptions = hug3;
16614                 this._data = hug2;
16615         }
16616
16617         //variables/etc.
16618         private var _requestTarget:String;                              //slotID:0
16619         private var _requestOptions:*;                                  //slotID:0
16620         private var _data:IGetRelationResult;                           //slotID:0
16621
16622         public function get requestTarget():String
16623         {       //MethodID:1833, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
16624                 return this._requestTarget;
16625         }
16626
16627         public function get requestOptions():*
16628         {       //MethodID:1834, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
16629                 return this._requestOptions;
16630         }
16631
16632         public function get data():IGetRelationResult
16633         {       //MethodID:1835, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
16634                 return this._data;
16635         }
16636 }
16637
16638 //■script103■
16639
16640 package jp.nicovideo.nicoplayer.models.comment{
16641
16642         import jp.nicovideo.nicoplayer.storages.ICommentStorage
16643         import jp.nicovideo.util.Functions
16644         import jp.nicovideo.util.events.event_sender
16645
16646         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
16647
16648         //■class(instance)_index:124
16649         public class CommentStorageEvents extends Object implements EventSender
16650         {
16651                 //static constructor
16652                 public static function CommentStorageEvents$cinit()
16653                 {       //MethodID:1846, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
16654                 }
16655
16656                 //constructor
16657                 public function CommentStorageEvents(hug1:ICommentStorage)
16658                 {       //MethodID:1849, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 70
16659                         internal var commentStorage:ICommentStorage;                    //slotID:1
16660
16661                         commentStorage = hug1;
16662                         this.onWatchCountUpdated = new Functions();
16663                         this.onMylistCountUpdated = new Functions();
16664                         this.onServerTimeUpdated = new Functions();
16665
16666                         super();
16667
16668                         this.__commentStorage = commentStorage;
16669                         commentStorage.onServerTimeUpdated = function(hug1:int):void{   //MethodID:1847, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 24
16670                                 onServerTimeUpdated.apply(hug1);
16671                         };
16672
16673                         commentStorage.onViewCounterUpdated = function(hug1:int, hug2:int):void{        //MethodID:1848, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 47
16674                                 onWatchCountUpdated.apply(hug1);
16675                                 onMylistCountUpdated.apply(hug2);
16676                         };
16677                 }
16678
16679                 //variables/etc.
16680                 private var __commentStorage:ICommentStorage;                   //slotID:0
16681                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) var onWatchCountUpdated:Functions;//slotID:0
16682                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) var onMylistCountUpdated:Functions;//slotID:0
16683                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) var onServerTimeUpdated:Functions;//slotID:0
16684
16685                 public function get eventNames():Array
16686                 {       //MethodID:1850, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 14
16687                         return ["onWatchCountUpdated", "onMylistCountUpdated", "onServerTimeUpdated"];
16688                 }
16689         }
16690 }
16691
16692 //■script104■
16693
16694 package jp.nicovideo.util{
16695
16696         import flash.display.Loader
16697         import flash.display.LoaderInfo
16698         import flash.events.Event
16699         import flash.events.IOErrorEvent
16700         import flash.events.SecurityErrorEvent
16701         import flash.net.URLLoader
16702         import flash.net.URLRequest
16703         import flash.net.URLRequestMethod
16704         import flash.net.URLVariables
16705         import flash.system.ApplicationDomain
16706         import flash.system.LoaderContext
16707         import flash.system.Security
16708         import flash.system.SecurityDomain
16709
16710         //■class(instance)_index:125
16711         public final class HTTPUtils extends Object
16712         {
16713                 //static constructor
16714                 public static function HTTPUtils$cinit()
16715                 {       //MethodID:1852, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
16716                 }
16717
16718                 //static variables/etc.
16719                 public static function sendQuery(hug1:Function, hug2:String, hug3:Object):void
16720                 {       //dispID:3, MethodID:1854, LocalCount= 5 , MaxScope= 2, MaxStack= 5, CodeLength= 45
16721                         internal var f:Function;                                        //slotID:1
16722                         internal var url:String;                                        //slotID:2
16723                         internal var param:Object;                                      //slotID:3
16724
16725                         f = hug1;
16726                         url = hug2;
16727                         param = hug3;
16728
16729                         _loadData(function(hug1:String):URLVariables{   //MethodID:1853, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 39
16730                                 internal var data:String;                                       //slotID:1
16731
16732                                 data = hug1;
16733
16734                                 try{
16735                                         return new URLVariables(data);
16736                                 }
16737                                 catch(e:Error){
16738                                 }
16739
16740                                 return null;
16741                         }, f, url, param);
16742                 }
16743
16744                 public static function sendPostData(hug1:Function, hug2:String, hug3:Object):void
16745                 {       //dispID:4, MethodID:1856, LocalCount= 5 , MaxScope= 2, MaxStack= 6, CodeLength= 51
16746                         internal var f:Function;                                        //slotID:1
16747                         internal var url:String;                                        //slotID:2
16748                         internal var param:Object;                                      //slotID:3
16749
16750                         f = hug1;
16751                         url = hug2;
16752                         param = hug3;
16753
16754                         _loadData(function(hug1:String):URLVariables{   //MethodID:1855, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 39
16755                                 internal var data:String;                                       //slotID:1
16756
16757                                 data = hug1;
16758
16759                                 try{
16760                                         return new URLVariables(data);
16761                                 }
16762                                 catch(e:Error){
16763                                 }
16764
16765                                 return null;
16766                         }, f, url, param, URLRequestMethod.POST);
16767                 }
16768
16769                 public static function loadXML(hug1:Function, hug2:String, hug3:Object, hug4:String=null):void
16770                 {       //dispID:5, MethodID:1858, LocalCount= 6 , MaxScope= 2, MaxStack= 6, CodeLength= 55
16771                         internal var f:Function;                                        //slotID:1
16772                         internal var url:String;                                        //slotID:2
16773                         internal var param:Object;                                      //slotID:3
16774                         internal var method:String = null;                              //slotID:4
16775
16776                         f = hug1;
16777                         url = hug2;
16778                         param = hug3;
16779                         method = hug4;
16780
16781                         _loadData(function(hug1:String):XML{    //MethodID:1857, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 39
16782                                 internal var data:String;                                       //slotID:1
16783
16784                                 data = hug1;
16785
16786                                 try{
16787                                         return new XML(data);
16788                                 }
16789                                 catch(e:Error){
16790                                 }
16791
16792                                 return null;
16793                         }, f, url, param, method);
16794                 }
16795
16796                 public static function loadJSON(hug1:Function, hug2:String, hug3:Object, hug4:String=null):void
16797                 {       //dispID:6, MethodID:1860, LocalCount= 6 , MaxScope= 2, MaxStack= 6, CodeLength= 55
16798                         internal var f:Function;                                        //slotID:1
16799                         internal var url:String;                                        //slotID:2
16800                         internal var param:Object;                                      //slotID:3
16801                         internal var method:String = null;                              //slotID:4
16802
16803                         f = hug1;
16804                         url = hug2;
16805                         param = hug3;
16806                         method = hug4;
16807
16808                         _loadData(function(hug1:String):Object{ //MethodID:1859, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 41
16809                                 internal var data:String;                                       //slotID:1
16810
16811                                 data = hug1;
16812
16813                                 try{
16814                                         return JSON.decode(data);
16815                                 }
16816                                 catch(e:Error){
16817                                 }
16818
16819                                 return null;
16820                         }, f, url, param, method);
16821                 }
16822
16823                 private static function _loadData(hug1:Function, hug2:Function, hug3:String, hug4:Object, hug5:String=null):void
16824                 {       //dispID:7, MethodID:1863, LocalCount= 7 , MaxScope= 2, MaxStack= 5, CodeLength= 276
16825                         internal var convert:Function;                                  //slotID:1
16826                         internal var f:Function;                                        //slotID:2
16827                         internal var url:String;                                        //slotID:3
16828                         internal var param:Object;                                      //slotID:4
16829                         internal var method:String = null;                              //slotID:5
16830                         internal var loader:URLLoader;                                  //slotID:6
16831                         internal var request:URLRequest;                                //slotID:7
16832                         internal var error_handler:Function;                            //slotID:8
16833
16834                         error_handler = null;
16835                         convert = hug1;
16836                         f = hug2;
16837                         url = hug3;
16838                         param = hug4;
16839                         method = hug5;
16840                         error_handler = function(hug1:Event):void{      //MethodID:1861, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
16841                                 f(null);
16842                         };
16843
16844                         if(method == null) method = URLRequestMethod.GET;
16845
16846                         loader = new URLLoader();
16847                         request = new URLRequest();
16848
16849                         if(method == URLRequestMethod.GET){
16850                                 request = new URLRequest(StringUtils.joinQuery(url, param));
16851                                 request.method = URLRequestMethod.GET;
16852                         }
16853
16854                         if(method == URLRequestMethod.POST){
16855                                 request = new URLRequest(url);
16856                                 request.method = URLRequestMethod.POST;
16857                                 request.data = new URLVariables(StringUtils.queryString(param));
16858                         }
16859
16860                         loader.load(request);
16861                         loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:1862, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 23
16862                                 f(convert(hug1.target.data));
16863                         });
16864                         loader.addEventListener(IOErrorEvent.IO_ERROR, error_handler);
16865                         loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error_handler);
16866                 }
16867
16868                 public static function loadSWF(hug1:Function, hug2:String, hug3:Object):void
16869                 {       //dispID:8, MethodID:1866, LocalCount= 6 , MaxScope= 5, MaxStack= 7, CodeLength= 226
16870                         internal var f:Function;                                        //slotID:1
16871                         internal var url:String;                                        //slotID:2
16872                         internal var params:Object;                                     //slotID:3
16873                         internal var loader:Loader;                                     //slotID:4
16874                         internal var loaderInfo:LoaderInfo;                             //slotID:5
16875                         internal var error_handler:Function;                            //slotID:6
16876
16877                         error_handler = null;
16878                         f = hug1;
16879                         url = hug2;
16880                         params = hug3;
16881                         error_handler = function(hug1:Event):void{      //MethodID:1864, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
16882                                 f(null);
16883                         };
16884
16885                         loader = new Loader();
16886                         loaderInfo = loader.contentLoaderInfo;
16887
16888                         loaderInfo.addEventListener(Event.INIT, function(hug1:Event):void{      //MethodID:1865, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 16
16889                                 f(hug1.target.content);
16890                         });
16891                         loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, error_handler);
16892                         loaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error_handler);
16893
16894                         try{
16895                                 loader.load(new URLRequest(StringUtils.joinQuery(url, params)), new LoaderContext(false, ApplicationDomain.currentDomain, ((Security.sandboxType == Security.REMOTE) ? SecurityDomain.currentDomain : null)));
16896                         }
16897                         catch(error:Error){
16898                                 ObjectUtils.callLater(f, null);
16899                         }
16900                 }
16901
16902                 //constructor
16903                 public function HTTPUtils()
16904                 {       //MethodID:1867, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
16905                         super();
16906                 }
16907         }
16908 }
16909
16910 //■script105■
16911
16912 package{
16913
16914         //■class(instance)_index:126
16915         //private
16916         class _CommentTokenParam extends Object
16917         {
16918                 //static constructor
16919                 public static function _CommentTokenParam$cinit()
16920                 {       //MethodID:1882, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
16921                         SALT = "nimocon";
16922                 }
16923
16924                 //static variables/etc.
16925                 public static const SALT:String = "nimocon";                    //slotID:1
16926
16927                 //constructor
16928                 public function _CommentTokenParam()
16929                 {       //MethodID:1883, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
16930                         super();
16931                 }
16932         }
16933 }
16934
16935 import jp.nicovideo.remocon.AlertState
16936
16937 //■class(instance)_index:127
16938 //private
16939 class _SeekPlusLevel extends Object
16940 {
16941         //static constructor
16942         public static function _SeekPlusLevel$cinit()
16943         {       //MethodID:1884, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
16944                 LEVEL1 = "LV1";
16945                 LEVEL2 = "LV2";
16946                 LEVEL3 = "LV3";
16947         }
16948
16949         //static variables/etc.
16950         public static const LEVEL1:String = "LV1";                      //slotID:1
16951         public static const LEVEL2:String = "LV2";                      //slotID:2
16952         public static const LEVEL3:String = "LV3";                      //slotID:3
16953
16954         public static function getState(hug1:Number, hug2:String):String
16955         {       //dispID:3, MethodID:1885, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 208
16956                 if(isNaN(hug1)) throw new ArgumentError("_SeekPlusLevel.convertState: invalid param offset: " + hug1);
16957
16958                 var hug3:String = hug2;
16959
16960                 switch(hug3){
16961                 case LEVEL1:
16962                         return ((hug1 > 0) ? AlertState.FAST_FOWARD_LV1 : AlertState.REWIND_LV1);
16963                 case LEVEL2:
16964                         return ((hug1 > 0) ? AlertState.FAST_FOWARD_LV2 : AlertState.REWIND_LV2);
16965                 case LEVEL3:
16966                         return ((hug1 > 0) ? AlertState.FAST_FOWARD_LV3 : AlertState.REWIND_LV3);
16967                 default:
16968                         throw new ArgumentError("_SeekPlusLevel.convertState: invalid param level: " + hug2);
16969                         break;
16970                 }
16971         }
16972
16973         //constructor
16974         public function _SeekPlusLevel()
16975         {       //MethodID:1886, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
16976                 super();
16977         }
16978 }
16979
16980
16981 public function defineRemoconMethods(hug1:IRemoconReceiver):void
16982 {       //dispID:2, MethodID:1881, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 208
16983         internal var receiver:IRemoconReceiver;                         //slotID:1
16984         internal var createArgErrorText:Function;                       //slotID:2
16985
16986         receiver = hug1;
16987         createArgErrorText = function(hug1:String, hug2:String, hug3:Object):String{    //MethodID:1869, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 42
16988                 return (("defineRemoconMethods: invalid params. " + "method name: \"" + hug1 + "\"" + "param name: \"" + hug2 + "\"" + "value \"") + hug3[hug2].toString() + "\"");
16989         };
16990
16991         receiver.defineMethod(RemoconSystemMethodName.CHANGE_STATUS, function(hug1:Object):void{        //MethodID:1870, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 213
16992                 RemoconState.instance.updateState(hug1.toString());
16993
16994                 var hug2:String = hug1.toString();
16995                 var hug3:String = null;
16996                 var hug4:String = hug2;
16997
16998                 switch(hug4){
16999                 case RemoconState.COMPLETE:
17000                         hug3 = AlertState.REMOCON_CONNECT;
17001                         break;
17002                 case RemoconState.CLOSE:
17003                         hug3 = AlertState.REMOCON_HALT;
17004                         break;
17005                 case RemoconState.ERROR:
17006                         hug3 = AlertState.REMOCON_ERROR;
17007                         break;
17008                 case RemoconState.MAINTENANCE:
17009                         hug3 = AlertState.REMOCON_MAINTENANCE;
17010                         break;
17011                 default:
17012                         return;
17013                         break;
17014                 }
17015
17016                 RemoconNotifier(this.notifier).showAlert(hug3);
17017         });
17018         receiver.defineMethod(RemoconMethodName.SET_VOL, function(hug1:Object):void{    //MethodID:1871, LocalCount= 5 , MaxScope= 4, MaxStack= 7, CodeLength= 252
17019                 internal var params:Object;                                     //slotID:1
17020                 internal var newVolume:Number;                                  //slotID:2
17021                 internal var config:IPlayerConfig;                              //slotID:3
17022
17023                 params = hug1;
17024                 newVolume = (parseFloat(params[RemoconMethodParamName.VOLUME]) / 100);
17025
17026                 if(isNaN(newVolume)) throw new ArgumentError(createArgErrorText(RemoconMethodName.SET_VOL, RemoconMethodParamName.VOLUME, params));
17027
17028                 newVolume = Math.max(0, newVolume);
17029                 newVolume = Math.min(1, newVolume);
17030                 config = IPlayerConfig(this.playerConfig);
17031
17032                 try{
17033                         config.isMute = false;
17034                         config.volume = newVolume;
17035                 }
17036                 finally{
17037                         RemoconNotifier(this.notifier).showAlert(AlertState.VOLUME, {value:(newVolume * 100).toString()});
17038                 }
17039         });
17040         receiver.defineMethod(RemoconMethodName.SEEK_TO, function(hug1:Object):void{    //MethodID:1872, LocalCount= 9 , MaxScope= 0, MaxStack= 5, CodeLength= 241
17041                 var hug2:RemoconPlayerStateObserver = this.stateObserver;
17042
17043                 if(hug2.isHirobaMode || hug2.isNicowariMode) return;
17044
17045                 if(IControllerShutter(this.audioShutter).isClosing(AudioShutterConstants.SHUTTER_SEEK) || IControllerShutter(this.audioShutter).isClosing(AudioShutterConstants.SHUTTER_PLUGIN)) return;
17046
17047                 var hug3:IVideoController = this.videoController;
17048                 var hug4:IVideo = hug3.videoWrapper;
17049                 var hug5:Number = hug4.vpos;
17050                 var hug6:Number = hug4.length;
17051                 var hug7:Number = parseFloat(hug1[RemoconMethodParamName.VPOS]);
17052
17053                 if(isNaN(hug7)) throw new ArgumentError(createArgErrorText(RemoconMethodName.SEEK_TO, RemoconMethodParamName.VPOS, hug1));
17054
17055                 var hug8:Number = (hug7 * 1000);
17056                 hug8 = Math.max(0, hug8);
17057                 hug8 = Math.min(hug6, hug8);
17058
17059                 if(hug8 == hug5) return;
17060                 hug3.seek(hug8);
17061                 RemoconNotifier(this.notifier).prepareVideoSeekSignal(hug5);
17062         });
17063         receiver.defineMethod(RemoconMethodName.SEEK_PLUS, function(hug1:Object):void{  //MethodID:1873, LocalCount= 5 , MaxScope= 4, MaxStack= 7, CodeLength= 413
17064                 internal var params:Object;                                     //slotID:1
17065                 internal var observer:RemoconPlayerStateObserver;               //slotID:2
17066                 internal var controller:IVideoController;                       //slotID:3
17067                 internal var video:IVideo;                                      //slotID:4
17068                 internal var currentVpos:Number;                                //slotID:5
17069                 internal var videoLength:Number;                                //slotID:6
17070                 internal var paramSec:Number;                                   //slotID:7
17071                 internal var targetVpos:Number;                                 //slotID:8
17072                 internal var state:String;                                      //slotID:9
17073
17074                 state = null;
17075                 params = hug1;
17076                 observer = this.stateObserver;
17077
17078                 if(observer.isHirobaMode || observer.isNicowariMode) return;
17079
17080                 if(IControllerShutter(this.audioShutter).isClosing(AudioShutterConstants.SHUTTER_SEEK) || IControllerShutter(this.audioShutter).isClosing(AudioShutterConstants.SHUTTER_PLUGIN)) return;
17081
17082                 controller = this.videoController;
17083                 video = controller.videoWrapper;
17084                 currentVpos = video.vpos;
17085                 videoLength = video.length;
17086                 paramSec = parseFloat(params[RemoconMethodParamName.OFFSET]);
17087
17088                 if(isNaN(paramSec)) throw new ArgumentError(createArgErrorText(RemoconMethodName.SEEK_PLUS, RemoconMethodParamName.OFFSET, params));
17089
17090                 targetVpos = ((paramSec * 1000) + currentVpos);
17091                 targetVpos = Math.max(0, targetVpos);
17092                 targetVpos = Math.min(videoLength, targetVpos);
17093
17094                 if(targetVpos == currentVpos) return;
17095
17096                 try{
17097                         controller.seek(targetVpos);
17098                 }
17099                 finally{
17100                         state = (_SeekPlusLevel).getState(paramSec, params[RemoconMethodParamName.LEVEL]);
17101
17102                         RemoconNotifier(this.notifier).showAlert(state);
17103                 }
17104         });
17105         receiver.defineMethod(RemoconMethodName.SEEK_TO_ALERT, function(hug1:Object):void{      //MethodID:1874, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 22
17106                 RemoconNotifier(this.notifier).showAlert(AlertState.SEEK_CHANGE);
17107         });
17108         receiver.defineMethod(RemoconMethodName.TOGGLE_PLAY, function(hug1:Object):void{        //MethodID:1875, LocalCount= 5 , MaxScope= 4, MaxStack= 4, CodeLength= 268
17109                 internal var params:Object;                                     //slotID:1
17110                 internal var observer:RemoconPlayerStateObserver;               //slotID:2
17111                 internal var controller:IVideoController;                       //slotID:3
17112                 internal var alertState:String;                                 //slotID:4
17113
17114                 alertState = null;
17115                 params = hug1;
17116                 observer = this.stateObserver;
17117
17118                 if(observer.isHirobaMode || observer.isNicowariMode) return;
17119
17120                 if(IControllerShutter(this.audioShutter).isClosing(AudioShutterConstants.SHUTTER_PLUGIN)) return;
17121
17122                 controller = this.videoController;
17123
17124                 try{
17125                         if(controller.videoWrapper.isEnd){
17126                                 controller.seek(0);
17127                                 controller.play();
17128
17129                                 alertState = AlertState.PLAY;
17130                         }else if(controller.isPlaying){
17131                                 controller.stop();
17132
17133                                 alertState = AlertState.PAUSE;
17134                         }else{
17135                                 controller.play();
17136
17137                                 alertState = AlertState.PLAY;
17138                         }
17139                 }
17140                 finally{
17141                         RemoconNotifier(this.notifier).showAlert(alertState);
17142                 }
17143         });
17144         receiver.defineMethod(RemoconMethodName.TOGGLE_REPEAT, function(hug1:Object):void{      //MethodID:1876, LocalCount= 5 , MaxScope= 4, MaxStack= 4, CodeLength= 183
17145                 internal var params:Object;                                     //slotID:1
17146                 internal var observer:RemoconPlayerStateObserver;               //slotID:2
17147                 internal var playerConfig:IPlayerConfig;                        //slotID:3
17148                 internal var newSetting:Boolean;                                //slotID:4
17149
17150                 params = hug1;
17151                 observer = this.stateObserver;
17152
17153                 if(observer.isHirobaMode || observer.isNicowariMode) return;
17154
17155                 playerConfig = this.playerConfig;
17156                 newSetting = !playerConfig.isLoop;
17157
17158                 try{
17159                         playerConfig.isLoop = newSetting;
17160                 }
17161                 finally{
17162                         RemoconNotifier(this.notifier).showAlert(newSetting ? AlertState.REPEAT_ON : AlertState.REPEAT_OFF);
17163                 }
17164         });
17165         receiver.defineMethod(RemoconMethodName.TOGGLE_MUTE, function(hug1:Object):void{        //MethodID:1877, LocalCount= 5 , MaxScope= 4, MaxStack= 7, CodeLength= 173
17166                 internal var params:Object;                                     //slotID:1
17167                 internal var playerConfig:IPlayerConfig;                        //slotID:2
17168                 internal var newSetting:Boolean;                                //slotID:3
17169
17170                 params = hug1;
17171                 playerConfig = this.playerConfig;
17172                 newSetting = !playerConfig.isMute;
17173
17174                 try{
17175                         playerConfig.isMute = newSetting;
17176                 }
17177                 finally{
17178                         if(newSetting){
17179                                 RemoconNotifier(this.notifier).showAlert(AlertState.MUTE_ON);
17180                         }else{
17181                                 RemoconNotifier(this.notifier).showAlert(AlertState.MUTE_OFF, {value:(playerConfig.volume * 100)});
17182                         }
17183                 }
17184         });
17185         receiver.defineMethod(RemoconMethodName.TOGGLE_FULLSCREEN, function(hug1:Object):void{  //MethodID:1878, LocalCount= 5 , MaxScope= 4, MaxStack= 5, CodeLength= 212
17186                 internal var params:Object;                                     //slotID:1
17187                 internal var observer:RemoconPlayerStateObserver;               //slotID:2
17188                 internal var config:IPlayerConfig;                              //slotID:3
17189                 internal var newSetting:uint;                                   //slotID:4
17190
17191                 params = hug1;
17192                 observer = this.stateObserver;
17193
17194                 if(observer.isNicowariMode) return;
17195
17196                 config = this.playerConfig;
17197                 newSetting = ((config.screenMode == ScreenMode.NORMAL) ? ScreenMode.BROWSER_FULL : ScreenMode.NORMAL);
17198
17199                 try{
17200                         RemoconFullScreenKeeper(this.fullScreenKeeper).update(newSetting);
17201                 }
17202                 finally{
17203                         RemoconNotifier(this.notifier).showAlert((newSetting == ScreenMode.NORMAL) ? AlertState.FULLSCREEN_OFF : AlertState.FULLSCREEN_ON);
17204                 }
17205         });
17206         receiver.defineMethod(RemoconMethodName.TOGGLE_COMMENT_VISIBLE, function(hug1:Object):void{     //MethodID:1879, LocalCount= 5 , MaxScope= 4, MaxStack= 4, CodeLength= 145
17207                 internal var params:Object;                                     //slotID:1
17208                 internal var config:IPlayerConfig;                              //slotID:2
17209                 internal var newSetting:Boolean;                                //slotID:3
17210
17211                 params = hug1;
17212                 config = this.playerConfig;
17213                 newSetting = !config.commentVisible;
17214
17215                 try{
17216                         config.commentVisible = newSetting;
17217                 }
17218                 finally{
17219                         RemoconNotifier(this.notifier).showAlert(newSetting ? AlertState.COMMENT_VISIBLE : AlertState.COMMENT_INVISIBLE);
17220                 }
17221         });
17222         receiver.defineMethod(RemoconMethodName.POST_COMMENT, function(hug1:Object):void{       //MethodID:1880, LocalCount= 10 , MaxScope= 0, MaxStack= 4, CodeLength= 371
17223                 var hug8:CommentBuilder = null;
17224                 var hug9:IVideoController = null;
17225                 var hug2:uint = 0;
17226
17227                 while(hug2 < CommentShutterConstants.END_OF_ENUM){
17228                         if(IControllerShutter(this.commentShutter).isClosing(hug2)) return;
17229
17230                         hug2++;
17231                 }
17232
17233                 var hug3:RemoconPlayerStateObserver = this.stateObserver;
17234
17235                 if(hug3.isHirobaMode || hug3.isNicowariMode) return;
17236
17237                 var hug4:String = hug1[RemoconMethodParamName.TEXT];
17238                 var hug5:String = hug1[RemoconMethodParamName.COMMAND];
17239                 var hug6:Number = Number(hug1[RemoconMethodParamName.EXPIRE]);
17240                 var hug7:String = hug1[RemoconMethodParamName.TOKEN];
17241
17242                 if(!isNaN(hug6) && (hug6 >= TimeUtils.time) && (hug4 != null) && (hug4 != "") && (hug7 == MD5.hash(((_CommentTokenParam).SALT + "." + hug4 + "." + hug5 + ".") + hug6.toString()))){
17243                         hug8 = new CommentBuilder();
17244                         hug9 = this.videoController;
17245                         hug8.vpos = hug9.videoWrapper.vpos;
17246                         hug8.message = hug4;
17247                         hug8.command = new Command(hug5, this.isPremium);
17248                         hug8.date = TimeUtils.now();
17249                         hug8.isPremium = this.isPremium;
17250                         hug8.userName = this.userName;
17251                         hug8.userID = this.userID;
17252
17253                         RemoconNotifier(this.notifier).prepareCommentPostAlert();
17254                         ICommentRouter(this.commentRouter).post(hug8.make());
17255                 }
17256         });
17257 }
17258
17259 //■script106■
17260
17261 package jp.nicovideo.nicoplayer.models.api{
17262
17263         //■class(instance)_index:128
17264         public interface IInitializeInfo
17265         {
17266                 //static constructor
17267                 public static function IInitializeInfo$cinit()
17268                 {       //MethodID:1888, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
17269                 }
17270
17271                 //variables/etc.
17272                 function get userID():String;                                               //MethodID:1889, dispID:0
17273
17274                 function get nickname():String;                                             //MethodID:1890, dispID:0
17275
17276                 function get isPremium():Boolean;                                           //MethodID:1891, dispID:0
17277
17278                 function get ngRevision():Number;                                           //MethodID:1892, dispID:0
17279
17280                 function get isNGMaintenance():Boolean;                                     //MethodID:1893, dispID:0
17281
17282                 function get feedrev():String;                                              //MethodID:1894, dispID:0
17283
17284                 function get recentPremiumUsers():Object;                                   //MethodID:1895, dispID:0
17285
17286                 //constructor
17287                 public function IInitializeInfo();                                          //MethodID:1896, dispID:0
17288         }
17289 }
17290
17291 //■script107■
17292
17293 package jp.nicovideo.nicoplayer.models.api{
17294
17295         //■class(instance)_index:129
17296         public class InitializeInfo extends Object implements IInitializeInfo
17297         {
17298                 //static constructor
17299                 public static function InitializeInfo$cinit()
17300                 {       //MethodID:1898, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
17301                         isInit = false;
17302                 }
17303
17304                 //static variables/etc.
17305                 private static var _instance:InitializeInfo;                    //slotID:1
17306                 private static var isInit:Boolean = false;                      //slotID:2
17307
17308                 public static function init(hug1:String, hug2:String, hug3:Boolean, hug4:Number, hug5:Boolean, hug6:String, hug7:Object):InitializeInfo
17309                 {       //dispID:3, MethodID:1899, LocalCount= 8 , MaxScope= 1, MaxStack= 2, CodeLength= 93
17310                         if(!_instance) _instance = new InitializeInfo();
17311
17312                         if(isInit) return _instance;
17313
17314                         _instance.userID = hug1;
17315                         _instance.nickname = hug2;
17316                         _instance.isPremium = hug3;
17317                         _instance.ngRevision = hug4;
17318                         _instance.isNGMaintenance = hug5;
17319                         _instance.feedrev = hug6;
17320                         _instance.recentPremiumUsers = hug7;
17321                         isInit = true;
17322                         return _instance;
17323                 }
17324
17325                 public static function getInstance():InitializeInfo
17326                 {       //dispID:4, MethodID:1900, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
17327                         if(!isInit) throw new Error("initializeInfo not initialize");
17328
17329                         return _instance;
17330                 }
17331
17332                 //constructor
17333                 public function InitializeInfo()
17334                 {       //MethodID:1901, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
17335                         super();
17336
17337                         if(_instance) throw new Error("initializeInfo is singleton");
17338                 }
17339
17340                 //variables/etc.
17341                 private var _userID:String;                                     //slotID:0
17342                 private var _nickname:String;                                   //slotID:0
17343                 private var _isPremium:Boolean = false;                         //slotID:0
17344                 private var _ngRevision:Number;                                 //slotID:0
17345                 private var _isNGMaintenance:Boolean = false;                   //slotID:0
17346                 private var _feedrev:String;                                    //slotID:0
17347                 private var _recentPremiumUsers:Object;                         //slotID:0
17348
17349                 public function get userID():String
17350                 {       //MethodID:1902, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17351                         return this._userID;
17352                 }
17353
17354                 public function set userID(hug1:String):void
17355                 {       //MethodID:1903, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17356                         this._userID = hug1;
17357                 }
17358
17359                 public function get nickname():String
17360                 {       //MethodID:1904, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17361                         return this._nickname;
17362                 }
17363
17364                 public function set nickname(hug1:String):void
17365                 {       //MethodID:1905, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17366                         this._nickname = hug1;
17367                 }
17368
17369                 public function get isPremium():Boolean
17370                 {       //MethodID:1906, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17371                         return this._isPremium;
17372                 }
17373
17374                 public function set isPremium(hug1:Boolean):void
17375                 {       //MethodID:1907, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17376                         this._isPremium = hug1;
17377                 }
17378
17379                 public function get ngRevision():Number
17380                 {       //MethodID:1908, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17381                         return this._ngRevision;
17382                 }
17383
17384                 public function set ngRevision(hug1:Number):void
17385                 {       //MethodID:1909, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17386                         this._ngRevision = hug1;
17387                 }
17388
17389                 public function get isNGMaintenance():Boolean
17390                 {       //MethodID:1910, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17391                         return this._isNGMaintenance;
17392                 }
17393
17394                 public function set isNGMaintenance(hug1:Boolean):void
17395                 {       //MethodID:1911, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17396                         this._isNGMaintenance = hug1;
17397                 }
17398
17399                 public function get feedrev():String
17400                 {       //MethodID:1912, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17401                         return this._feedrev;
17402                 }
17403
17404                 public function set feedrev(hug1:String):void
17405                 {       //MethodID:1913, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17406                         this._feedrev = hug1;
17407                 }
17408
17409                 public function set recentPremiumUsers(hug1:Object):void
17410                 {       //MethodID:1914, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
17411                         this._recentPremiumUsers = hug1;
17412                 }
17413
17414                 public function get recentPremiumUsers():Object
17415                 {       //MethodID:1915, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17416                         return this._recentPremiumUsers;
17417                 }
17418         }
17419 }
17420
17421 //■script108■
17422
17423 package jp.nicovideo.nicoplayer.models.comment{
17424
17425         //■class(instance)_index:130
17426         public interface IEditableCommentList implements ICommentList
17427         {
17428                 //static constructor
17429                 public static function IEditableCommentList$cinit()
17430                 {       //MethodID:1917, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
17431                 }
17432
17433                 //variables/etc.
17434                 function editCommentList(hug1:Array, hug2:Array, hug3:Function):void;       //MethodID:1918, dispID:0
17435
17436                 //constructor
17437                 public function IEditableCommentList();                                     //MethodID:1919, dispID:0
17438         }
17439 }
17440
17441 //■script109■
17442
17443 package jp.nicovideo.nicoplayer.models.comment{
17444
17445         import flash.errors.IllegalOperationError
17446         import jp.nicovideo.nicoplayer.models.SystemMessage
17447         import jp.nicovideo.nicoplayer.storages.CommentPostResultStatus
17448         import jp.nicovideo.nicoplayer.storages.CommentStorageError
17449         import jp.nicovideo.nicoplayer.storages.ICommentStorage
17450         import jp.nicovideo.nicoplayer.storages.ICommentStorageHandle
17451         import jp.nicovideo.nicoplayer.storages.MessageServerClient
17452         import jp.nicovideo.util.ArrayUtils
17453         import jp.nicovideo.util.Functions
17454         import jp.nicovideo.util.ObjectUtils
17455         import jp.nicovideo.util.events.EventResult
17456         import jp.nicovideo.util.events.event_sender
17457         import jp.nicovideo.util.loka.__MSG__
17458
17459         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
17460         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
17461         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
17462
17463         //■class(instance)_index:131
17464         public class CommentList extends Object implements IEditableCommentList
17465         {
17466                 //static constructor
17467                 public static function CommentList$cinit()
17468                 {       //MethodID:1921, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
17469                 }
17470
17471                 //constructor
17472                 public function CommentList(hug1:String, hug2:Number, hug3:ICommentStorage, hug4:String, hug5:Boolean=false, hug6:Boolean=false)
17473                 {       //MethodID:1924, LocalCount= 8 , MaxScope= 2, MaxStack= 5, CodeLength= 427
17474                         internal var threadID:String;                                   //slotID:1
17475                         internal var videoLength:Number;                                //slotID:2
17476                         internal var commentStorage:ICommentStorage;                    //slotID:3
17477                         internal var name:String;                                       //slotID:4
17478                         internal var isMymemory:Boolean = false;                        //slotID:5
17479                         internal var isLeaf:Boolean = false;                            //slotID:6
17480                         internal var leafs:uint;                                        //slotID:7
17481
17482                         leafs = 0;
17483                         threadID = hug1;
17484                         videoLength = hug2;
17485                         commentStorage = hug3;
17486                         name = hug4;
17487                         isMymemory = hug5;
17488                         isLeaf = hug6;
17489                         this._comments = [];
17490                         this.clickedResNoMapping = {};
17491                         this._pastCommentList = [];
17492                         this._yourPosts = {};
17493                         this.onCommentListInitialized = new Functions();
17494                         this.onCommentListUpdated = new Functions();
17495                         this.onCommentPost = new Functions();
17496                         this.onCommentPostFinished = new Functions();
17497                         this.onCommentCountUpdated = new Functions();
17498
17499                         super();
17500
17501                         this._this = this;
17502                         this._threadID = threadID;
17503                         this._storage = commentStorage;
17504                         this._name = name;
17505                         this._isMymemory = isMymemory;
17506                         this._leafMode = isLeaf;
17507                         this._leafMaxNum = this.LEAF_MAX_NUM_DEFAULT;
17508
17509                         if(this._leafMode && (videoLength >= ((12 * 60 * 60 * 60) * 1000))){
17510                                 leafs = Math.floor((videoLength + (10 * 1000)) / (60 * 1000));
17511                                 this._leafMaxNum = Math.floor((this.LEAF_MAX_NUM_DEFAULT * 720) / leafs);
17512                         }
17513
17514                         this._handle = this._storage.attach(this._threadID);
17515                         this._handle.autoSyncEnabled = true;
17516                         this._handle.isCommunityThread = (this._name == CommentConstants.CL_PRIVATE);
17517                         this._handle.onComments = this.__onComments;
17518                         this._handle.onNumberOfClick = function(hug1:int, hug2:int):void{       //MethodID:1923, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 178
17519                                 internal var no:int;                                            //slotID:1
17520                                 internal var count:int;                                         //slotID:2
17521                                 internal var index:int;                                         //slotID:3
17522                                 internal var original:IComment;                                 //slotID:4
17523                                 internal var builder:CommentBuilder;                            //slotID:5
17524
17525                                 no = hug1;
17526                                 count = hug2;
17527                                 index = ArrayUtils.lowerBoundIndex(function(hug1:int, hug2:IComment):Number{    //MethodID:1922, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 7
17528                                         return (hug1 - hug2.resNo);
17529                                 }, no, _comments);
17530
17531                                 if((index == (-1)) || (_comments[index].resNo != no)) return;
17532
17533                                 original = _comments[index];
17534
17535                                 if(original.clickCount == count) return;
17536
17537                                 builder = new CommentBuilder(original);
17538                                 builder.clickCount = count;
17539                                 _comments[index] = builder.make();
17540
17541                                 __reflect(false, NaN, [_comments[index]], []);
17542                         };
17543
17544                         this.commentLimit = 100;
17545
17546                         if(this._isMymemory || (videoLength >= 0x927C0)){
17547                                 this.commentLimit = 1000;
17548                         }else if(videoLength >= 0x493E0){
17549                                 this.commentLimit = 500;
17550                         }else if(videoLength >= 0xEA60){
17551                                 this.commentLimit = 250;
17552                         }
17553
17554                         if(name == CommentConstants.CL_NICOS) this.commentLimit /= 2;
17555                 }
17556
17557                 //variables/etc.
17558                 private const LEAF_MAX_NUM_DEFAULT:uint = 100;                  //slotID:0
17559                 private var _this:ICommentList;                                 //slotID:0
17560                 private var _threadID:String;                                   //slotID:0
17561                 private var _name:String = "commentlist:main";                  //slotID:0
17562                 private var _comments:Array;                                    //slotID:0
17563                 private var _isMymemory:Boolean;                                //slotID:0
17564                 private var _storage:ICommentStorage;                           //slotID:0
17565                 private var _handle:ICommentStorageHandle;                      //slotID:0
17566                 private var commentLimit:uint = 0;                              //slotID:0
17567                 private var clickedResNoMapping:Object;                         //slotID:0
17568                 private var _hasInitialized:Boolean = false;                    //slotID:0
17569                 private var _pastCommentList:Array;                             //slotID:0
17570                 private var _lastPastDate:Date;                                 //slotID:0
17571                 private var _pastMode:Boolean;                                  //slotID:0
17572                 private var _yourPosts:Object;                                  //slotID:0
17573                 private var _leafMode:Boolean;                                  //slotID:0
17574                 private var _leafMaxNum:uint;                                   //slotID:0
17575                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentListInitialized:Functions;//slotID:0
17576                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentListUpdated:Functions;//slotID:0
17577                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPost:Functions;//slotID:0
17578                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPostFinished:Functions;//slotID:0
17579                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentCountUpdated:Functions;//slotID:0
17580
17581                 public function get eventNames():Array
17582                 {       //MethodID:1925, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 24
17583                         var hug1:Array = ["onCommentListInitialized", "onCommentListUpdated", "onCommentPost", "onCommentPostFinished", "onCommentCountUpdated"];
17584                         return hug1;
17585                 }
17586
17587                 public function initialize(hug1:Function):void
17588                 {       //MethodID:1928, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 53
17589                         internal var f:Function;                                        //slotID:1
17590
17591                         f = hug1;
17592
17593                         if(this._hasInitialized) throw new IllegalOperationError("CommentList.initialize: Already initialized.");
17594                         this._handle.enterThread(function(hug1:CommentStorageError, hug2:Array):void{   //MethodID:1927, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 91
17595                                 internal var e:CommentStorageError;                             //slotID:1
17596                                 internal var comments:Array;                                    //slotID:2
17597
17598                                 e = hug1;
17599                                 comments = hug2;
17600
17601                                 if(e){
17602                                         f(e);
17603
17604                                         return;
17605                                 }
17606
17607                                 _comments = comments.map(function(hug1:IComment, ...rest):IComment{     //MethodID:1926, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 23
17608                                         var hug3:* = new CommentBuilder(hug1);
17609                                         hug3.commentList = _this;
17610                                         return hug3.make();
17611                                 });
17612                                 __reflect(false, NaN, comments.concat(), [], true);
17613
17614                                 _hasInitialized = true;
17615
17616                                 f(null);
17617                         }, (this.commentLimit * (-1)), this._leafMode);
17618                 }
17619
17620                 public function reload(hug1:Function):void
17621                 {       //MethodID:1932, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 23
17622                         internal var f:Function;                                        //slotID:1
17623
17624                         f = hug1;
17625
17626                         this._handle.leaveThread(function(hug1:CommentStorageError):void{       //MethodID:1931, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 47
17627                                 internal var e:CommentStorageError;                             //slotID:1
17628
17629                                 e = hug1;
17630
17631                                 if(e){
17632                                         f(e);
17633
17634                                         return;
17635                                 }
17636
17637                                 _handle.enterThread(function(hug1:CommentStorageError, hug2:Array):void{        //MethodID:1930, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 89
17638                                         internal var e:CommentStorageError;                             //slotID:1
17639                                         internal var comments:Array;                                    //slotID:2
17640
17641                                         e = hug1;
17642                                         comments = hug2;
17643
17644                                         if(e){
17645                                                 f(e);
17646
17647                                                 return;
17648                                         }
17649
17650                                         _comments = comments.map(function(hug1:IComment, ...rest):IComment{     //MethodID:1929, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 23
17651                                                 var hug3:* = new CommentBuilder(hug1);
17652                                                 hug3.commentList = _this;
17653                                                 return hug3.make();
17654                                         });
17655                                         __reflect(_pastMode, _handle.lastRes, comments.concat(), [], true);
17656                                         f(null);
17657                                 }, (commentLimit * (-1)));
17658                         });
17659                 }
17660
17661                 public function update(hug1:Function):void
17662                 {       //MethodID:1934, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 37
17663                         internal var f:Function;                                        //slotID:1
17664
17665                         f = hug1;
17666
17667                         this._handle.getThread(function(hug1:CommentStorageError, hug2:Array):void{     //MethodID:1933, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 74
17668                                 if(hug1){
17669                                         SystemMessage.instance.informln((__MSG__("スレッドの更新に失敗:" + hug1.status) + "<br />"), false, true);
17670                                         f(hug1);
17671
17672                                         return;
17673                                 }
17674
17675                                 if(hug2.length != 0) __onComments(hug2);
17676                                 f(null);
17677                         }, (this._handle.lastRes + 1), this._leafMode);
17678                 }
17679
17680                 public function post(hug1:IComment):void
17681                 {       //MethodID:1936, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 68
17682                         internal var comment:IComment;                                  //slotID:1
17683
17684                         comment = hug1;
17685
17686                         onCommentPost.apply(comment, this.name);
17687                         this._handle.post(function(hug1:CommentStorageError, hug2:int):void{    //MethodID:1935, LocalCount= 7 , MaxScope= 0, MaxStack= 6, CodeLength= 211
17688                                 var hug3:String = CommentPostResultStatus.FAILURE;
17689                                 var hug4:uint = (hug1 ? hug1.status : MessageServerClient.POST_SUCCESS);
17690
17691                                 if(hug4 < CommentPostResultStatus.SERVER_RESPONSE_MAP.length) hug3 = CommentPostResultStatus.SERVER_RESPONSE_MAP[hug4];
17692                                 onCommentPostFinished.apply(_threadID, hug3, hug2);
17693
17694                                 if(hug1 != null){
17695                                         __reflect(false, NaN, [], [comment], false);
17696
17697                                         return;
17698                                 }
17699
17700                                 var hug5:CommentBuilder = new CommentBuilder(comment);
17701                                 hug5.resNo = hug2;
17702                                 hug5.justPosted = true;
17703                                 hug5.commentList = _this;
17704                                 hug5.isTrunk = true;
17705                                 var hug6:IComment = hug5.make();
17706                                 _comments = CommentListUtils.add(_comments, [hug6]);
17707
17708                                 __reflect(false, NaN, [hug6], [comment]);
17709
17710                                 _yourPosts[hug2] = true;
17711                         }, comment, (this.name == CommentConstants.CL_NICOS));
17712                 }
17713
17714                 public function get currentList():Array
17715                 {       //MethodID:1937, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
17716                         return this._comments.concat();
17717                 }
17718
17719                 public function isClickable(hug1:IComment):Boolean
17720                 {       //MethodID:1938, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
17721                         return (this._isMymemory || !this.clickedResNoMapping[hug1.resNo]);
17722                 }
17723
17724                 public function clickButtonComment(hug1:IComment):void
17725                 {       //MethodID:1940, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 84
17726                         internal var buttonComment:IComment;                            //slotID:1
17727
17728                         buttonComment = hug1;
17729
17730                         if(this.clickedResNoMapping[buttonComment.resNo]){
17731                                 SystemMessage.instance.informComment(__MSG__("ボタンのクリックは1回だけです。"));
17732
17733                                 return;
17734                         }
17735
17736                         this.clickedResNoMapping[buttonComment.resNo] = true;
17737
17738                         this._handle.click(function(hug1:CommentStorageError):void{     //MethodID:1939, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 120
17739                                 if(hug1){
17740                                         SystemMessage.instance.informln(__MSG__("ボタンコメントのクリックに失敗"));
17741
17742                                         return;
17743                                 }
17744
17745                                 SystemMessage.instance.informln(__MSG__("ボタンのクリックに成功"));
17746
17747                                 var hug2:CommentBuilder = new CommentBuilder(buttonComment);
17748                                 hug2.clickCount = (buttonComment.clickCount + 1);
17749                                 var hug3:Number = _comments.indexOf(buttonComment);
17750                                 _comments[hug3] = hug2.make();
17751
17752                                 __reflect(false, NaN, [_comments[hug3]], []);
17753                         }, buttonComment.resNo);
17754                 }
17755
17756                 public function serveCommentList():void
17757                 {       //MethodID:1941, LocalCount= 1 , MaxScope= 1, MaxStack= 6, CodeLength= 92
17758                         if(this._pastMode){
17759                                 this.__reflect(this._pastMode, ((this._pastCommentList.length == 0) ? 0 : this._pastCommentList[this._pastCommentList.length - 1]), this._pastCommentList.concat(), [], true);
17760
17761                                 return;
17762                         }
17763
17764                         this.__reflect(this._pastMode, NaN, this._comments.concat(), [], true);
17765                 }
17766
17767                 public function get name():String
17768                 {       //MethodID:1942, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17769                         return this._name;
17770                 }
17771
17772                 public function editCommentList(hug1:Array, hug2:Array, hug3:Function):void
17773                 {       //MethodID:1946, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 136
17774                         internal var deleteList:Array;                                  //slotID:1
17775                         internal var undeleteList:Array;                                //slotID:2
17776                         internal var callback:Function;                                 //slotID:3
17777                         internal var seq:Array;                                         //slotID:4
17778                         internal var progress:Function;                                 //slotID:5
17779
17780                         seq = null;
17781                         progress = null;
17782                         deleteList = hug1;
17783                         undeleteList = hug2;
17784                         callback = hug3;
17785                         progress = function(hug1:CommentStorageError):void{     //MethodID:1943, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 56
17786                                 if(hug1){
17787                                         callback(false);
17788                                 }else if(seq.length == 0){
17789                                         callback(true);
17790                                 }else{
17791                                         seq.pop().apply(null);
17792                                 }
17793                         };
17794
17795                         SystemMessage.instance.informln(__MSG__("コメントの編集内容を送信:") + this.name);
17796
17797                         seq = [];
17798
17799                         if(deleteList.length != 0){
17800                                 seq.push(function():void{       //MethodID:1944, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 15
17801                                         _handle.deleteComments(progress, deleteList, false);
17802                                 });
17803                         }
17804
17805                         if(undeleteList.length != 0){
17806                                 seq.push(function():void{       //MethodID:1945, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 15
17807                                         _handle.deleteComments(progress, undeleteList, true);
17808                                 });
17809                         }
17810
17811                         progress(null);
17812                 }
17813
17814                 private function __onComments(hug1:Array):void
17815                 {       //MethodID:1953, LocalCount= 3 , MaxScope= 2, MaxStack= 6, CodeLength= 540
17816                         internal var comments:Array;                                    //slotID:1
17817                         internal var removes:Array;                                     //slotID:2
17818                         internal var _leavesNum:Object;                                 //slotID:3
17819                         internal var maxLeafID:int;                                     //slotID:4
17820                         internal var noTrunk:Array;                                     //slotID:5
17821                         internal var i:uint;                                            //slotID:6
17822                         internal var __comments:Array;                                  //slotID:7
17823                         internal var deleteNum:uint;                                    //slotID:8
17824
17825                         removes = null;
17826                         _leavesNum = null;
17827                         maxLeafID = 0;
17828                         noTrunk = null;
17829                         i = 0;
17830                         __comments = null;
17831                         deleteNum = 0;
17832                         comments = hug1;
17833                         comments = comments.map(function(hug1:IComment, ...rest):IComment{      //MethodID:1947, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 53
17834                                 var hug3:* = new CommentBuilder(hug1);
17835                                 hug3.commentList = _this;
17836
17837                                 if(_yourPosts[hug1.resNo]){
17838                                         delete _yourPosts[hug1.resNo];
17839
17840                                         hug3.justPosted = true;
17841                                 }
17842
17843                                 return hug3.make();
17844                         });
17845
17846                         this._comments = CommentListUtils.add(this._comments, comments);
17847                         removes = [];
17848
17849                         if(!this._leafMode){
17850                                 removes = ((this._comments.length > this.commentLimit) ? this._comments.splice(0, (this._comments.length - this.commentLimit)) : []);
17851                         }else{
17852                                 _leavesNum = {};
17853                                 maxLeafID = 0;
17854                                 noTrunk = ((this._comments.length > this.commentLimit) ? this._comments.splice(0, (this._comments.length - this.commentLimit)) : []);
17855                                 noTrunk = noTrunk.map(function(hug1:IComment, ...rest):IComment{        //MethodID:1948, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 58
17856                                         var hug3:* = undefined;
17857
17858                                         if(hug1.isTrunk && ((_handle.lastRes - hug1.resNo) >= commentLimit)){
17859                                                 hug3 = new CommentBuilder(hug1);
17860                                                 hug3.isTrunk = false;
17861                                                 hug1 = hug3.make();
17862                                         }
17863
17864                                         return hug1;
17865                                 });
17866
17867                                 this._comments = this._comments.splice(0, this.commentLimit).concat(noTrunk);
17868
17869                                 this._comments.forEach(function(hug1:IComment, ...rest):void{   //MethodID:1949, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 73
17870                                         var hug3:int = hug1.leafID;
17871
17872                                         if((_leavesNum[hug3] == undefined) || (_leavesNum[hug3] == null)) _leavesNum[hug3] = [];
17873
17874                                         if(hug3 > maxLeafID) maxLeafID = hug3;
17875                                         _leavesNum[hug3].push(hug1);
17876                                 });
17877
17878                                 i = 0;
17879
17880                                 while(i <= maxLeafID){
17881                                         if((_leavesNum[i] != undefined) && (_leavesNum[i] != null) && (_leavesNum[i].length > this._leafMaxNum)){
17882                                                 __comments = _leavesNum[i];
17883
17884                                                 __comments.sortOn("resNo", Array.NUMERIC);
17885
17886                                                 deleteNum = (__comments.length - this._leafMaxNum);
17887                                                 removes = removes.concat(__comments.slice(0, deleteNum));
17888                                         }
17889
17890                                         i += 1;
17891                                 }
17892
17893                                 removes = removes.filter(function(hug1:IComment, ...rest):Boolean{      //MethodID:1950, LocalCount= 3 , MaxScope= 0, MaxStack= 1, CodeLength= 6
17894                                         return !hug1.isTrunk;
17895                                 });
17896
17897                                 this._comments = this._comments.filter(function(hug1:IComment, ...rest):Boolean{        //MethodID:1952, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 41
17898                                         internal var comment:IComment;                                  //slotID:1
17899                                         public var _:Array;                                             //slotID:2
17900                                         internal var undelete_flag:*;                                   //slotID:3
17901
17902                                         undelete_flag = undefined;
17903                                         comment = hug1;
17904                                         internal var _:Object = rest;
17905                                         undelete_flag = true;
17906
17907                                         removes.every(function(hug1:IComment, ...rest):Boolean{ //MethodID:1951, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 25
17908                                                 if(comment.resNo == hug1.resNo) undelete_flag = false;
17909
17910                                                 return undelete_flag;
17911                                         });
17912
17913                                         return undelete_flag;
17914                                 });
17915                                 this._comments = this._comments.sortOn("resNo", Array.NUMERIC);
17916                         }
17917
17918                         this.__reflect(false, NaN, comments, removes, false);
17919                 }
17920
17921                 private function __reflect(hug1:Boolean, hug2:Number, hug3:Array, hug4:Array, hug5:Boolean=false):void
17922                 {       //MethodID:1954, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 92
17923                         if(this._pastMode != hug1) return;
17924                         onCommentCountUpdated.apply(isNaN(hug2) ? this._handle.lastRes : hug2);
17925                         onCommentListUpdated.apply(hug3, hug4, hug5, this.name);
17926                 }
17927
17928                 public function toString():String
17929                 {       //MethodID:1955, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
17930                         return this.name;
17931                 }
17932
17933                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAutomaticLoadingUpdated(hug1:Boolean):EventResult
17934                 {       //MethodID:1956, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
17935                         this._handle.autoSyncEnabled = hug1;
17936                         return EventResult.THROUGH;
17937                 }
17938
17939                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onTimeMachineDateUpdated(hug1:Boolean, hug2:Date=null):EventResult
17940                 {       //MethodID:1961, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 152
17941                         internal var pastFlag:Boolean;                                  //slotID:1
17942                         internal var pastDate:Date = null;                              //slotID:2
17943
17944                         pastFlag = hug1;
17945                         pastDate = hug2;
17946                         this._pastMode = pastFlag;
17947
17948                         if(pastFlag){
17949                                 if(!this.compareDate(this._lastPastDate, pastDate)){
17950                                         this._lastPastDate = (pastDate ? new Date(pastDate.time) : null);
17951
17952                                         this._handle.waybackThread(function(hug1:CommentStorageError, hug2:Array):void{ //MethodID:1958, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 133
17953                                                 internal var e:CommentStorageError;                             //slotID:1
17954                                                 internal var comments:Array;                                    //slotID:2
17955
17956                                                 e = hug1;
17957                                                 comments = hug2;
17958
17959                                                 if(e){
17960                                                         SystemMessage.instance.informln((__MSG__("過去ログの取得に失敗:" + e.status) + "<br />"), false, true);
17961
17962                                                         return;
17963                                                 }
17964
17965                                                 _pastCommentList = comments.map(function(hug1:IComment, ...rest):IComment{      //MethodID:1957, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 23
17966                                                         var hug3:* = new CommentBuilder(hug1);
17967                                                         hug3.commentList = _this;
17968                                                         return hug3.make();
17969                                                 });
17970                                                 __reflect(true, ((comments.length != 0) ? comments[comments.length - 1].resNo : 0), comments.concat(), [], true);
17971                                         }, int(this._lastPastDate.getTime() / 1000), this.commentLimit, this._leafMode);
17972                                 }else{
17973                                         ObjectUtils.callLater(function():void{  //MethodID:1959, LocalCount= 1 , MaxScope= 0, MaxStack= 6, CodeLength= 55
17974                                                 __reflect(true, ((_pastCommentList.length != 0) ? _pastCommentList[_pastCommentList.length - 1].resNo : 0), _pastCommentList.concat(), [], true);
17975                                         });
17976                                 }
17977                         }else{
17978                                 ObjectUtils.callLater(function():void{  //MethodID:1960, LocalCount= 1 , MaxScope= 0, MaxStack= 6, CodeLength= 22
17979                                         __reflect(false, NaN, _comments.concat(), [], true);
17980                                 });
17981                         }
17982
17983                         return EventResult.THROUGH;
17984                 }
17985
17986                 private function compareDate(hug1:Date, hug2:Date):Boolean
17987                 {       //MethodID:1962, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 72
17988                         if(!hug1 && !hug2) return true;
17989
17990                         if((!hug1 && hug2) || (hug1 && !hug2)) return false;
17991
17992                         if(hug1.time == hug2.time) return true;
17993
17994                         return false;
17995                 }
17996
17997                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsEnabledLeafMode(hug1:Boolean):EventResult
17998                 {       //MethodID:1967, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 110
17999                         internal var _enable:Boolean;                                   //slotID:1
18000
18001                         _enable = hug1;
18002                         this._leafMode = (_enable && (this._name != CommentConstants.CL_NICOS));
18003
18004                         this._handle.getThread(function(hug1:CommentStorageError, hug2:Array):void{     //MethodID:1964, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 97
18005                                 internal var e:CommentStorageError;                             //slotID:1
18006                                 internal var comments:Array;                                    //slotID:2
18007
18008                                 e = hug1;
18009                                 comments = hug2;
18010
18011                                 if(e){
18012                                         SystemMessage.instance.informln((__MSG__("スレッドの更新に失敗:" + e.status) + "<br />"), false, true);
18013
18014                                         return;
18015                                 }
18016
18017                                 _comments = comments.map(function(hug1:IComment, ...rest):IComment{     //MethodID:1963, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 23
18018                                         var hug3:* = new CommentBuilder(hug1);
18019                                         hug3.commentList = _this;
18020                                         return hug3.make();
18021                                 });
18022                                 __reflect(false, NaN, comments.concat(), [], true);
18023                         }, (this.commentLimit * (-1)), this._leafMode);
18024
18025                         if(this._pastMode){
18026                                 this._handle.waybackThread(function(hug1:CommentStorageError, hug2:Array):void{ //MethodID:1966, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 133
18027                                         internal var e:CommentStorageError;                             //slotID:1
18028                                         internal var comments:Array;                                    //slotID:2
18029
18030                                         e = hug1;
18031                                         comments = hug2;
18032
18033                                         if(e){
18034                                                 SystemMessage.instance.informln((__MSG__("過去ログの取得に失敗:" + e.status) + "<br />"), false, true);
18035
18036                                                 return;
18037                                         }
18038
18039                                         _pastCommentList = comments.map(function(hug1:IComment, ...rest):IComment{      //MethodID:1965, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 23
18040                                                 var hug3:* = new CommentBuilder(hug1);
18041                                                 hug3.commentList = _this;
18042                                                 return hug3.make();
18043                                         });
18044                                         __reflect(true, ((comments.length != 0) ? comments[comments.length - 1].resNo : 0), comments.concat(), [], true);
18045                                 }, int(this._lastPastDate.getTime() / 1000), this.commentLimit, this._leafMode);
18046                         }
18047
18048                         return EventResult.THROUGH;
18049                 }
18050
18051                 public function get leavesNum():String
18052                 {       //MethodID:1970, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 81
18053                         internal var _leaves:Array;                                     //slotID:1
18054                         internal var _leaves_num:String;                                //slotID:2
18055
18056                         _leaves = null;
18057
18058                         if(!this._leafMode) return "";
18059
18060                         _leaves = [];
18061
18062                         this._comments.forEach(function(hug1:*, hug2:int, hug3:Array):void{     //MethodID:1968, LocalCount= 8 , MaxScope= 0, MaxStack= 4, CodeLength= 62
18063                                 var hug4:int = hug1.leafID;
18064
18065                                 if(_leaves[hug4]) _leaves[hug4] = 0;
18066
18067                                 _leaves[hug4]++;
18068                         });
18069
18070                         _leaves_num = "";
18071                         _leaves.map(function(hug1:*, hug2:int, hug3:Array):String{      //MethodID:1969, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 15
18072                                 return ((hug2 + 1).toString() + hug1.toString());
18073                         });
18074
18075                         _leaves_num = _leaves.join(",");
18076
18077                         return _leaves_num;
18078                 }
18079
18080                 public function get threadID():String
18081                 {       //MethodID:1971, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18082                         return this._threadID;
18083                 }
18084
18085                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get threadID():String
18086                 {       //MethodID:1972, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18087                         return this._threadID;
18088                 }
18089
18090                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get _this():ICommentList
18091                 {       //MethodID:1973, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18092                         return this._this;
18093                 }
18094
18095                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get lastResNo():Number
18096                 {       //MethodID:1974, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18097                         return this._handle.lastRes;
18098                 }
18099
18100                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get comments():Array
18101                 {       //MethodID:1975, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18102                         return this._comments;
18103                 }
18104
18105                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get isInitialized():Boolean
18106                 {       //MethodID:1976, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18107                         return this._hasInitialized;
18108                 }
18109         }
18110 }
18111
18112 //■script110■
18113
18114 package jp.nicovideo.marquee{
18115
18116         import flash.display.MovieClip
18117
18118         //■class(instance)_index:132
18119         public interface INicoMarqueePlayer
18120         {
18121                 //static constructor
18122                 public static function INicoMarqueePlayer$cinit()
18123                 {       //MethodID:1978, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
18124                 }
18125
18126                 //variables/etc.
18127                 function interruptContent(hug1:String, hug2:MovieClip, hug3:Number, hug4:Function, hug5:Function, hug6:Number=0.5):Boolean;//MethodID:1979, dispID:0
18128
18129                 function endInterruptContent(hug1:int=-1):void;                             //MethodID:1980, dispID:0
18130
18131                 function updateFeedList(hug1:XML):void;                                     //MethodID:1981, dispID:0
18132
18133                 function updateAspect(hug1:uint):void;                                      //MethodID:1982, dispID:0
18134
18135                 function setRecentPremiumUsers(hug1:Object):void;                           //MethodID:1983, dispID:0
18136
18137                 function updateScreenMode(hug1:uint):void;                                  //MethodID:1984, dispID:0
18138
18139                 function updateNicowariSkip(hug1:Boolean):void;                             //MethodID:1985, dispID:0
18140
18141                 //constructor
18142                 public function INicoMarqueePlayer();                                       //MethodID:1986, dispID:0
18143         }
18144 }
18145
18146 //■script111■
18147
18148 package jp.nicovideo.util{
18149
18150         import flash.utils.setTimeout
18151
18152         //■class(instance)_index:133
18153         public final class ObjectUtils extends Object
18154         {
18155                 //static constructor
18156                 public static function ObjectUtils$cinit()
18157                 {       //MethodID:1988, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18158                 }
18159
18160                 //static variables/etc.
18161                 public static function callLater(hug1:Function, ...rest):void
18162                 {       //dispID:3, MethodID:1990, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 29
18163                         internal var f:Function;                                        //slotID:1
18164                         public var args:Array;                                          //slotID:2
18165
18166                         f = hug1;
18167                         internal var args:Object = rest;
18168
18169                         setTimeout(function():void{     //MethodID:1989, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 12
18170                                 f.apply(null, args);
18171                         }, 0);
18172                 }
18173
18174                 public static function bind(hug1:Function, hug2:Object):Function
18175                 {       //dispID:4, MethodID:1992, LocalCount= 4 , MaxScope= 2, MaxStack= 2, CodeLength= 20
18176                         internal var f:Function;                                        //slotID:1
18177                         internal var receiver:Object;                                   //slotID:2
18178
18179                         f = hug1;
18180                         receiver = hug2;
18181                         return function(... rest):*{    //MethodID:1991, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 12
18182                                 return f.apply(receiver, rest);
18183                         };
18184                 }
18185
18186                 public static function values(hug1:*):Array
18187                 {       //dispID:5, MethodID:1993, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 49
18188                         var hug3:* = undefined;
18189                         var hug2:Array = [];
18190
18191                         for each(hug3 in hug1){
18192                                 hug2.push(hug3);
18193                         }
18194
18195                         return hug2;
18196                 }
18197
18198                 //constructor
18199                 public function ObjectUtils()
18200                 {       //MethodID:1994, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
18201                         super();
18202                 }
18203         }
18204 }
18205
18206 //■script112■
18207
18208 package jp.nicovideo.nicoplayer.models.video{
18209
18210         //■class(instance)_index:134
18211         public interface IVideoController
18212         {
18213                 //static constructor
18214                 public static function IVideoController$cinit()
18215                 {       //MethodID:1996, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
18216                 }
18217
18218                 //variables/etc.
18219                 function startToPlay(hug1:Boolean=false):void;                              //MethodID:1997, dispID:0
18220
18221                 function play(hug1:String=null):void;                                       //MethodID:1998, dispID:0
18222
18223                 function stop(hug1:String=null):void;                                       //MethodID:1999, dispID:0
18224
18225                 function seek(hug1:Number, hug2:Boolean=false):void;                        //MethodID:2000, dispID:0
18226
18227                 function get isPlaying():Boolean;                                           //MethodID:2001, dispID:0
18228
18229                 function get videoWrapper():IVideo;                                         //MethodID:2002, dispID:0
18230
18231                 function get mainVideo():IVideo;                                            //MethodID:2003, dispID:0
18232
18233                 function get mainTotalLength():Number;                                      //MethodID:2004, dispID:0
18234
18235                 //constructor
18236                 public function IVideoController();                                         //MethodID:2005, dispID:0
18237         }
18238 }
18239
18240 //■script113■
18241
18242 package jp.nicovideo.nicoplayer.models.video{
18243
18244         import flash.events.TimerEvent
18245         import flash.utils.Timer
18246         import jp.nicovideo.nicoplayer.models.IPlayerConfig
18247         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
18248         import jp.nicovideo.nicoplayer.models.SystemMessage
18249         import jp.nicovideo.nicoplayer.views.VideoLayerConstants
18250         import jp.nicovideo.util.Functions
18251         import jp.nicovideo.util.events.EventResult
18252         import jp.nicovideo.util.events.event_sender
18253         import jp.nicovideo.util.loka.__MSG__
18254
18255         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
18256         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
18257
18258         //■class(instance)_index:136
18259         public class VideoController extends Object implements IVideoController
18260         {
18261                 //static constructor
18262                 public static function VideoController$cinit()
18263                 {       //MethodID:2011, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18264                 }
18265
18266                 //constructor
18267                 public function VideoController(hug1:VideoWrapper, hug2:IPlayerConfig, hug3:Boolean=false, hug4:Boolean=false)
18268                 {       //MethodID:2013, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 127
18269                         internal var videoWrapper:VideoWrapper;                         //slotID:1
18270                         internal var playerConfig:IPlayerConfig;                        //slotID:2
18271                         internal var isPremium:Boolean = false;                         //slotID:3
18272                         internal var isPlaylist:Boolean = false;                        //slotID:4
18273
18274                         videoWrapper = hug1;
18275                         playerConfig = hug2;
18276                         isPremium = hug3;
18277                         isPlaylist = hug4;
18278                         this._seekWaitTimer = new Timer(100, 1);
18279                         this.onVideoExpectState = new Functions();
18280
18281                         super();
18282
18283                         this._videoWrapper = videoWrapper;
18284                         this._playerConfig = playerConfig;
18285                         this._isPremium = isPremium;
18286                         this._isPlaylist = isPlaylist;
18287
18288                         this._seekWaitTimer.addEventListener(TimerEvent.TIMER, function():void{ //MethodID:2012, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 18
18289                                 _videoWrapper.seek(_seekTargetVpos);
18290                                 _seekWaitTimer.stop();
18291                         });
18292
18293                         this._operators = new _Operators();
18294
18295                         this._operators.isStopped(VideoConstants.OPERATION_OTHER);
18296                 }
18297
18298                 //variables/etc.
18299                 private var _seekTargetVpos:Number;                             //slotID:0
18300                 private var _isPlaying:Boolean = false;                         //slotID:0
18301                 private var _isSeeking:Boolean = false;                         //slotID:0
18302                 private var _hasPlayed:Boolean = false;                         //slotID:0
18303                 private var _isWaitingSeek:Boolean = false;                     //slotID:0
18304                 private var _isPremium:Boolean = false;                         //slotID:0
18305                 private var _isHirobaMode:Boolean = false;                      //slotID:0
18306                 private var _isPlaylist:Boolean = false;                        //slotID:0
18307                 private var _playerConfig:IPlayerConfig;                        //slotID:0
18308                 private var _operators:_Operators;                              //slotID:0
18309                 private var _videoWrapper:VideoWrapper;                         //slotID:0
18310                 private var _seekWaitTimer:Timer;                               //slotID:0
18311                 private var _prevVposOnSeekLoop:Number = -1.0;                  //slotID:0
18312                 private var _initializingLastUserOperation:Function = null;     //slotID:0
18313                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoExpectState:Functions;//slotID:0
18314
18315                 public function play(hug1:String=null):void
18316                 {       //MethodID:2014, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 125
18317                         this._isPlaying = true;
18318
18319                         if(this._operators.isPlayed(hug1 ? hug1 : VideoConstants.OPERATION_OTHER) && !this._isSeeking){
18320                                 if(this._videoWrapper.isControllable){
18321                                         this._hasPlayed = true;
18322
18323                                         this._videoWrapper.play();
18324                                 }else if(this._isPremium){
18325                                         this._initializingLastUserOperation = this._videoWrapper.play;
18326
18327                                         onVideoExpectState.apply(VideoPlayerStatus.PLAYING);
18328                                 }
18329                         }
18330                 }
18331
18332                 public function stop(hug1:String=null):void
18333                 {       //MethodID:2015, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 108
18334                         this._isPlaying = false;
18335
18336                         if(this._operators.isStopped(hug1 ? hug1 : VideoConstants.OPERATION_OTHER)){
18337                                 if(this._videoWrapper.isControllable){
18338                                         this._videoWrapper.stop();
18339                                 }else if(this._isPremium){
18340                                         this._initializingLastUserOperation = this._videoWrapper.stop;
18341
18342                                         onVideoExpectState.apply(VideoPlayerStatus.PAUSED);
18343                                 }
18344                         }
18345                 }
18346
18347                 public function seek(hug1:Number, hug2:Boolean=false):void
18348                 {       //MethodID:2016, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 39
18349                         this._isSeeking = true;
18350                         this._seekTargetVpos = hug1;
18351                         this._isWaitingSeek = hug2;
18352
18353                         if(!this._videoWrapper.isControllable) return;
18354                         this._videoWrapper.seek(hug1);
18355                 }
18356
18357                 public function startToPlay(hug1:Boolean=false):void
18358                 {       //MethodID:2017, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 177
18359                         SystemMessage.instance.informln(__MSG__("動画の再生準備完了"), false, true);
18360
18361                         this._hasPlayed = true;
18362
18363                         if(hug1 || (this._playerConfig.autoPlay && this._isPremium)){
18364                                 if((this._videoWrapper.vpos < this._seekTargetVpos) && this._isWaitingSeek){
18365                                         this.seek(0.0);
18366                                         this.play(VideoConstants.OPERATION_OTHER);
18367                                 }else{
18368                                         SystemMessage.instance.informln(__MSG__("自動再生を開始"), false, true);
18369                                         this.play(VideoConstants.OPERATION_OTHER);
18370                                 }
18371                         }else{
18372                                 this.stop(VideoConstants.OPERATION_OTHER);
18373                         }
18374
18375                         this._isWaitingSeek = false;
18376
18377                         if(this._initializingLastUserOperation != null) this._initializingLastUserOperation();
18378                 }
18379
18380                 private function _videoResize():void
18381                 {       //MethodID:2018, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 89
18382                         var hug1:int = ((this._playerConfig.aspectRatio == ScreenAspectRatio.WIDE) ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
18383                         var hug2:int = ((this._playerConfig.aspectRatio == ScreenAspectRatio.WIDE) ? VideoLayerConstants.VIDEO_LAYER_HD_HEIGHT : VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT);
18384
18385                         this._videoWrapper.resize(hug1, hug2);
18386                 }
18387
18388                 public function get isPlaying():Boolean
18389                 {       //MethodID:2019, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18390                         return this._isPlaying;
18391                 }
18392
18393                 public function get videoWrapper():IVideo
18394                 {       //MethodID:2020, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18395                         return this._videoWrapper;
18396                 }
18397
18398                 public function get mainVideo():IVideo
18399                 {       //MethodID:2021, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18400                         return this._videoWrapper.mainVideo;
18401                 }
18402
18403                 public function get mainTotalLength():Number
18404                 {       //MethodID:2022, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18405                         return this._videoWrapper.mainTotalLength;
18406                 }
18407
18408                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
18409                 {       //MethodID:2024, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 138
18410                         internal var vpos:Number;                                       //slotID:1
18411                         internal var isVposProgressing:Function;                        //slotID:2
18412
18413                         vpos = hug1;
18414                         isVposProgressing = function():Boolean{ //MethodID:2023, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 54
18415                                 var hug1:Boolean = true;
18416
18417                                 if((vpos == _prevVposOnSeekLoop) && (_seekTargetVpos <= _videoWrapper.loadedLength)){
18418                                         hug1 = false;
18419                                         _prevVposOnSeekLoop = -1;
18420                                 }else{
18421                                         _prevVposOnSeekLoop = vpos;
18422                                 }
18423
18424                                 return hug1;
18425                         };
18426
18427                         if(this._isPlaying && this._videoWrapper.isControllable) this._videoWrapper.play();
18428
18429                         if(this._isWaitingSeek && (vpos < this._seekTargetVpos) && !this._videoWrapper.hasPlayed){
18430                                 if(isVposProgressing()){
18431                                         this._seekWaitTimer.start();
18432
18433                                         return EventResult.BREAK;
18434                                 }
18435
18436                                 this.seek(vpos, this._isWaitingSeek);
18437                         }
18438
18439                         this._isSeeking = false;
18440                         return EventResult.THROUGH;
18441                 }
18442
18443                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
18444                 {       //MethodID:2025, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 43
18445                         if(this._isPlaylist){
18446                                 this._videoWrapper.stop();
18447                         }else if(hug1){
18448                                 this._videoWrapper.seek(0.0);
18449                         }
18450
18451                         return EventResult.THROUGH;
18452                 }
18453
18454                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoInitialized(hug1:Boolean, hug2:IVideo):EventResult
18455                 {       //MethodID:2026, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 152
18456                         if(!hug1) return EventResult.THROUGH;
18457
18458                         this._videoWrapper.volume = (this._playerConfig.isMute ? 0.0 : this._playerConfig.volume);
18459                         this._videoWrapper.isLoop = this._playerConfig.isLoop;
18460                         this._videoWrapper.sponsorVisibleOnLoop = this._playerConfig.sponsorVisibleOnLoop;
18461
18462                         if(!this._isHirobaMode && (this._videoWrapper.vpos < this._videoWrapper.mainVideo.length)) this._videoWrapper.mainVideo.layer.visible = true;
18463
18464                         if(this._isSeeking) this._videoWrapper.seek(this._seekTargetVpos);
18465                         this._videoResize();
18466
18467                         return EventResult.THROUGH;
18468                 }
18469
18470                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigVolumeUpdated(hug1:Number):EventResult
18471                 {       //MethodID:2027, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 35
18472                         this._videoWrapper.volume = (this._playerConfig.isMute ? 0.0 : hug1);
18473                         return EventResult.THROUGH;
18474                 }
18475
18476                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsMuteUpdated(hug1:Boolean):EventResult
18477                 {       //MethodID:2028, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 35
18478                         this._videoWrapper.volume = (hug1 ? 0.0 : this._playerConfig.volume);
18479                         return EventResult.THROUGH;
18480                 }
18481
18482                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigIsLoopUpdated(hug1:Boolean):EventResult
18483                 {       //MethodID:2029, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
18484                         this._videoWrapper.isLoop = hug1;
18485                         return EventResult.THROUGH;
18486                 }
18487
18488                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAutoPlayUpdated(hug1:Boolean):EventResult
18489                 {       //MethodID:2030, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 53
18490                         if(hug1 && !this._hasPlayed){
18491                                 if(this._videoWrapper.isControllable){
18492                                         this._videoWrapper.play();
18493                                 }else{
18494                                         this._isPlaying = true;
18495                                 }
18496                         }
18497
18498                         return EventResult.THROUGH;
18499                 }
18500
18501                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigSponsorVisibleOnLoopUpdated(hug1:Boolean):EventResult
18502                 {       //MethodID:2031, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
18503                         this._videoWrapper.sponsorVisibleOnLoop = hug1;
18504                         return EventResult.THROUGH;
18505                 }
18506
18507                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
18508                 {       //MethodID:2032, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 47
18509                         this._isHirobaMode = hug1;
18510
18511                         if(this._isHirobaMode){
18512                                 this.stop(VideoConstants.OPERATION_HIROBA);
18513                         }else{
18514                                 this.play(VideoConstants.OPERATION_HIROBA);
18515                         }
18516
18517                         return EventResult.THROUGH;
18518                 }
18519
18520                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAspectRatioUpdate(hug1:uint):EventResult
18521                 {       //MethodID:2033, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
18522                         this._videoResize();
18523
18524                         return EventResult.THROUGH;
18525                 }
18526
18527                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
18528                 {       //MethodID:2034, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
18529                         this._videoResize();
18530
18531                         return EventResult.THROUGH;
18532                 }
18533
18534                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onInitMetaInfo():EventResult
18535                 {       //MethodID:2035, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
18536                         this._videoResize();
18537
18538                         return EventResult.THROUGH;
18539                 }
18540         }
18541 }
18542
18543
18544 //■class(instance)_index:135
18545 //private
18546 dynamic class _Operators extends Object
18547 {
18548         //static constructor
18549         public static function _Operators$cinit()
18550         {       //MethodID:2007, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18551         }
18552
18553         //variables/etc.
18554         private const PLAY:String = "play";                             //slotID:0
18555         private const STOP:String = "stop";                             //slotID:0
18556
18557         public function isPlayed(hug1:String):Boolean
18558         {       //MethodID:2008, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 61
18559                 var hug3:String = null;
18560                 this[hug1] = this.PLAY;
18561                 var hug2:Boolean = true;
18562
18563                 for each(hug3 in this){
18564                         if(hug3 != this.PLAY) return !hug2;
18565                 }
18566
18567                 return hug2;
18568         }
18569
18570         public function isStopped(hug1:String):Boolean
18571         {       //MethodID:2009, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 13
18572                 this[hug1] = this.STOP;
18573                 return true;
18574         }
18575
18576         //constructor
18577         public function _Operators()
18578         {       //MethodID:2010, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
18579                 super();
18580         }
18581 }
18582
18583 //■script114■
18584
18585 package jp.nicovideo.hiroba.models{
18586
18587         //■class(instance)_index:137
18588         public interface IHirobaMessageServerInfo
18589         {
18590                 //static constructor
18591                 public static function IHirobaMessageServerInfo$cinit()
18592                 {       //MethodID:2037, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
18593                 }
18594
18595                 //variables/etc.
18596                 function refresh(hug1:Function):void;                                       //MethodID:2038, dispID:0
18597
18598                 function get host():String;                                                 //MethodID:2039, dispID:0
18599
18600                 function get port():uint;                                                   //MethodID:2040, dispID:0
18601
18602                 function get threadID():String;                                             //MethodID:2041, dispID:0
18603
18604                 function get threadKey():String;                                            //MethodID:2042, dispID:0
18605
18606                 //constructor
18607                 public function IHirobaMessageServerInfo();                                 //MethodID:2043, dispID:0
18608         }
18609 }
18610
18611 //■script115■
18612
18613 package jp.nicovideo.hiroba.models{
18614
18615         import jp.nicovideo.nicoplayer.models.api.GetFLV
18616
18617         //■class(instance)_index:138
18618         public class HirobaMessageServerInfo extends Object implements IHirobaMessageServerInfo
18619         {
18620                 //static constructor
18621                 public static function HirobaMessageServerInfo$cinit()
18622                 {       //MethodID:2045, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18623                 }
18624
18625                 //constructor
18626                 public function HirobaMessageServerInfo(hug1:GetFLV, hug2:String, hug3:Object)
18627                 {       //MethodID:2046, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
18628                         super();
18629
18630                         this._getFLV = hug1;
18631                         this._getFLVApiURL = hug2;
18632                         this._getFLVApiParams = hug3;
18633                 }
18634
18635                 //variables/etc.
18636                 private var _getFLV:GetFLV;                                     //slotID:0
18637                 private var _getFLVApiURL:String;                               //slotID:0
18638                 private var _getFLVApiParams:Object;                            //slotID:0
18639
18640                 public function refresh(hug1:Function):void
18641                 {       //MethodID:2048, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 34
18642                         internal var callback:Function;                                 //slotID:1
18643
18644                         callback = hug1;
18645                         this._getFLV = new GetFLV(this._getFLVApiURL, this._getFLVApiParams, function(hug1:Boolean):void{       //MethodID:2047, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 40
18646                                 callback(hug1 && (_getFLV.threadID != null) && (_getFLV.hirobaHost != null));
18647                         });
18648                 }
18649
18650                 public function get host():String
18651                 {       //MethodID:2049, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18652                         return this._getFLV.hirobaHost;
18653                 }
18654
18655                 public function get port():uint
18656                 {       //MethodID:2050, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18657                         return this._getFLV.hirobaPort;
18658                 }
18659
18660                 public function get threadID():String
18661                 {       //MethodID:2051, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18662                         return this._getFLV.hirobaThreadID;
18663                 }
18664
18665                 public function get threadKey():String
18666                 {       //MethodID:2052, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18667                         return this._getFLV.hirobaThreadKey;
18668                 }
18669         }
18670 }
18671
18672 //■script116■
18673
18674 package jp.nicovideo.nicoplayer.remocon{
18675
18676         import flash.display.DisplayObjectContainer
18677
18678         //■class(instance)_index:139
18679         public interface IRemoconClient implements EventSender
18680         {
18681                 //static constructor
18682                 public static function IRemoconClient$cinit()
18683                 {       //MethodID:2054, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
18684                 }
18685
18686                 //variables/etc.
18687                 function get isConnecting():Boolean;                                        //MethodID:2055, dispID:0
18688
18689                 function setAlertContainer(hug1:DisplayObjectContainer):void;               //MethodID:2056, dispID:0
18690
18691                 function get stateObserver():*;                                             //MethodID:2057, dispID:0
18692
18693                 //constructor
18694                 public function IRemoconClient();                                           //MethodID:2058, dispID:0
18695         }
18696 }
18697
18698 //■script117■
18699
18700 package jp.nicovideo.nicoplayer.remocon{
18701
18702         import flash.display.DisplayObjectContainer
18703         import flash.events.Event
18704         import jp.nicovideo.util.Functions
18705         import jp.nicovideo.util.events.event_sender
18706
18707         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
18708
18709         //■class(instance)_index:140
18710         public class RemoconClient extends Object implements IRemoconClient
18711         {
18712                 //static constructor
18713                 public static function RemoconClient$cinit()
18714                 {       //MethodID:2060, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18715                 }
18716
18717                 //constructor
18718                 public function RemoconClient(hug1:RemoconPlayerStateObserver, hug2:RemoconNotifier, hug3:RemoconState)
18719                 {       //MethodID:2061, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 64
18720                         this.onRemoconClientConnectUpdated = new Functions();
18721
18722                         super();
18723
18724                         this._stateObserver = hug1;
18725                         this._notifier = hug2;
18726                         this._remoconState = hug3;
18727
18728                         this._remoconState.addEventListener(Event.CONNECT, this._connectUpdateListener);
18729                         this._remoconState.addEventListener(Event.CLOSE, this._connectUpdateListener);
18730                 }
18731
18732                 //variables/etc.
18733                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onRemoconClientConnectUpdated:Functions;//slotID:0
18734                 private var _stateObserver:RemoconPlayerStateObserver;          //slotID:0
18735                 private var _notifier:RemoconNotifier;                          //slotID:0
18736                 private var _remoconState:RemoconState;                         //slotID:0
18737
18738                 private function _connectUpdateListener(hug1:Event):void
18739                 {       //MethodID:2062, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 67
18740                         var hug2:Boolean = false;
18741
18742                         if(hug1.type == Event.CONNECT){
18743                                 hug2 = true;
18744                         }else if(hug1.type == Event.CLOSE){
18745                                 hug2 = false;
18746                         }else{
18747                                 return;
18748                         }
18749
18750                         onRemoconClientConnectUpdated.apply(hug2);
18751                 }
18752
18753                 public function get eventNames():Array
18754                 {       //MethodID:2063, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
18755                         return ["onRemoconClientConnectUpdated"];
18756                 }
18757
18758                 public function get isConnecting():Boolean
18759                 {       //MethodID:2064, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
18760                         return this._remoconState.isConnecting;
18761                 }
18762
18763                 public function setAlertContainer(hug1:DisplayObjectContainer):void
18764                 {       //MethodID:2065, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
18765                         this._notifier.setContainer(hug1);
18766                 }
18767
18768                 public function get stateObserver():*
18769                 {       //MethodID:2066, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18770                         return this._stateObserver;
18771                 }
18772         }
18773 }
18774
18775 //■script118■
18776
18777 package jp.nicovideo.nicoplayer.models.filter{
18778
18779         //■class(instance)_index:141
18780         public class NGType extends Object
18781         {
18782                 //static constructor
18783                 public static function NGType$cinit()
18784                 {       //MethodID:2068, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
18785                         NONE = "none";
18786                         MESSAGE = "message";
18787                         USER_ID = "user_id";
18788                         COMMAND = "command";
18789                 }
18790
18791                 //static variables/etc.
18792                 public static const NONE:String = "none";                       //slotID:1
18793                 public static const MESSAGE:String = "message";                 //slotID:2
18794                 public static const USER_ID:String = "user_id";                 //slotID:3
18795                 public static const COMMAND:String = "command";                 //slotID:4
18796
18797                 //constructor
18798                 public function NGType()
18799                 {       //MethodID:2069, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
18800                         super();
18801                 }
18802         }
18803 }
18804
18805 //■script119■
18806
18807 package jp.nicovideo.util.loka{
18808
18809         import jp.nicovideo.util.StringUtils
18810
18811         //■class(instance)_index:142
18812         public class Loka extends Object
18813         {
18814                 //static constructor
18815                 public static function Loka$cinit()
18816                 {       //MethodID:2071, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18817                 }
18818
18819                 //static variables/etc.
18820                 private static var __instance:Loka;                             //slotID:1
18821
18822                 public static function get instance():Loka
18823                 {       //dispID:3, MethodID:2072, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 32
18824                         var hug1:Loka = new Loka();
18825                         __instance = hug1;
18826                         return hug1;
18827                 }
18828
18829                 //constructor
18830                 public function Loka()
18831                 {       //MethodID:2073, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
18832                         super();
18833                 }
18834
18835                 //variables/etc.
18836                 private var __loka:*;                                           //slotID:0
18837                 private var __debug:Boolean;                                    //slotID:0
18838
18839                 public function set loka(hug1:*):void
18840                 {       //MethodID:2074, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
18841                         this.__loka = hug1;
18842                 }
18843
18844                 public function get loka():*
18845                 {       //MethodID:2075, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18846                         return this.__loka;
18847                 }
18848
18849                 public function set debug(hug1:Boolean):void
18850                 {       //MethodID:2076, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
18851                         this.__debug = hug1;
18852                 }
18853
18854                 public function get debug():Boolean
18855                 {       //MethodID:2077, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
18856                         return this.__debug;
18857                 }
18858
18859                 public function getMessage(hug1:String, hug2:Array):String
18860                 {       //MethodID:2078, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 107
18861                         if(!this.__loka){
18862                                 if(!this.debug) trace("Loka.getMessage: WARNING! メッセージオブジェクトが設定されていない件。");
18863
18864                                 return this.__applyParams(hug1, hug2);
18865                         }
18866
18867                         if(!((hug1 in this.__loka.messages) || this.debug)) throw new Error("Loka.getMessage: おいwちゃんとしろ");
18868
18869                         var hug3:* = this.__loka.messages[hug1];
18870                         return ((hug3 is Function) ? hug3.apply(null, hug2) : hug3);
18871                 }
18872
18873                 private function __applyParams(hug1:String, hug2:Array):String
18874                 {       //MethodID:2080, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 63
18875                         internal var id:String;                                         //slotID:1
18876                         internal var params:Array;                                      //slotID:2
18877                         internal var mapping:Object;                                    //slotID:3
18878                         internal var i:uint;                                            //slotID:4
18879
18880                         mapping = null;
18881                         id = hug1;
18882                         params = hug2;
18883                         mapping = {};
18884                         i = 0;
18885                         return StringUtils.gsub(function(hug1:Object):String{   //MethodID:2079, LocalCount= 4 , MaxScope= 0, MaxStack= 6, CodeLength= 90
18886                                 if(!hug1[1]) return "";
18887
18888                                         mapping[hug1[1]] = hug2;
18889                                 return params[(hug1[1] in mapping) ? mapping[hug1[1]] : hug2];
18890                         }, new RegExp("\[\[\s*(?:#.*?|([^\W\d]\w*))\s*\]\]", "g"), id);
18891                 }
18892         }
18893 }
18894
18895 //■script120■
18896
18897 package jp.nicovideo.nicoplayer.models{
18898
18899         //■class(instance)_index:143
18900         public interface IObsevableContainer
18901         {
18902                 //static constructor
18903                 public static function IObsevableContainer$cinit()
18904                 {       //MethodID:2082, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
18905                 }
18906
18907                 //variables/etc.
18908                 function hasInitialized(hug1:String):Boolean;                               //MethodID:2083, dispID:0
18909
18910                 function addInitListener(hug1:Array, hug2:Function):void;                   //MethodID:2084, dispID:0
18911
18912                 function setProperty(hug1:String, hug2:*):void;                             //MethodID:2085, dispID:0
18913
18914                 function getPropertyValue(hug1:String):*;                                   //MethodID:2086, dispID:0
18915
18916                 //constructor
18917                 public function IObsevableContainer();                                      //MethodID:2087, dispID:0
18918         }
18919 }
18920
18921 //■script121■
18922
18923 package jp.nicovideo.nicoplayer.models{
18924
18925         import flash.errors.IllegalOperationError
18926
18927         //■class(instance)_index:146
18928         public class AbstractObservableContainer extends Object implements IObsevableContainer
18929         {
18930                 //static constructor
18931                 public static function AbstractObservableContainer$cinit()
18932                 {       //MethodID:2100, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
18933                 }
18934
18935                 //constructor
18936                 public function AbstractObservableContainer()
18937                 {       //MethodID:2101, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
18938                         this._observers = [];
18939
18940                         super();
18941                 }
18942
18943                 //variables/etc.
18944                 private var _observers:Array;                                   //slotID:0
18945                 protected var properties:Object;                                //slotID:0
18946
18947                 protected function prepareProperty(hug1:String, hug2:Class):_Property
18948                 {       //MethodID:2102, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 12
18949                         return new _Property(hug1, hug2);
18950                 }
18951
18952                 public function hasInitialized(hug1:String):Boolean
18953                 {       //MethodID:2103, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 18
18954                         return (this.properties[hug1] as _Property).hasInitialized;
18955                 }
18956
18957                 public function addInitListener(hug1:Array, hug2:Function):void
18958                 {       //MethodID:2104, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 113
18959                         var hug5:String = null;
18960                         var hug3:_Observer = new _Observer(hug1, hug2);
18961                         var hug4:Boolean = false;
18962
18963                         for each(hug5 in hug1){
18964                                 if(this.hasInitialized(hug5)) hug4 = hug3.countDown(hug5);
18965
18966                                 if(hug4) break;
18967                         }
18968
18969                         if(hug4){
18970                                 hug3.listener.apply();
18971                         }else{
18972                                 this._observers.push(hug3);
18973                         }
18974                 }
18975
18976                 public function setProperty(hug1:String, hug2:*):void
18977                 {       //MethodID:2105, LocalCount= 10 , MaxScope= 1, MaxStack= 3, CodeLength= 247
18978                         var hug5:_Observer = null;
18979                         var hug6:uint = 0;
18980                         var hug7:_Observer = null;
18981
18982                         if(!this.properties.hasOwnProperty(hug1)) throw new ArgumentError("AbstractObservableContainer._setProperty: \"" + hug1 + "\" is not property.");
18983
18984                         var hug3:_Property = this.properties[hug1];
18985
18986                         if(hug3.hasInitialized) throw new IllegalOperationError("AbstractObservableContainer._setProperty: " + hug1 + " has set already.");
18987                         hug3.setValue(hug2);
18988
18989                         var hug4:Array = [];
18990
18991                         for each(hug5 in this._observers){
18992                                 if(hug5.countDown(hug1)) hug4.push(this._observers.indexOf(hug5));
18993                         }
18994
18995                         hug4.sort(Array.NUMERIC | Array.DESCENDING);
18996
18997                         for each(hug6 in hug4){
18998                                 hug7 = this._observers[hug6];
18999
19000                                 this._observers.splice(hug6, 1);
19001                                 hug7.listener.apply();
19002                         }
19003                 }
19004
19005                 public function getPropertyValue(hug1:String):*
19006                 {       //MethodID:2106, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 18
19007                         return (this.properties[hug1] as _Property).value;
19008                 }
19009         }
19010 }
19011
19012 import flash.errors.IllegalOperationError
19013
19014 //■class(instance)_index:144
19015 //private
19016 class _Observer extends Object
19017 {
19018         //static constructor
19019         public static function _Observer$cinit()
19020         {       //MethodID:2089, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
19021         }
19022
19023         //constructor
19024         public function _Observer(hug1:Array, hug2:Function)
19025         {       //MethodID:2090, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 28
19026                 super();
19027
19028                 this._names = hug1.concat();
19029                 this._counter = hug1.length;
19030                 this._listener = hug2;
19031         }
19032
19033         //variables/etc.
19034         private var _names:Array;                                       //slotID:0
19035         private var _counter:uint;                                      //slotID:0
19036         private var _listener:Function;                                 //slotID:0
19037
19038         public function countDown(hug1:String):Boolean
19039         {       //MethodID:2091, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 71
19040                 if(this._counter == 0) throw new IllegalOperationError("_Observer.countDown: count has been 0 alreay.");
19041
19042                 if(this._names.indexOf(hug1) == (-1)) return false;
19043
19044                 this._counter--;
19045
19046                 if(this._counter == 0) return true;
19047
19048                 return false;
19049         }
19050
19051         public function get listener():Function
19052         {       //MethodID:2092, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19053                 return this._listener;
19054         }
19055
19056         public function get names():Array
19057         {       //MethodID:2093, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19058                 return this._names;
19059         }
19060 }
19061
19062 //■class(instance)_index:145
19063 //private
19064 class _Property extends Object
19065 {
19066         //static constructor
19067         public static function _Property$cinit()
19068         {       //MethodID:2094, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
19069         }
19070
19071         //constructor
19072         public function _Property(hug1:String, hug2:Class)
19073         {       //MethodID:2095, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
19074                 super();
19075
19076                 this._name = hug1;
19077                 this._type = hug2;
19078         }
19079
19080         //variables/etc.
19081         private var _name:String;                                       //slotID:0
19082         private var _value:*;                                           //slotID:0
19083         private var _hasInitialized:Boolean = false;                    //slotID:0
19084         private var _type:Class;                                        //slotID:0
19085
19086         public function get name():String
19087         {       //MethodID:2096, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19088                 return this._name;
19089         }
19090
19091         public function get value():*
19092         {       //MethodID:2097, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19093                 return this._value;
19094         }
19095
19096         public function setValue(hug1:*):void
19097         {       //MethodID:2098, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 34
19098                 if(!(hug1 is this._type)) throw new ArgumentError("AbstractObservableContainer:_Property.setValue: invalid type.");
19099
19100                 this._value = hug1;
19101                 this._hasInitialized = true;
19102         }
19103
19104         public function get hasInitialized():Boolean
19105         {       //MethodID:2099, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19106                 return this._hasInitialized;
19107         }
19108 }
19109
19110 //■script122■
19111
19112 package jp.nicovideo.nicoplayer.plugin{
19113
19114         import flash.display.DisplayObjectContainer
19115         import jp.nicovideo.marquee.INicoMarqueeClient
19116         import jp.nicovideo.nicoplayer.config.NicoConfig
19117         import jp.nicovideo.nicoplayer.models.IPlayerConfig
19118         import jp.nicovideo.nicoplayer.models.IVideoDetail
19119         import jp.nicovideo.nicoplayer.models.api.IGetFLV
19120         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
19121         import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
19122         import jp.nicovideo.nicoplayer.models.filter.INGComment
19123         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
19124         import jp.nicovideo.nicoplayer.models.video.IVideoController
19125         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
19126         import jp.nicovideo.nicoplayer.views.IVideoLayerManager
19127
19128         //■class(instance)_index:147
19129         public interface IPluginClient implements IObsevableContainer
19130         {
19131                 //static constructor
19132                 public static function IPluginClient$cinit()
19133                 {       //MethodID:2108, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
19134                 }
19135
19136                 //variables/etc.
19137                 function get videoController():IVideoController;                            //MethodID:2109, dispID:0
19138
19139                 function get flashVars():NicoFlashVars;                                     //MethodID:2110, dispID:0
19140
19141                 function get nicoConfig():NicoConfig;                                       //MethodID:2111, dispID:0
19142
19143                 function get getFLV():IGetFLV;                                              //MethodID:2112, dispID:0
19144
19145                 function get playerConfig():IPlayerConfig;                                  //MethodID:2113, dispID:0
19146
19147                 function get audioShutter():IControllerShutter;                             //MethodID:2114, dispID:0
19148
19149                 function get ngFilter():INGComment;                                         //MethodID:2115, dispID:0
19150
19151                 function get commentListContainer():Object;                                 //MethodID:2116, dispID:0
19152
19153                 function get filteredCommentPoolContainer():CommentPoolContainer;           //MethodID:2117, dispID:0
19154
19155                 function get videoLayerManager():IVideoLayerManager;                        //MethodID:2118, dispID:0
19156
19157                 function get videoDetail():IVideoDetail;                                    //MethodID:2119, dispID:0
19158
19159                 function get pluginContainer():DisplayObjectContainer;                      //MethodID:2120, dispID:0
19160
19161                 function get marqueeClient():INicoMarqueeClient;                            //MethodID:2121, dispID:0
19162
19163                 function set onInitilized(hug1:Function):void;                              //MethodID:2122, dispID:0
19164
19165                 function get initializeInfo():InitializeInfo;                               //MethodID:2123, dispID:0
19166
19167                 //constructor
19168                 public function IPluginClient();                                            //MethodID:2124, dispID:0
19169         }
19170 }
19171
19172 //■script123■
19173
19174 package jp.nicovideo.nicoplayer.plugin{
19175
19176         import flash.display.DisplayObjectContainer
19177         import jp.nicovideo.marquee.INicoMarqueeClient
19178         import jp.nicovideo.nicoplayer.config.NicoConfig
19179         import jp.nicovideo.nicoplayer.models.AbstractObservableContainer
19180         import jp.nicovideo.nicoplayer.models.IPlayerConfig
19181         import jp.nicovideo.nicoplayer.models.IVideoDetail
19182         import jp.nicovideo.nicoplayer.models.api.IGetFLV
19183         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
19184         import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
19185         import jp.nicovideo.nicoplayer.models.filter.INGComment
19186         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
19187         import jp.nicovideo.nicoplayer.models.video.IVideoController
19188         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
19189         import jp.nicovideo.nicoplayer.views.IVideoLayerManager
19190         import jp.nicovideo.util.Functions
19191
19192         //■class(instance)_index:148
19193         public class NicoPluginClient extends AbstractObservableContainer implements IPluginClient
19194         {
19195                 //static constructor
19196                 public static function NicoPluginClient$cinit()
19197                 {       //MethodID:2126, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
19198                 }
19199
19200                 //constructor
19201                 public function NicoPluginClient()
19202                 {       //MethodID:2127, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 20
19203                         this._onInitialized = new Functions();
19204
19205                         super();
19206                         this._NicoPluginClient();
19207                 }
19208
19209                 //variables/etc.
19210                 private var _onInitialized:Functions;                           //slotID:0
19211                 private var _hasInitialized:Boolean = false;                    //slotID:0
19212
19213                 private function _NicoPluginClient():void
19214                 {       //MethodID:2129, LocalCount= 4 , MaxScope= 2, MaxStack= 31, CodeLength= 314
19215                         internal var names:Array;                                       //slotID:1
19216                         internal var name:String;                                       //slotID:2
19217
19218                         name = null;
19219                         properties = {flashVars:prepareProperty("flashVars", NicoFlashVars), getFLV:prepareProperty("getFLV", IGetFLV), nicoConfig:prepareProperty("nicoConfig", NicoConfig), videoController:prepareProperty("videoController", IVideoController), audioShutter:prepareProperty("audioShutter", IControllerShutter), playerConfig:prepareProperty("playerConfig", IPlayerConfig), ngFilter:prepareProperty("ngFilter", INGComment), commentListContainer:prepareProperty("commentListContainer", Object), filteredCommentPoolContainer:prepareProperty("filteredCommentPoolContainer", CommentPoolContainer), videoLayerManager:prepareProperty("videoLayerManager", IVideoLayerManager), pluginContainer:prepareProperty("pluginContainer", DisplayObjectContainer), videoDetail:prepareProperty("videoDetail", IVideoDetail), marqueeClient:prepareProperty("marqueeClient", INicoMarqueeClient), initializeInfo:prepareProperty("initializeInfo", InitializeInfo)};
19220                         names = [];
19221
19222                         for(name in properties){
19223                                 if(name == "marqueeClient"){
19224                                 }else{
19225                                         names.push(name);
19226                                 }
19227                         }
19228
19229                         addInitListener(names, function():void{ //MethodID:2128, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 15
19230                                 _onInitialized.apply();
19231
19232                                 _hasInitialized = true;
19233                         });
19234                 }
19235
19236                 public function set onInitilized(hug1:Function):void
19237                 {       //MethodID:2130, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 26
19238                         if(this._hasInitialized){
19239                                 hug1.apply();
19240
19241                                 return;
19242                         }
19243
19244                         this._onInitialized.add(hug1);
19245                 }
19246
19247                 public function get videoController():IVideoController
19248                 {       //MethodID:2131, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19249                         return getPropertyValue("videoController");
19250                 }
19251
19252                 public function get nicoConfig():NicoConfig
19253                 {       //MethodID:2132, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19254                         return getPropertyValue("nicoConfig");
19255                 }
19256
19257                 public function get flashVars():NicoFlashVars
19258                 {       //MethodID:2133, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19259                         return getPropertyValue("flashVars");
19260                 }
19261
19262                 public function get getFLV():IGetFLV
19263                 {       //MethodID:2134, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19264                         return getPropertyValue("getFLV");
19265                 }
19266
19267                 public function get audioShutter():IControllerShutter
19268                 {       //MethodID:2135, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19269                         return getPropertyValue("audioShutter");
19270                 }
19271
19272                 public function get playerConfig():IPlayerConfig
19273                 {       //MethodID:2136, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19274                         return getPropertyValue("playerConfig");
19275                 }
19276
19277                 public function get ngFilter():INGComment
19278                 {       //MethodID:2137, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19279                         return getPropertyValue("ngFilter");
19280                 }
19281
19282                 public function get commentListContainer():Object
19283                 {       //MethodID:2138, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19284                         return getPropertyValue("commentListContainer");
19285                 }
19286
19287                 public function get filteredCommentPoolContainer():CommentPoolContainer
19288                 {       //MethodID:2139, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19289                         return getPropertyValue("filteredCommentPoolContainer");
19290                 }
19291
19292                 public function get videoLayerManager():IVideoLayerManager
19293                 {       //MethodID:2140, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19294                         return getPropertyValue("videoLayerManager");
19295                 }
19296
19297                 public function get videoDetail():IVideoDetail
19298                 {       //MethodID:2141, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19299                         return getPropertyValue("videoDetail");
19300                 }
19301
19302                 public function get marqueeClient():INicoMarqueeClient
19303                 {       //MethodID:2142, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19304                         return getPropertyValue("marqueeClient");
19305                 }
19306
19307                 public function get pluginContainer():DisplayObjectContainer
19308                 {       //MethodID:2143, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19309                         return getPropertyValue("pluginContainer");
19310                 }
19311
19312                 public function get initializeInfo():InitializeInfo
19313                 {       //MethodID:2144, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
19314                         return getPropertyValue("initializeInfo");
19315                 }
19316         }
19317 }
19318
19319 //■script124■
19320
19321 package jp.nicovideo.nicoplayer.views{
19322
19323         //■class(instance)_index:149
19324         public class VideoLayerConstants extends Object
19325         {
19326                 //static constructor
19327                 public static function VideoLayerConstants$cinit()
19328                 {       //MethodID:2146, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 111
19329                         BASE_LAYER_HD_WIDTH = 672;
19330                         BASE_LAYER_HD_HEIGHT = 384;
19331                         BASE_LAYER_SD_WIDTH = 544;
19332                         BASE_LAYER_SD_HEIGHT = 384;
19333                         COMMENT_LAYER_HD_WIDTH = BASE_LAYER_HD_WIDTH;
19334                         COMMENT_LAYER_HD_HEIGHT = BASE_LAYER_HD_HEIGHT;
19335                         COMMENT_LAYER_SD_WIDTH = BASE_LAYER_SD_WIDTH;
19336                         COMMENT_LAYER_SD_HEIGHT = BASE_LAYER_SD_HEIGHT;
19337                         VIDEO_LAYER_HD_WIDTH = 640;
19338                         VIDEO_LAYER_HD_HEIGHT = BASE_LAYER_HD_HEIGHT;
19339                         VIDEO_LAYER_SD_WIDTH = 512;
19340                         VIDEO_LAYER_SD_HEIGHT = BASE_LAYER_SD_HEIGHT;
19341                 }
19342
19343                 //static variables/etc.
19344                 public static const BASE_LAYER_HD_WIDTH:Number = 672.0;         //slotID:1
19345                 public static const BASE_LAYER_HD_HEIGHT:Number = 384.0;        //slotID:2
19346                 public static const BASE_LAYER_SD_WIDTH:Number = 544.0;         //slotID:3
19347                 public static const BASE_LAYER_SD_HEIGHT:Number = 384.0;        //slotID:4
19348                 public static const COMMENT_LAYER_HD_WIDTH:Number = 672.0;      //slotID:5
19349                 public static const COMMENT_LAYER_HD_HEIGHT:Number = 384.0;     //slotID:6
19350                 public static const COMMENT_LAYER_SD_WIDTH:Number = 544.0;      //slotID:7
19351                 public static const COMMENT_LAYER_SD_HEIGHT:Number = 384.0;     //slotID:8
19352                 public static const VIDEO_LAYER_HD_WIDTH:Number = 640.0;        //slotID:9
19353                 public static const VIDEO_LAYER_HD_HEIGHT:Number = 384.0;       //slotID:10
19354                 public static const VIDEO_LAYER_SD_WIDTH:Number = 512.0;        //slotID:11
19355                 public static const VIDEO_LAYER_SD_HEIGHT:Number = 384.0;       //slotID:12
19356
19357                 //constructor
19358                 public function VideoLayerConstants()
19359                 {       //MethodID:2147, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
19360                         super();
19361                 }
19362         }
19363 }
19364
19365 //■script125■
19366
19367 package jp.nicovideo.nicoplayer.models.api{
19368
19369         //■class(instance)_index:150
19370         public class BGMVideoInfo extends Object
19371         {
19372                 //static constructor
19373                 public static function BGMVideoInfo$cinit()
19374                 {       //MethodID:2149, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
19375                         TYPE_BGM = "bgm";
19376                         TYPE_CM = "cm";
19377                 }
19378
19379                 //static variables/etc.
19380                 public static const TYPE_BGM:String = "bgm";                    //slotID:1
19381                 public static const TYPE_CM:String = "cm";                      //slotID:2
19382
19383                 //constructor
19384                 public function BGMVideoInfo(hug1:String, hug2:String, hug3:String, hug4:String, hug5:Number, hug6:String, hug7:Boolean, hug8:Boolean, hug9:Boolean):void
19385                 {       //MethodID:2150, LocalCount= 10 , MaxScope= 1, MaxStack= 2, CodeLength= 57
19386                         super();
19387
19388                         this._ID = hug1;
19389                         this._type = hug2;
19390                         this._videoID = hug3;
19391                         this._URL = hug4;
19392                         this._playLength = hug5;
19393                         this._movieType = hug6;
19394                         this._isDeleted = hug7;
19395                         this._isPrivate = hug8;
19396                         this._isAS3 = hug9;
19397                 }
19398
19399                 //variables/etc.
19400                 private var _ID:String;                                         //slotID:0
19401                 private var _type:String;                                       //slotID:0
19402                 private var _videoID:String;                                    //slotID:0
19403                 private var _URL:String;                                        //slotID:0
19404                 private var _playLength:Number;                                 //slotID:0
19405                 private var _movieType:String;                                  //slotID:0
19406                 private var _isDeleted:Boolean;                                 //slotID:0
19407                 private var _isPrivate:Boolean;                                 //slotID:0
19408                 private var _isAS3:Boolean;                                     //slotID:0
19409
19410                 public function get ID():String
19411                 {       //MethodID:2151, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19412                         return this._ID;
19413                 }
19414
19415                 public function get type():String
19416                 {       //MethodID:2152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19417                         return this._type;
19418                 }
19419
19420                 public function get videoID():String
19421                 {       //MethodID:2153, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19422                         return this._videoID;
19423                 }
19424
19425                 public function get URL():String
19426                 {       //MethodID:2154, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19427                         return this._URL;
19428                 }
19429
19430                 public function get playLength():Number
19431                 {       //MethodID:2155, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19432                         return this._playLength;
19433                 }
19434
19435                 public function get movieType():String
19436                 {       //MethodID:2156, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19437                         return this._movieType;
19438                 }
19439
19440                 public function get isDeleted():Boolean
19441                 {       //MethodID:2157, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19442                         return this._isDeleted;
19443                 }
19444
19445                 public function get isPrivate():Boolean
19446                 {       //MethodID:2158, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19447                         return this._isPrivate;
19448                 }
19449
19450                 public function get isAS3():Boolean
19451                 {       //MethodID:2159, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
19452                         return this._isAS3;
19453                 }
19454
19455                 public function toString():String
19456                 {       //MethodID:2160, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 86
19457                         return ("[" + BGMVideoInfo + ",ID=" + this._ID + ",type=" + this._type + ",videoID=" + this._videoID + ",URL=" + this._URL + ",playLength=" + this._playLength + ",movieType=" + this._movieType + ",isDeleted=" + this._isDeleted + ",isPrivate=" + this._isPrivate + "]");
19458                 }
19459         }
19460 }
19461
19462 //■script126■
19463
19464 package jp.nicovideo.nicoplayer.remocon{
19465
19466         //■class(instance)_index:151
19467         public interface IRemoconFullScreenKeeper
19468         {
19469                 //static constructor
19470                 public static function IRemoconFullScreenKeeper$cinit()
19471                 {       //MethodID:2162, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
19472                 }
19473
19474                 //variables/etc.
19475                 function get isFullScreen():Boolean;                                        //MethodID:2163, dispID:0
19476
19477                 function set isFullScreen(hug1:Boolean):void;                               //MethodID:2164, dispID:0
19478
19479                 function screenModeUpdateListener(hug1:uint):void;                          //MethodID:2165, dispID:0
19480
19481                 //constructor
19482                 public function IRemoconFullScreenKeeper();                                 //MethodID:2166, dispID:0
19483         }
19484 }
19485
19486 //■script127■
19487
19488 package jp.nicovideo.nicoplayer.remocon{
19489
19490         import jp.nicovideo.nicoplayer.external.IExternalClient
19491         import jp.nicovideo.nicoplayer.models.IPlayerConfig
19492         import jp.nicovideo.nicoplayer.models.ScreenMode
19493         import jp.nicovideo.util.CrossSharedObject
19494         import jp.nicovideo.util.storage.LocalStorage
19495
19496         //■class(instance)_index:152
19497         public class RemoconFullScreenKeeper extends Object implements IRemoconFullScreenKeeper
19498         {
19499                 //static constructor
19500                 public static function RemoconFullScreenKeeper$cinit()
19501                 {       //MethodID:2168, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
19502                 }
19503
19504                 //constructor
19505                 public function RemoconFullScreenKeeper(hug1:IPlayerConfig, hug2:IExternalClient)
19506                 {       //MethodID:2169, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 33
19507                         this._localStorage = CrossSharedObject.getStorage("jp.nicovideo.nicoplayer.remocon.RemoconFullScreenKeeper", "/");
19508
19509                         super();
19510
19511                         this._playerConfig = hug1;
19512                         this._externalClient = hug2;
19513                 }
19514
19515                 //variables/etc.
19516                 private var _localStorage:LocalStorage;                         //slotID:0
19517                 private var _playerConfig:IPlayerConfig;                        //slotID:0
19518                 private var _externalClient:IExternalClient;                    //slotID:0
19519
19520                 public function get isFullScreen():Boolean
19521                 {       //MethodID:2170, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 16
19522                         return this._localStorage.data["isFullScreen"];
19523                 }
19524
19525                 public function set isFullScreen(hug1:Boolean):void
19526                 {       //MethodID:2171, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 25
19527                         this._localStorage.data["isFullScreen"] = hug1;
19528
19529                         this._localStorage.flush();
19530                 }
19531
19532                 public function screenModeUpdateListener(hug1:uint):void
19533                 {       //MethodID:2172, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 72
19534                         if((hug1 != ScreenMode.BROWSER_FULL) && this.isFullScreen){
19535                                 this.isFullScreen = false;
19536
19537                                 if((this._playerConfig.fullScreenMode == ScreenMode.DISPLAY_FULL) && (hug1 == ScreenMode.NORMAL)) this._externalClient.toggleMaximizePlayerSize();
19538                         }
19539                 }
19540
19541                 public function start():void
19542                 {       //MethodID:2173, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 23
19543                         if(!this.isFullScreen) return;
19544                         this.update(ScreenMode.BROWSER_FULL);
19545                 }
19546
19547                 public function update(hug1:uint):void
19548                 {       //MethodID:2174, LocalCount= 5 , MaxScope= 7, MaxStack= 4, CodeLength= 171
19549                         internal var mode:uint;                                         //slotID:1
19550                         internal var bufferFullScreen:uint;                             //slotID:2
19551
19552                         mode = hug1;
19553
19554                         if((mode == ScreenMode.BROWSER_FULL) && !this.isFullScreen) this.isFullScreen = true;
19555
19556                         if(this._playerConfig.screenMode == mode) return;
19557
19558                         bufferFullScreen = this._playerConfig.fullScreenMode;
19559                         this._playerConfig.fullScreenMode = ScreenMode.BROWSER_FULL;
19560
19561                         try{
19562                                 this._playerConfig.screenMode = mode;
19563                         }
19564                         finally{
19565                                 this._playerConfig.fullScreenMode = bufferFullScreen;
19566                         }
19567                 }
19568         }
19569 }
19570
19571 //■script128■
19572
19573 package jp.nicovideo.nicoplayer.models.comment{
19574
19575         //■class(instance)_index:153
19576         public interface ITimeMachine
19577         {
19578                 //static constructor
19579                 public static function ITimeMachine$cinit()
19580                 {       //MethodID:2176, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
19581                 }
19582
19583                 //variables/etc.
19584                 function setPastDate(hug1:Date):Boolean;                                    //MethodID:2177, dispID:0
19585
19586                 function goInThePast(hug1:Date=null):Boolean;                               //MethodID:2178, dispID:0
19587
19588                 function returnNow():void;                                                  //MethodID:2179, dispID:0
19589
19590                 function get pastLimit():Date;                                              //MethodID:2180, dispID:0
19591
19592                 //constructor
19593                 public function ITimeMachine();                                             //MethodID:2181, dispID:0
19594         }
19595 }
19596
19597 //■script129■
19598
19599 package jp.nicovideo.nicoplayer.models.comment{
19600
19601         import jp.nicovideo.util.Functions
19602         import jp.nicovideo.util.events.event_sender
19603
19604         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
19605
19606         //■class(instance)_index:154
19607         public class TimeMachine extends Object
19608                         implements EventSender, ITimeMachine
19609         {
19610                 //static constructor
19611                 public static function TimeMachine$cinit()
19612                 {       //MethodID:2183, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
19613                 }
19614
19615                 //constructor
19616                 public function TimeMachine(hug1:Date)
19617                 {       //MethodID:2184, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
19618                         this.onTimeMachineDateUpdated = new Functions();
19619
19620                         super();
19621
19622                         if(!hug1) throw new Error("TimeMachine.TimeMachine: invalid entryDate");
19623
19624                         this._entryDate = hug1;
19625                 }
19626
19627                 //variables/etc.
19628                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onTimeMachineDateUpdated:Functions;//slotID:0
19629                 private var _pastDate:Date;                                     //slotID:0
19630                 private var _entryDate:Date;                                    //slotID:0
19631                 private var _isPastDate:Boolean = false;                        //slotID:0
19632
19633                 public function get eventNames():Array
19634                 {       //MethodID:2185, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
19635                         return ["onTimeMachineDateUpdated"];
19636                 }
19637
19638                 public function setPastDate(hug1:Date):Boolean
19639                 {       //MethodID:2186, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 33
19640                         if(!hug1) return false;
19641
19642                         if(hug1.time < this._entryDate.time) return false;
19643
19644                         this._pastDate = hug1;
19645                         return true;
19646                 }
19647
19648                 public function goInThePast(hug1:Date=null):Boolean
19649                 {       //MethodID:2187, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 53
19650                         if(hug1){
19651                                 if(!this.setPastDate(hug1)) return false;
19652                         }
19653
19654                         onTimeMachineDateUpdated.apply(true, this._pastDate);
19655
19656                         this._isPastDate = true;
19657                         return true;
19658                 }
19659
19660                 public function returnNow():void
19661                 {       //MethodID:2188, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 41
19662                         if(!this._isPastDate) return;
19663                         onTimeMachineDateUpdated.apply(false, null);
19664
19665                         this._isPastDate = false;
19666                 }
19667
19668                 public function get pastLimit():Date
19669                 {       //MethodID:2189, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 15
19670                         return new Date(this._entryDate.time);
19671                 }
19672         }
19673 }
19674
19675 //■script130■
19676
19677 package jp.nicovideo.nicoplayer.models.filter{
19678
19679         //■class(instance)_index:155
19680         public class NGResponseConstants extends Object
19681         {
19682                 //static constructor
19683                 public static function NGResponseConstants$cinit()
19684                 {       //MethodID:2191, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 66
19685                         UNSERVE = "UNSERVE";
19686                         OK = "OK";
19687                         ERROR_IO = "error_io";
19688                         ERROR_PARAMERROR = "PARAMERROR";
19689                         ERROR_NOAUTHORITY = "NOAUTHORITY";
19690                         ERROR_MAXNGWORD = "MAXNGWORD";
19691                         ERROR_MAINTENANCE = "MAINTENANCE";
19692                 }
19693
19694                 //static variables/etc.
19695                 public static const UNSERVE:String = "UNSERVE";                 //slotID:1
19696                 public static const OK:String = "OK";                           //slotID:2
19697                 public static const ERROR_IO:String = "error_io";               //slotID:3
19698                 public static const ERROR_PARAMERROR:String = "PARAMERROR";     //slotID:4
19699                 public static const ERROR_NOAUTHORITY:String = "NOAUTHORITY";   //slotID:5
19700                 public static const ERROR_MAXNGWORD:String = "MAXNGWORD";       //slotID:6
19701                 public static const ERROR_MAINTENANCE:String = "MAINTENANCE";   //slotID:7
19702
19703                 //constructor
19704                 public function NGResponseConstants()
19705                 {       //MethodID:2192, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
19706                         super();
19707                 }
19708         }
19709 }
19710
19711 //■script131■
19712
19713 package jp.nicovideo.nicoplayer.config{
19714
19715         //■class(instance)_index:156
19716         public class DefaultInitializer extends Object
19717         {
19718                 //static constructor
19719                 public static function DefaultInitializer$cinit()
19720                 {       //MethodID:2194, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 255
19721                         __ADVERTISEMENT_API_URL = "http://ad.nicovideo.jp/server/get";
19722                         __ADVERTISEMENT_API_URL_DEV = "http://ad.dev.nicovideo.jp/server/get";
19723                         __ADVERTISEMENT_API_URL_DEV_GA = "http://www.ga.dev.nicovideo.jp/swf/player/sample/adtest.txt";
19724                         __GETSPONSOR_API_URL = "http://api.uad.nicovideo.jp/UadsVideoService/getSponsors";
19725                         __GETSPONSOR_API_URL_DEV = "http://api.uad.dev.nicovideo.jp/UadsVideoService/getSponsors";
19726                         __OTHERSPONSOR_URL = "http://uad.nicovideo.jp/ads/";
19727                         __OTHERSPONSOR_URL_DEV = "http://uad.dev.nicovideo.jp/ads/";
19728                         __PIZZA_URL = "http://info.nicovideo.jp/pizza/";
19729                         __CLICK_COUNTER_BASE_URL = "http://rd.nicovideo.jp/cc/";
19730                         __CROSSSHAREDOBJECT_SWF = "cross_sharedobject.swf";
19731                         __NICOSPLAYER = "nicoscript.swf";
19732                         __MARQUEEPLAYER = "marqueeplayer.swf";
19733                         __PLAYERVERSION_XML = "player_version.xml";
19734                         __PLAYERINFO_XML = "player_info.xml";
19735                         __USERSPONSOR = "user_sponsor.swf";
19736                         __HIROBAMOVIE = "hirobamovie.swf";
19737                         __PARADEMAP = "parademap.swf";
19738                         __VIEW_SWF = "nicoplayer_template.swf";
19739                         __CONTROLLER_SWF = "nicoplayer_view_controller.swf";
19740                         __THUMBVIEW_SWF = "thumbplayer_view.swf";
19741                         __THUMBCONTROLLER_SWF = "thumbplayer_controller.swf";
19742                         __HIROBACONNECTOR_SWF = "hirobaconnector.swf";
19743                         __VIDEO_MENU_SWF = "video_menu.swf";
19744                         __VIDEO_ENDER_SWF = "videoender.swf";
19745                         __PLUGINLOADER_SWF = "pluginloader.swf";
19746                         __JSCONNECTOR_SWF = "jsconnector.swf";
19747                         __APPLIBAR_SWF = "applibar.swf";
19748                         __REMOCON_ALERT_SWF_URL = "RemoconAlert.swf";
19749                 }
19750
19751                 //static variables/etc.
19752                 private static const __ADVERTISEMENT_API_URL:String = "http://ad.nicovideo.jp/server/get";//slotID:1
19753                 private static const __ADVERTISEMENT_API_URL_DEV:String = "http://ad.dev.nicovideo.jp/server/get";//slotID:2
19754                 private static const __ADVERTISEMENT_API_URL_DEV_GA:String = "http://www.ga.dev.nicovideo.jp/swf/player/sample/adtest.txt";//slotID:3
19755                 private static const __GETSPONSOR_API_URL:String = "http://api.uad.nicovideo.jp/UadsVideoService/getSponsors";//slotID:4
19756                 private static const __GETSPONSOR_API_URL_DEV:String = "http://api.uad.dev.nicovideo.jp/UadsVideoService/getSponsors";//slotID:5
19757                 private static const __OTHERSPONSOR_URL:String = "http://uad.nicovideo.jp/ads/";//slotID:6
19758                 private static const __OTHERSPONSOR_URL_DEV:String = "http://uad.dev.nicovideo.jp/ads/";//slotID:7
19759                 private static const __PIZZA_URL:String = "http://info.nicovideo.jp/pizza/";//slotID:8
19760                 private static const __CLICK_COUNTER_BASE_URL:String = "http://rd.nicovideo.jp/cc/";//slotID:9
19761                 private static const __CROSSSHAREDOBJECT_SWF:String = "cross_sharedobject.swf";//slotID:10
19762                 private static const __NICOSPLAYER:String = "nicoscript.swf";   //slotID:11
19763                 private static const __MARQUEEPLAYER:String = "marqueeplayer.swf";//slotID:12
19764                 private static const __PLAYERVERSION_XML:String = "player_version.xml";//slotID:13
19765                 private static const __PLAYERINFO_XML:String = "player_info.xml";//slotID:14
19766                 private static const __USERSPONSOR:String = "user_sponsor.swf"; //slotID:15
19767                 private static const __HIROBAMOVIE:String = "hirobamovie.swf";  //slotID:16
19768                 private static const __PARADEMAP:String = "parademap.swf";      //slotID:17
19769                 private static const __VIEW_SWF:String = "nicoplayer_template.swf";//slotID:18
19770                 private static const __CONTROLLER_SWF:String = "nicoplayer_view_controller.swf";//slotID:19
19771                 private static const __THUMBVIEW_SWF:String = "thumbplayer_view.swf";//slotID:20
19772                 private static const __THUMBCONTROLLER_SWF:String = "thumbplayer_controller.swf";//slotID:21
19773                 private static const __HIROBACONNECTOR_SWF:String = "hirobaconnector.swf";//slotID:22
19774                 private static const __VIDEO_MENU_SWF:String = "video_menu.swf";//slotID:23
19775                 private static const __VIDEO_ENDER_SWF:String = "videoender.swf";//slotID:24
19776                 private static const __PLUGINLOADER_SWF:String = "pluginloader.swf";//slotID:25
19777                 private static const __JSCONNECTOR_SWF:String = "jsconnector.swf";//slotID:26
19778                 private static const __APPLIBAR_SWF:String = "applibar.swf";    //slotID:27
19779                 private static const __REMOCON_ALERT_SWF_URL:String = "RemoconAlert.swf";//slotID:28
19780
19781                 public static function setConfig(hug1:NicoConfig, hug2:String, hug3:int=0):void
19782                 {       //dispID:3, MethodID:2195, LocalCount= 39 , MaxScope= 1, MaxStack= 5, CodeLength= 2471
19783                         var hug4:String = null;
19784                         var hug5:String = null;
19785                         var hug6:String = null;
19786                         var hug7:String = null;
19787                         var hug8:String = null;
19788                         var hug13:String = null;
19789                         var hug14:String = null;
19790                         var hug15:String = null;
19791                         var hug16:String = null;
19792                         var hug17:String = null;
19793                         var hug18:String = null;
19794                         var hug19:String = null;
19795                         var hug20:String = null;
19796                         var hug21:String = null;
19797                         var hug22:String = null;
19798                         var hug23:String = null;
19799                         var hug24:String = null;
19800                         var hug25:String = null;
19801                         var hug26:String = null;
19802                         var hug27:String = null;
19803                         var hug28:String = null;
19804                         var hug29:String = null;
19805                         var hug30:String = null;
19806                         var hug31:String = null;
19807                         var hug32:String = null;
19808                         var hug35:String = null;
19809                         var hug36:String = null;
19810                         var hug37:String = null;
19811                         var hug9:String = "swf/player/";
19812                         var hug10:String = __ADVERTISEMENT_API_URL_DEV;
19813                         var hug11:String = __GETSPONSOR_API_URL_DEV;
19814                         var hug12:String = __OTHERSPONSOR_URL_DEV;
19815                         var hug33:Array = new RegExp("^http:\/\/((?:[\w\-]+\.)*)(nicovideo|nimg)\.jp\/", "ig").exec(hug2);
19816
19817                         if(hug33){
19818                                 hug5 = hug33[0];
19819                                 hug4 = hug5.replace("nimg", "nicovideo").replace("res", "www");
19820                                 hug4 = hug5.replace("nimg", "nicovideo").replace("res", "www").replace("nine.www.", "nine.");
19821                                 hug36 = hug33[1].toLowerCase();
19822
19823                                 if(new RegExp("dev\.").test(hug36)){
19824                                         if(new RegExp("ga\.dev\.").test(hug36)){
19825                                                 hug10 = __ADVERTISEMENT_API_URL_DEV_GA;
19826                                         }else{
19827                                                 hug10 = __ADVERTISEMENT_API_URL_DEV;
19828                                         }
19829
19830                                         hug11 = __GETSPONSOR_API_URL_DEV;
19831                                         hug12 = __OTHERSPONSOR_URL_DEV;
19832                                 }else{
19833                                         hug10 = __ADVERTISEMENT_API_URL;
19834                                         hug11 = __GETSPONSOR_API_URL;
19835                                         hug12 = __OTHERSPONSOR_URL;
19836                                 }
19837
19838                                 hug9 = _getPlayerPath(hug2);
19839
19840                                 if(hug9.indexOf("pre") == (-1)){
19841                                         hug6 = (hug5 + "swf/appli/");
19842                                 }else{
19843                                         hug6 = (hug5 + "swf/appli_pre/");
19844                                 }
19845
19846                                 hug7 = (hug5 + "swf/remocon/");
19847                                 hug2 = (hug5 + hug9);
19848
19849                                 if(new RegExp("^http:\/\/(ext\.).*\/", "ig").test(hug2)){
19850                                         hug13 = (hug2.replace(new RegExp("ext\."), "res.").replace("nicovideo", "nimg") + __CROSSSHAREDOBJECT_SWF);
19851                                 }else{
19852                                         hug13 = (hug2.replace(new RegExp("www\."), "res.").replace("nicovideo", "nimg") + __CROSSSHAREDOBJECT_SWF);
19853                                         hug14 = (hug4 + hug9 + __CROSSSHAREDOBJECT_SWF);
19854                                 }
19855
19856                                 hug15 = (hug2 + __NICOSPLAYER);
19857                                 hug16 = (hug2 + __MARQUEEPLAYER);
19858                                 hug17 = (hug2 + __PLAYERVERSION_XML);
19859                                 hug18 = (hug2 + __PLAYERINFO_XML);
19860                                 hug19 = (hug2 + __USERSPONSOR);
19861                                 hug20 = (hug2 + __HIROBAMOVIE);
19862                                 hug21 = (hug2 + __PARADEMAP);
19863                                 hug22 = (hug2 + __VIEW_SWF);
19864                                 hug23 = (hug2 + __CONTROLLER_SWF);
19865                                 hug24 = (hug2 + __THUMBVIEW_SWF);
19866                                 hug25 = (hug2 + __THUMBCONTROLLER_SWF);
19867                                 hug26 = (hug2 + __HIROBACONNECTOR_SWF);
19868                                 hug27 = (hug2 + __VIDEO_MENU_SWF);
19869                                 hug28 = (hug2 + __VIDEO_ENDER_SWF);
19870                                 hug29 = (hug2 + __PLUGINLOADER_SWF);
19871                                 hug30 = (hug6 + __APPLIBAR_SWF);
19872                                 hug32 = (hug7 + __REMOCON_ALERT_SWF_URL);
19873                                 hug31 = (hug4 + hug9 + __JSCONNECTOR_SWF);
19874                         }else{
19875                                 var hug38:int = hug3;
19876
19877                                 switch(hug38){
19878                                 case DebugMode.GADEV:
19879                                         hug4 = "http://www.ga.dev.nicovideo.jp/";
19880                                         hug10 = __ADVERTISEMENT_API_URL_DEV_GA;
19881                                         break;
19882                                 case DebugMode.NICOAPP_DEV:
19883                                         hug4 = "http://www.nicoapp.dev.nicovideo.jp";
19884                                         break;
19885                                 case DebugMode.LOCAL:
19886                                         hug4 = "";
19887                                         break;
19888                                 case DebugMode.LOCAL_EACHENV:
19889                                         hug4 = "each_env/";
19890                                         break;
19891                                 case DebugMode.DEV:
19892                                         hug4 = "http://www.dev.nicovideo.jp/";
19893                                         break;
19894                                 case DebugMode.EXTDEV:
19895                                         hug4 = "http://ext.dev.nicovideo.jp/";
19896                                         break;
19897                                 case DebugMode.TEST:
19898                                         hug4 = "http://www.test.nicovideo.jp/";
19899                                         hug10 = __ADVERTISEMENT_API_URL;
19900                                         hug11 = __GETSPONSOR_API_URL;
19901                                         hug12 = __OTHERSPONSOR_URL;
19902                                         break;
19903                                 case DebugMode.WEB:
19904                                         hug4 = "http://www.nicovideo.jp/";
19905                                         hug10 = __ADVERTISEMENT_API_URL;
19906                                         hug11 = __GETSPONSOR_API_URL;
19907                                         hug12 = __OTHERSPONSOR_URL;
19908                                         break;
19909                                 default:
19910                                         throw new Error("NicoPlayerConfigure.Configure: Error");
19911                                         break;
19912                                 }
19913
19914                                 if((hug3 == DebugMode.LOCAL) || (hug3 == DebugMode.LOCAL_EACHENV)){
19915                                         hug16 = (hug4 + __MARQUEEPLAYER);
19916                                         hug24 = (hug4 + __THUMBVIEW_SWF);
19917                                         hug25 = (hug4 + __THUMBCONTROLLER_SWF);
19918                                 }else{
19919                                         hug16 = ("../../marqueeplayer/bin-debug/" + __MARQUEEPLAYER);
19920                                         hug24 = ("../../thumbwatch/bin-debug/" + __THUMBVIEW_SWF);
19921                                         hug25 = ("../../thumbwatch/bin-debug/" + __THUMBCONTROLLER_SWF);
19922                                         hug30 = ("../../appli_contents_applibar/bin-debug/" + __APPLIBAR_SWF);
19923                                         hug32 = ("../../AlertSDK/bin/" + __REMOCON_ALERT_SWF_URL);
19924                                 }
19925
19926                                 hug37 = "";
19927
19928                                 if(hug3 == DebugMode.EXTDEV) hug37 = "../../nicoplayer/bin-debug/";
19929
19930                                 hug13 = (hug37 + __CROSSSHAREDOBJECT_SWF);
19931                                 hug14 = (hug37 + __CROSSSHAREDOBJECT_SWF);
19932                                 hug15 = (hug37 + __NICOSPLAYER);
19933                                 hug17 = (hug37 + __PLAYERVERSION_XML);
19934                                 hug18 = (hug37 + __PLAYERINFO_XML);
19935                                 hug19 = (hug37 + __USERSPONSOR);
19936                                 hug20 = (hug37 + __HIROBAMOVIE);
19937                                 hug21 = (hug37 + __PARADEMAP);
19938                                 hug27 = (hug37 + __VIDEO_MENU_SWF);
19939                                 hug28 = (hug37 + __VIDEO_ENDER_SWF);
19940                                 hug29 = (hug37 + __PLUGINLOADER_SWF);
19941                                 hug26 = (hug37 + __HIROBACONNECTOR_SWF);
19942                                 hug31 = (hug37 + __JSCONNECTOR_SWF);
19943                                 hug22 = __VIEW_SWF;
19944                                 hug23 = __CONTROLLER_SWF;
19945                         }
19946
19947                         hug8 = (hug4.replace(new RegExp("(www|res|nine)"), "flapi") + "api/");
19948                         nico_config.BASE_URL = hug4;
19949                         var hug34:String = hug4.replace("www", "m");
19950                         nico_config.MOBILE_BASE_URL = hug34;
19951                         nico_config.MOBILE_WATCH_URL = (hug34 + "watch/");
19952
19953                         if(new RegExp("^http:\/\/(ext\.).*\/", "ig").test(hug2) != true){
19954                                 hug35 = (hug4.replace("http:", "https:").replace("www", "secure") + "secure/");
19955                         }else{
19956                                 hug35 = (hug4.replace("http:", "https:").replace("ext", "secure") + "secure/");
19957                         }
19958
19959                         nico_config.NICOVIDEO_ACCOUNT_SETTING_URL = hug35;
19960                         nico_config.NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL = (hug35 + "register?transition=common");
19961                         nico_config.FLAPI_BASE_URL = hug8;
19962                         nico_config.CROSSSHAREDOBJECT_SWF_URL = hug13;
19963                         nico_config.CROSSSHAREDOBJECT_NONIMG_SWF_URL = hug14;
19964                         nico_config.MARQUEE_PLAYER_URL = hug16;
19965                         nico_config.THUMBPLAYER_VIEW_URL = hug24;
19966                         nico_config.THUMBPLAYER_CONTROLLER_URL = hug25;
19967                         nico_config.NICOSPLAYER_URL = hug15;
19968                         nico_config.PLAYERVERSION_XML_URL = hug17;
19969                         nico_config.PLAYERINFO_XML_URL = hug18;
19970                         nico_config.USERSPONSOR_MOVIE_URL = hug19;
19971                         nico_config.VIEW_SWF_URL = hug22;
19972                         nico_config.VIEWCONTROLLER_SWF_URL = hug23;
19973                         nico_config.HIROBA_MOVIE_URL = hug20;
19974                         nico_config.PARADE_MAP_URL = hug21;
19975                         nico_config.HIROBACONNECTOR_SWF_URL = hug26;
19976                         nico_config.VIDEO_MENU_URL = hug27;
19977                         nico_config.VIDEO_ENDER_URL = hug28;
19978                         nico_config.PLUGINLOADER_SWF_URL = hug29;
19979                         nico_config.APPLIBAR_URL = hug30;
19980                         nico_config.JSCONNECTOR_SWF_URL = hug31;
19981                         nico_config.REMOCON_ALERT_SWF_URL = hug32;
19982                         nico_config.RES_URL = hug4.replace("www", "res").replace("nicovideo", "nimg");
19983                         nico_config.CHANNEL_URL = hug4.replace("www", "ch");
19984                         nico_config.GETFLV_URL = (hug8 + "getflv");
19985                         nico_config.GETBGM_API_URL = (hug8 + "getbgm");
19986                         nico_config.GETPOSTKEY_URL = (hug8 + "getpostkey/");
19987                         nico_config.GET_CLICKKEY_URL = (hug8 + "getclickkey");
19988                         nico_config.GET_WAYBACKKEY_URL = (hug8 + "getwaybackkey");
19989                         nico_config.GET_DELETEKEY_URL = (hug8 + "getdeletekey");
19990                         nico_config.GET_UPDATEKEY_URL = (hug8 + "getupdatekey");
19991                         nico_config.GET_THREADKEY_URL = (hug8 + "getthreadkey");
19992                         nico_config.GET_NSKEY_URL = (hug8 + "getnskey");
19993                         nico_config.GETTHUMBINFO_URL = (hug4.replace("www", "ext") + "api/getthumbinfo/");
19994                         nico_config.GETRELATION_URL = (hug8 + "getrelation");
19995                         nico_config.GETGAMERANKING_URL = (hug8 + "getgameranking");
19996                         nico_config.GETENQUESTERESULT_URL = (hug8 + "getnicoenquete");
19997                         nico_config.GETCONFIGURENGCLIENT_URL = (hug8 + "configurengclient");
19998                         nico_config.THUMBWATCH_URL = (hug4 + "thumb_watch");
19999                         nico_config.GET_CONFIGURE_NGWORD = (hug8 + "configurengword");
20000                         nico_config.REDIRECTOR_URL = (hug4.replace("ext", "www") + "redir");
20001                         nico_config.adAPI_URL = hug10;
20002                         nico_config.REGISTERBGM_API_URL = (hug8 + "registerbgm");
20003                         nico_config.LOGGER_API_URL = (hug8 + "logger.php");
20004                         nico_config.PLAYLEN_API_URL = (hug8 + "playlen");
20005                         nico_config.MYLIST_ADD_API_URL = (hug8 + "deflist/add");
20006                         nico_config.FEED_ADD_API_URL = (hug8 + "feed/add");
20007                         nico_config.FEED_DEL_API_URL = (hug8 + "feed/delete");
20008                         nico_config.FEED_LIST_API_URL = (hug8 + "feed/list");
20009                         nico_config.LEAD_MOBILE_WATCH_API_URL = (hug8 + "leadmobilewatch");
20010                         nico_config.SMILEVIDEO_URL = "http://www.smilevideo.jp/";
20011                         nico_config.HOWTOUSE_URL = "http://help.nicovideo.jp/cat21/post.html";
20012                         nico_config.RECOMMEND_ENV_URL = "http://help.nicovideo.jp/cat18/post_1.html";
20013                         nico_config.DIC_NICOVIDEO_URL = "http://dic.nicovideo.jp/";
20014                         nico_config.DELETE_COMMENT_URL = "http://bbs.nicovideo.jp/delete/comment/";
20015                         nico_config.ENTRY_HANDBOOK_URL = "http://info.nicovideo.jp/smile/handbook/";
20016                         nico_config.RULES_URL = "http://info.nicovideo.jp/base/rule.html";
20017                         nico_config.NOSO_URL = "http://info.nicovideo.jp/help/player/faq/local_00.html";
20018                         nico_config.NOSO_BANNER_URL = (hug1.RES_URL + "img/marquee/noso.png");
20019                         nico_config.GETSPONSOR_API_URL = hug11;
20020                         nico_config.OTHERSPONSOR_URL = hug12;
20021                         nico_config.PIZZA_URL = __PIZZA_URL;
20022                         nico_config.CLICK_COUNTER_BASE_URL = __CLICK_COUNTER_BASE_URL;
20023                         nico_config.HIROBA_GETPOSTKEY_URL = (hug8 + "hiroba/getpostkey");
20024                         nico_config.PREMIUMLEAD_ON_SLIDER_LINK_URL = (hug4 + "comparison");
20025                         nico_config.GET_CHECKLIST_URL = (hug8 + "getchecklist");
20026                         nico_config.MYLIST_PAGE_URL = (hug4 + "my/mylist/");
20027                         nico_config.OPEN_MYLIST_URL = (hug4 + "openlist/");
20028                         nico_config.MYLIST_COMMENT_URL = (hug4 + "mylistcomment/video/");
20029                         nico_config.GET_PLAYLIST_URL = (hug8 + "getplaylist/mylist/");
20030                         nico_config.WATCH_API_URL = (hug4 + "watch/");
20031                         nico_config.PLAYLIST_PAGE_BASE_URL = (hug4 + "playlist/mylist/");
20032                 }
20033
20034                 private static function _getPlayerPath(hug1:String):String
20035                 {       //dispID:4, MethodID:2196, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 59
20036                         var hug2:RegExp = new RegExp("^http://[^/]+/(.*?/)[^/]+.swf");
20037                         var hug3:Array = hug2.exec(hug1);
20038
20039                         if(hug3 && (hug3.length >= 2)) return hug3[1];
20040
20041                         throw new ArgumentError("DefaultInitializer._getPlayerPath");
20042                 }
20043
20044                 public static function setThumbDebugMode(hug1:NicoConfig):void
20045                 {       //dispID:5, MethodID:2197, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 82
20046                         var hug2:String = "../../nicoplayer/bin-debug/";
20047                         nico_config.NICOSPLAYER_URL = (hug2 + __NICOSPLAYER);
20048                         nico_config.PLAYERVERSION_XML_URL = (hug2 + __PLAYERVERSION_XML);
20049                         nico_config.USERSPONSOR_MOVIE_URL = (hug2 + __USERSPONSOR);
20050                         nico_config.VIEW_SWF_URL = (hug2 + __VIEW_SWF);
20051                         nico_config.VIEWCONTROLLER_SWF_URL = (hug2 + __CONTROLLER_SWF);
20052                 }
20053
20054                 //constructor
20055                 public function DefaultInitializer()
20056                 {       //MethodID:2198, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20057                         super();
20058                 }
20059         }
20060 }
20061
20062 //■script132■
20063
20064 package jp.nicovideo.nicoplayer.models.api{
20065
20066         import flash.net.URLVariables
20067         import jp.nicovideo.nicoplayer.config.NicoConfig
20068         import jp.nicovideo.util.Assert
20069         import jp.nicovideo.util.HTTPUtils
20070
20071         //■class(instance)_index:157
20072         public class Keygen extends Object implements IKeygen
20073         {
20074                 //static constructor
20075                 public static function Keygen$cinit()
20076                 {       //MethodID:2200, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
20077                 }
20078
20079                 //constructor
20080                 public function Keygen(hug1:NicoConfig)
20081                 {       //MethodID:2201, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
20082                         super();
20083
20084                         this.__conf = hug1;
20085                 }
20086
20087                 //variables/etc.
20088                 private var __conf:NicoConfig;                                  //slotID:0
20089
20090                 public function getPostKey(hug1:Function, hug2:String, hug3:int, hug4:Boolean):void
20091                 {       //MethodID:2203, LocalCount= 6 , MaxScope= 2, MaxStack= 9, CodeLength= 84
20092                         internal var f:Function;                                        //slotID:1
20093                         internal var threadID:String;                                   //slotID:2
20094                         internal var page:int;                                          //slotID:3
20095                         internal var yugi:Boolean;                                      //slotID:4
20096
20097                         f = hug1;
20098                         threadID = hug2;
20099                         page = hug3;
20100                         yugi = hug4;
20101
20102                         HTTPUtils.sendQuery(function(hug1:URLVariables):void{   //MethodID:2202, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 62
20103                                 var hug2:String = hug1["postkey"];
20104
20105                                 if((hug1 != null) && hug2){
20106                                         f(true, hug2, (hug1["yugi"] == "1"));
20107                                 }else{
20108                                         f(false, null, false);
20109                                 }
20110                         }, this.__conf.GETPOSTKEY_URL, {thread:threadID, block_no:page, yugi:(yugi ? "1" : "")});
20111                 }
20112
20113                 public function getClickKey(hug1:Function, hug2:String, hug3:int, hug4:int):void
20114                 {       //MethodID:2204, LocalCount= 5 , MaxScope= 1, MaxStack= 10, CodeLength= 34
20115                         this.__getchu(hug1, this.__conf.GET_CLICKKEY_URL, "clickkey", {thread:hug2, num_res:hug3, click_revision:hug4});
20116                 }
20117
20118                 public function getDeleteKey(hug1:Function, hug2:String, hug3:Array):String
20119                 {       //MethodID:2207, LocalCount= 5 , MaxScope= 2, MaxStack= 8, CodeLength= 103
20120                         internal var f:Function;                                        //slotID:1
20121                         internal var threadID:String;                                   //slotID:2
20122                         internal var list:Array;                                        //slotID:3
20123                         internal var vals:String;                                       //slotID:4
20124
20125                         f = hug1;
20126                         threadID = hug2;
20127                         list = hug3;
20128
20129                         Assert.assert(list.every(function(hug1:*, hug2:int, hug3:Array):Boolean{        //MethodID:2206, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 5
20130                                 return (hug1 is uint);
20131                         }));
20132
20133                         vals = list.sort(function(hug1:uint, hug2:uint):Number{ //MethodID:2205, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 4
20134                                 return (hug1 - hug2);
20135                         }).join(",");
20136                         this.__postchu(f, this.__conf.GET_DELETEKEY_URL, "deletekey", {thread_id:threadID, res_no:vals});
20137
20138                         return vals;
20139                 }
20140
20141                 public function getWaybackKey(hug1:Function, hug2:String):void
20142                 {       //MethodID:2208, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 25
20143                         this.__getchu(hug1, this.__conf.GET_WAYBACKKEY_URL, "waybackkey", {thread:hug2});
20144                 }
20145
20146                 public function getUpdateKey(hug1:Function, hug2:String, hug3:String, hug4:Boolean):void
20147                 {       //MethodID:2209, LocalCount= 5 , MaxScope= 1, MaxStack= 10, CodeLength= 49
20148                         this.__getchu(hug1, this.__conf.GET_UPDATEKEY_URL, "updatekey", {thread:hug2, ticket:hug3, nicos:(hug4 ? "yes" : "")});
20149                 }
20150
20151                 public function getThreadKey(hug1:Function, hug2:String):void
20152                 {       //MethodID:2211, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 43
20153                         internal var f:Function;                                        //slotID:1
20154                         internal var threadID:String;                                   //slotID:2
20155
20156                         f = hug1;
20157                         threadID = hug2;
20158
20159                         HTTPUtils.sendQuery(function(hug1:URLVariables):void{   //MethodID:2210, LocalCount= 3 , MaxScope= 0, MaxStack= 5, CodeLength= 62
20160                                 var hug2:String = hug1["threadkey"];
20161
20162                                 if((hug1 != null) && hug2){
20163                                         f(true, hug2, (hug1["force_184"] == "1"));
20164                                 }else{
20165                                         f(false, null, false);
20166                                 }
20167                         }, this.__conf.GET_THREADKEY_URL, {thread:threadID});
20168                 }
20169
20170                 public function getHirobaPostKey(hug1:Function, hug2:String, hug3:int):void
20171                 {       //MethodID:2212, LocalCount= 4 , MaxScope= 1, MaxStack= 8, CodeLength= 29
20172                         this.__getchu(hug1, this.__conf.HIROBA_GETPOSTKEY_URL, "postkey", {thread:hug2, block_no:hug3});
20173                 }
20174
20175                 private function __getchu(hug1:Function, hug2:String, hug3:String, hug4:Object):void
20176                 {       //MethodID:2214, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 47
20177                         internal var f:Function;                                        //slotID:1
20178                         internal var apiURL:String;                                     //slotID:2
20179                         internal var name:String;                                       //slotID:3
20180                         internal var param:Object;                                      //slotID:4
20181
20182                         f = hug1;
20183                         apiURL = hug2;
20184                         name = hug3;
20185                         param = hug4;
20186
20187                         HTTPUtils.sendQuery(function(hug1:URLVariables):void{   //MethodID:2213, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 53
20188                                 if((hug1 != null) && hug1[name]){
20189                                         f(true, hug1[name]);
20190                                 }else{
20191                                         f(false, null);
20192                                 }
20193                         }, apiURL, param);
20194                 }
20195
20196                 private function __postchu(hug1:Function, hug2:String, hug3:String, hug4:Object):void
20197                 {       //MethodID:2216, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 47
20198                         internal var f:Function;                                        //slotID:1
20199                         internal var apiURL:String;                                     //slotID:2
20200                         internal var name:String;                                       //slotID:3
20201                         internal var param:Object;                                      //slotID:4
20202
20203                         f = hug1;
20204                         apiURL = hug2;
20205                         name = hug3;
20206                         param = hug4;
20207
20208                         HTTPUtils.sendPostData(function(hug1:URLVariables):void{        //MethodID:2215, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 53
20209                                 if((hug1 != null) && hug1[name]){
20210                                         f(true, hug1[name]);
20211                                 }else{
20212                                         f(false, null);
20213                                 }
20214                         }, apiURL, param);
20215                 }
20216         }
20217 }
20218
20219 //■script133■
20220
20221 package jp.nicovideo.nicoplayer.models.video{
20222
20223         //■class(instance)_index:158
20224         public class ChildVideoName extends Object
20225         {
20226                 //static constructor
20227                 public static function ChildVideoName$cinit()
20228                 {       //MethodID:2218, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
20229                         MAIN_VIDEO = "maing_video";
20230                         USER_SPONSOR = "user_sponsor_video";
20231                         DELETED_SUPPLEMENTION = "deleted_suplemention";
20232                 }
20233
20234                 //static variables/etc.
20235                 public static const MAIN_VIDEO:String = "maing_video";          //slotID:1
20236                 public static const USER_SPONSOR:String = "user_sponsor_video"; //slotID:2
20237                 public static const DELETED_SUPPLEMENTION:String = "deleted_suplemention";//slotID:3
20238
20239                 //constructor
20240                 public function ChildVideoName()
20241                 {       //MethodID:2219, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20242                         super();
20243                 }
20244         }
20245 }
20246
20247 //■script134■
20248
20249 package jp.nicovideo.nicoplayer.storages{
20250
20251         //■class(instance)_index:159
20252         public interface ICommentStorage
20253         {
20254                 //static constructor
20255                 public static function ICommentStorage$cinit()
20256                 {       //MethodID:2221, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
20257                 }
20258
20259                 //variables/etc.
20260                 function get onServerTimeUpdated():Function;                                //MethodID:2222, dispID:0
20261
20262                 function set onServerTimeUpdated(hug1:Function):void;                       //MethodID:2223, dispID:0
20263
20264                 function get onViewCounterUpdated():Function;                               //MethodID:2224, dispID:0
20265
20266                 function set onViewCounterUpdated(hug1:Function):void;                      //MethodID:2225, dispID:0
20267
20268                 function get forceLeafOff():Boolean;                                        //MethodID:2226, dispID:0
20269
20270                 function set forceLeafOff(hug1:Boolean):void;                               //MethodID:2227, dispID:0
20271
20272                 function get leafNum():int;                                                 //MethodID:2228, dispID:0
20273
20274                 function set leafNum(hug1:int):void;                                        //MethodID:2229, dispID:0
20275
20276                 function connect():void;                                                    //MethodID:2230, dispID:0
20277
20278                 function attach(hug1:String):ICommentStorageHandle;                         //MethodID:2231, dispID:0
20279
20280                 function disconnect():void;                                                 //MethodID:2232, dispID:0
20281
20282                 //constructor
20283                 public function ICommentStorage();                                          //MethodID:2233, dispID:0
20284         }
20285 }
20286
20287 //■script135■
20288
20289 package jp.nicovideo.nicoscript{
20290
20291         import jp.nicovideo.nicoplayer.views.VideoLayerConstants
20292
20293         //■class(instance)_index:160
20294         public final class NicoSConstants extends Object
20295         {
20296                 //static constructor
20297                 public static function NicoSConstants$cinit()
20298                 {       //MethodID:2235, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 58
20299                         ATBGM_VIDEO_WIDTH = (VideoLayerConstants.VIDEO_LAYER_SD_WIDTH / 4);
20300                         ATBGM_VIDEO_HEIGHT = (VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT / 4);
20301                         ATBGM_VIDEO_FRAME_MARGIN = 15;
20302                         ATCM_VIDEO_WIDTH = 544;
20303                         ATCM_VIDEO_HEIGHT = 56;
20304                 }
20305
20306                 //static variables/etc.
20307                 public static const ATBGM_VIDEO_WIDTH:int = 128;                //slotID:1
20308                 public static const ATBGM_VIDEO_HEIGHT:int = 96;                //slotID:2
20309                 public static const ATBGM_VIDEO_FRAME_MARGIN:int = 15;          //slotID:3
20310                 public static const ATCM_VIDEO_WIDTH:int = 544;                 //slotID:4
20311                 public static const ATCM_VIDEO_HEIGHT:int = 56;                 //slotID:5
20312
20313                 //constructor
20314                 public function NicoSConstants()
20315                 {       //MethodID:2236, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20316                         super();
20317                 }
20318         }
20319 }
20320
20321 //■script136■
20322
20323 package jp.nicovideo.nicoplayer.views.comment{
20324
20325         //■class(instance)_index:161
20326         public interface ICommentLayerView
20327         {
20328                 //static constructor
20329                 public static function ICommentLayerView$cinit()
20330                 {       //MethodID:2238, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
20331                 }
20332
20333                 //variables/etc.
20334                 function update(hug1:String, hug2:Array, hug3:Array, hug4:Boolean):void;    //MethodID:2239, dispID:0
20335
20336                 //constructor
20337                 public function ICommentLayerView();                                        //MethodID:2240, dispID:0
20338         }
20339 }
20340
20341 //■script137■
20342
20343 package jp.nicovideo.nicoplayer.views.comment{
20344
20345         import flash.display.DisplayObject
20346         import flash.events.Event
20347         import flash.events.TimerEvent
20348         import flash.utils.Timer
20349         import flash.utils.getTimer
20350         import jp.nicovideo.nicoplayer.models.video.ITimeline
20351         import jp.nicovideo.util.events.EventResult
20352
20353         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
20354
20355         //■class(instance)_index:162
20356         public class CommentLayerView extends Object implements ICommentLayerView
20357         {
20358                 //static constructor
20359                 public static function CommentLayerView$cinit()
20360                 {       //MethodID:2242, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
20361                 }
20362
20363                 //constructor
20364                 public function CommentLayerView(hug1:DisplayObject, hug2:ITimeline, hug3:int, hug4:int, hug5:Number)
20365                 {       //MethodID:2244, LocalCount= 7 , MaxScope= 2, MaxStack= 4, CodeLength= 115
20366                         internal var enterFrameEventDispatcher:DisplayObject;           //slotID:1
20367                         internal var video:ITimeline;                                   //slotID:2
20368                         internal var width:int;                                         //slotID:3
20369                         internal var height:int;                                        //slotID:4
20370                         internal var videoLength:Number;                                //slotID:5
20371
20372                         enterFrameEventDispatcher = hug1;
20373                         video = hug2;
20374                         width = hug3;
20375                         height = hug4;
20376                         videoLength = hug5;
20377                         this.__commentSlotLists = {};
20378                         this.__slotTimer = new Timer(200);
20379
20380                         super();
20381
20382                         this._enterFrameEventDispatcher = enterFrameEventDispatcher;
20383                         this.__video = video;
20384                         this.__positioner = new CommentPositioner(width, height);
20385                         this.__videoLength = videoLength;
20386
20387                         this.__slotTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{     //MethodID:2243, LocalCount= 6 , MaxScope= 0, MaxStack= 3, CodeLength= 53
20388                                 var hug3:CommentSlotList = null;
20389                                 var hug2:Number = __vpos;
20390
20391                                 for each(hug3 in __commentSlotLists){
20392                                         hug3.refresh(hug2, false);
20393                                 }
20394                         });
20395                 }
20396
20397                 //variables/etc.
20398                 private var __commentSlotLists:Object;                          //slotID:0
20399                 private var __video:ITimeline;                                  //slotID:0
20400                 private var __positioner:CommentPositioner;                     //slotID:0
20401                 private var __isPlaying:Boolean = false;                        //slotID:0
20402                 private var __lastVpos:Number = 0.0;                            //slotID:0
20403                 private var __lastVposTime:Number = 0.0;                        //slotID:0
20404                 private var __slotTimer:Timer;                                  //slotID:0
20405                 private var __videoLength:Number;                               //slotID:0
20406                 private var _enterFrameEventDispatcher:DisplayObject;           //slotID:0
20407
20408                 private function _onEnterFrame(hug1:Event):void
20409                 {       //MethodID:2245, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 56
20410                         var hug3:CommentSlotList = null;
20411                         var hug2:Number = this.__vpos;
20412
20413                         for each(hug3 in this.__commentSlotLists){
20414                                 hug3.move(hug2);
20415                         }
20416                 }
20417
20418                 private function get __vpos():Number
20419                 {       //MethodID:2246, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 119
20420                         if(!this.__video.isInitialized) return 0;
20421
20422                         var hug1:Number = this.__video.vpos;
20423
20424                         if(!this.__isPlaying || (this.__videoLength == (-1))) return hug1;
20425
20426                         var hug2:Number = (this.__lastVpos + getTimer() - this.__lastVposTime);
20427                         hug2 = Math.min(hug2, this.__videoLength);
20428
20429                         if(Math.abs(hug2 - hug1) > 1000){
20430                                 this.__lastVposTime = getTimer();
20431                                 this.__lastVpos = hug1;
20432                                 return hug1;
20433                         }
20434
20435                         return hug2;
20436                 }
20437
20438                 public function update(hug1:String, hug2:Array, hug3:Array, hug4:Boolean):void
20439                 {       //MethodID:2247, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 41
20440                         var hug5:CommentSlotList = this.__getSlotList(hug1);
20441
20442                         hug5.update(hug2, hug3, hug4);
20443                         hug5.refresh(this.__vpos, (this.__videoLength != (-1)));
20444                 }
20445
20446                 public function setReverseMode(hug1:String, hug2:Boolean):void
20447                 {       //MethodID:2248, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 13
20448                         this.__getSlotList(hug1).isReverseMode = hug2;
20449                 }
20450
20451                 private function __getSlotList(hug1:String):CommentSlotList
20452                 {       //MethodID:2249, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 53
20453                         var hug2:CommentSlotList = this.__commentSlotLists[hug1];
20454
20455                         if(!hug2){
20456                                 this.__commentSlotLists[hug1] = new CommentSlotList(this.__positioner, this.__videoLength);
20457                                 hug2 = new CommentSlotList(this.__positioner, this.__videoLength);
20458                         }
20459
20460                         return hug2;
20461                 }
20462
20463                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
20464                 {       //MethodID:2250, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 94
20465                         this.__isPlaying = true;
20466                         this.__lastVposTime = getTimer();
20467                         this.__lastVpos = this.__video.vpos;
20468
20469                         this.__slotTimer.start();
20470
20471                         if(this._enterFrameEventDispatcher.hasEventListener(Event.ENTER_FRAME)) this._enterFrameEventDispatcher.removeEventListener(Event.EXIT_FRAME, this._onEnterFrame);
20472                         this._enterFrameEventDispatcher.addEventListener(Event.ENTER_FRAME, this._onEnterFrame);
20473
20474                         return EventResult.THROUGH;
20475                 }
20476
20477                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
20478                 {       //MethodID:2251, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 105
20479                         var hug1:CommentSlotList = null;
20480                         this.__isPlaying = false;
20481                         this.__lastVpos = this.__video.vpos;
20482
20483                         this.__slotTimer.stop();
20484                         this._enterFrameEventDispatcher.removeEventListener(Event.EXIT_FRAME, this._onEnterFrame);
20485
20486                         for each(hug1 in this.__commentSlotLists){
20487                                 hug1.refresh(this.__lastVpos, false);
20488                                 hug1.move(this.__lastVpos);
20489                         }
20490
20491                         return EventResult.THROUGH;
20492                 }
20493
20494                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
20495                 {       //MethodID:2252, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 43
20496                         if(!hug1){
20497                                 this.__isPlaying = false;
20498
20499                                 this.__slotTimer.stop();
20500                                 this._enterFrameEventDispatcher.removeEventListener(Event.EXIT_FRAME, this._onEnterFrame);
20501                         }
20502
20503                         return EventResult.THROUGH;
20504                 }
20505
20506                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
20507                 {       //MethodID:2253, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 62
20508                         var hug2:CommentSlotList = null;
20509                         this.__lastVpos = hug1;
20510
20511                         for each(hug2 in this.__commentSlotLists){
20512                                 hug2.refresh(this.__lastVpos, true);
20513                         }
20514
20515                         return EventResult.THROUGH;
20516                 }
20517
20518                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoLengthFixed(hug1:Number, hug2:Boolean=false):EventResult
20519                 {       //MethodID:2254, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 61
20520                         var hug3:CommentSlotList = null;
20521                         this.__videoLength = hug1;
20522
20523                         for each(hug3 in this.__commentSlotLists){
20524                                 hug3.updateVideoLength(hug1, hug2);
20525                         }
20526
20527                         return EventResult.THROUGH;
20528                 }
20529         }
20530 }
20531
20532 //■script138■
20533
20534 package jp.nicovideo.nicoplayer.models{
20535
20536         import jp.nicovideo.util.Functions
20537         import jp.nicovideo.util.events.event_sender
20538
20539         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
20540
20541         //■class(instance)_index:164
20542         public class SystemMessage extends Object implements EventSender
20543         {
20544                 //static constructor
20545                 public static function SystemMessage$cinit()
20546                 {       //MethodID:2258, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
20547                 }
20548
20549                 //static variables/etc.
20550                 private static var __instance:SystemMessage;                    //slotID:1
20551
20552                 public static function get instance():SystemMessage
20553                 {       //dispID:3, MethodID:2259, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 39
20554                         var hug1:SystemMessage = new SystemMessage(new Guard());
20555                         __instance = hug1;
20556                         return (__instance || hug1);
20557                 }
20558
20559                 //constructor
20560                 public function SystemMessage(hug1:Guard)
20561                 {       //MethodID:2260, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 83
20562                         this.onSystemMessageInformationSended = new Functions();
20563                         this.onSystemMessageAlertSended = new Functions();
20564                         this.onSystemMessageCommentInfoSended = new Functions();
20565                         this.onSystemMessageStatusBarInfoSended = new Functions();
20566                         this.onSystemMessageJumpMessageSended = new Functions();
20567                         this.onSystemMessageClockMessageSended = new Functions();
20568                         this._eventNames = ["onSystemMessageInformationSended", "onSystemMessageAlertSended", "onSystemMessageCommentInfoSended", "onSystemMessageStatusBarInfoSended", "onSystemMessageJumpMessageSended", ""];
20569
20570                         super();
20571                 }
20572
20573                 //variables/etc.
20574                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageInformationSended:Functions;//slotID:0
20575                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageAlertSended:Functions;//slotID:0
20576                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageCommentInfoSended:Functions;//slotID:0
20577                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageStatusBarInfoSended:Functions;//slotID:0
20578                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageJumpMessageSended:Functions;//slotID:0
20579                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onSystemMessageClockMessageSended:Functions;//slotID:0
20580                 private const _eventNames:Array;                                //slotID:0
20581
20582                 public function get eventNames():Array
20583                 {       //MethodID:2261, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
20584                         return this._eventNames;
20585                 }
20586
20587                 public function inform(hug1:String, hug2:Boolean=false, hug3:Boolean=true):void
20588                 {       //MethodID:2262, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 28
20589                         onSystemMessageInformationSended.apply(hug1, hug2, hug3);
20590                 }
20591
20592                 public function informln(hug1:String, hug2:Boolean=false, hug3:Boolean=true):void
20593                 {       //MethodID:2263, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 32
20594                         onSystemMessageInformationSended.apply((hug1 + "<br />"), hug2, hug3);
20595                 }
20596
20597                 public function alert(hug1:String, hug2:String=null, hug3:String=null, hug4:Function=null, hug5:String=null, hug6:Function=null, hug7:String=null, hug8:Function=null, hug9:Boolean=false):void
20598                 {       //MethodID:2264, LocalCount= 10 , MaxScope= 1, MaxStack= 10, CodeLength= 40
20599                         onSystemMessageAlertSended.apply(hug1, hug2, hug3, hug4, hug5, hug6, hug7, hug8, hug9);
20600                 }
20601
20602                 public function informComment(hug1:String):void
20603                 {       //MethodID:2265, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 26
20604                         onSystemMessageCommentInfoSended.apply(hug1);
20605                 }
20606
20607                 public function informStatusBar(hug1:String, hug2:String=null):void
20608                 {       //MethodID:2266, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 55
20609                         onSystemMessageStatusBarInfoSended.apply(hug1);
20610
20611                         if(hug2) onSystemMessageInformationSended.apply(hug2, false);
20612                 }
20613
20614                 public function informJumpMessage(hug1:Function, hug2:String):void
20615                 {       //MethodID:2267, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 30
20616                         onSystemMessageJumpMessageSended.apply(hug1, hug2, 3000);
20617                 }
20618
20619                 public function informClockMessage(hug1:String):void
20620                 {       //MethodID:2268, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 26
20621                         onSystemMessageClockMessageSended.apply(hug1);
20622                 }
20623         }
20624 }
20625
20626
20627 //■class(instance)_index:163
20628 //private
20629 class Guard extends Object
20630 {
20631         //static constructor
20632         public static function Guard$cinit()
20633         {       //MethodID:2256, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
20634         }
20635
20636         //constructor
20637         public function Guard()
20638         {       //MethodID:2257, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20639                 super();
20640         }
20641 }
20642
20643 //■script139■
20644
20645 package jp.nicovideo.nicoplayer.tpls.shutter{
20646
20647         //■class(instance)_index:165
20648         public class AudioShutterConstants extends Object
20649         {
20650                 //static constructor
20651                 public static function AudioShutterConstants$cinit()
20652                 {       //MethodID:2270, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 124
20653                         _END_OF_ENUM = 0;
20654                         SHUTTER_SEEK = (_END_OF_ENUM++);
20655                         SHUTTER_PLUGIN = (_END_OF_ENUM++);
20656                         SHUTTER_HIROBA = (_END_OF_ENUM++);
20657                         SHUTTER_NICOWARI = (_END_OF_ENUM++);
20658                         END_OF_ENUM = _END_OF_ENUM;
20659                 }
20660
20661                 //static variables/etc.
20662                 private static var _END_OF_ENUM:int = 0;                        //slotID:1
20663                 public static const SHUTTER_SEEK:int;                           //slotID:2
20664                 public static const SHUTTER_PLUGIN:int;                         //slotID:3
20665                 public static const SHUTTER_HIROBA:int;                         //slotID:4
20666                 public static const SHUTTER_NICOWARI:int;                       //slotID:5
20667                 public static const END_OF_ENUM:int;                            //slotID:6
20668
20669                 //constructor
20670                 public function AudioShutterConstants()
20671                 {       //MethodID:2271, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20672                         super();
20673                 }
20674         }
20675 }
20676
20677 //■script140■
20678
20679 package jp.nicovideo.nicoplayer.external{
20680
20681         import jp.nicovideo.nicoplayer.models.comment.ICommentList
20682         import jp.nicovideo.nicoplayer.models.comment.IOwnerCommentList
20683
20684         //■class(instance)_index:166
20685         public interface IExternalClient
20686         {
20687                 //static constructor
20688                 public static function IExternalClient$cinit()
20689                 {       //MethodID:2273, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
20690                 }
20691
20692                 //variables/etc.
20693                 function onClickedNicomesseButton():void;                                   //MethodID:2274, dispID:0
20694
20695                 function toggleMaximizePlayerSize():void;                                   //MethodID:2275, dispID:0
20696
20697                 function udpateRemoconState():void;                                         //MethodID:2276, dispID:0
20698
20699                 function get isInitialized():Boolean;                                       //MethodID:2277, dispID:0
20700
20701                 function set isEditedOwnerThread(hug1:Boolean):void;                        //MethodID:2278, dispID:0
20702
20703                 function set localCommentList(hug1:ICommentList):void;                      //MethodID:2279, dispID:0
20704
20705                 function set ownerCommentList(hug1:IOwnerCommentList):void;                 //MethodID:2280, dispID:0
20706
20707                 function set setInputMessage(hug1:Function):void;                           //MethodID:2281, dispID:0
20708
20709                 //constructor
20710                 public function IExternalClient();                                          //MethodID:2282, dispID:0
20711         }
20712 }
20713
20714 //■script141■
20715
20716 package jp.nicovideo.nicoplayer.external{
20717
20718         import jp.nicovideo.nicoplayer.models.IPlayerConfig
20719         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
20720         import jp.nicovideo.nicoplayer.models.ScreenMode
20721         import jp.nicovideo.nicoplayer.models.comment.Command
20722         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
20723         import jp.nicovideo.nicoplayer.models.comment.CommentConstants
20724         import jp.nicovideo.nicoplayer.models.comment.IComment
20725         import jp.nicovideo.nicoplayer.models.comment.ICommentList
20726         import jp.nicovideo.nicoplayer.models.comment.IOwnerCommentList
20727         import jp.nicovideo.nicoplayer.models.playlist.VideoInfo
20728         import jp.nicovideo.nicoplayer.models.video.IVideo
20729         import jp.nicovideo.nicoplayer.models.video.IVideoController
20730         import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
20731         import jp.nicovideo.util.events.EventResult
20732         import jp.nicovideo.util.external.JSConnector
20733
20734         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
20735
20736         //■class(instance)_index:168
20737         public class ExternalClient extends Object implements IExternalClient
20738         {
20739                 //static constructor
20740                 public static function ExternalClient$cinit()
20741                 {       //MethodID:2293, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
20742                 }
20743
20744                 //constructor
20745                 public function ExternalClient()
20746                 {       //MethodID:2294, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
20747                         super();
20748                 }
20749
20750                 //variables/etc.
20751                 private const _EXT_SCREEN_MODE_BROWSER_FULL:String = "fit";     //slotID:0
20752                 private const _EXT_SCREEN_MODE_NORMAL:String = "normal";        //slotID:0
20753                 private const _EXT_SCREEN_MODE_DISPLAY_FULL:String = "full";    //slotID:0
20754                 private var _watchID:String;                                    //slotID:0
20755                 private var _getThreadsFuncName:String;                         //slotID:0
20756                 private var _threadIDList:Array;                                //slotID:0
20757                 private var _commentLists:Object;                               //slotID:0
20758                 private var _setInputMessage:Function;                          //slotID:0
20759                 private var _isInitialized:Boolean = false;                     //slotID:0
20760                 private var _isPremium:Boolean = false;                         //slotID:0
20761                 private var _isEditedOwnerThread:Boolean = false;               //slotID:0
20762                 private var _playerConfig:IPlayerConfig;                        //slotID:0
20763                 private var _video:IVideo;                                      //slotID:0
20764                 private var _videoController:IVideoController;                  //slotID:0
20765                 private var _localCommentList:ICommentList;                     //slotID:0
20766                 private var _ownerCommentList:IOwnerCommentList;                //slotID:0
20767                 private var _commentListDataPooler:_CommentListDataPooler;      //slotID:0
20768
20769                 public function initialize(hug1:String, hug2:IVideo, hug3:IVideoController, hug4:IPlayerConfig, hug5:Boolean, hug6:Boolean, hug7:Boolean=false):void
20770                 {       //MethodID:2319, LocalCount= 9 , MaxScope= 2, MaxStack= 3, CodeLength= 451
20771                         internal var watchID:String;                                    //slotID:1
20772                         internal var video:IVideo;                                      //slotID:2
20773                         internal var videoController:IVideoController;                  //slotID:3
20774                         internal var playerConfig:IPlayerConfig;                        //slotID:4
20775                         internal var isPremium:Boolean;                                 //slotID:5
20776                         internal var isOwnerThreadEditMode:Boolean;                     //slotID:6
20777                         internal var hasNicosThread:Boolean = false;                    //slotID:7
20778
20779                         watchID = hug1;
20780                         video = hug2;
20781                         videoController = hug3;
20782                         playerConfig = hug4;
20783                         isPremium = hug5;
20784                         isOwnerThreadEditMode = hug6;
20785                         hasNicosThread = hug7;
20786                         this._watchID = watchID;
20787                         this._video = video;
20788                         this._videoController = videoController;
20789                         this._playerConfig = playerConfig;
20790                         this._isPremium = isPremium;
20791                         this._threadIDList = [];
20792                         this._commentLists = {};
20793                         this._commentListDataPooler = new _CommentListDataPooler(hasNicosThread);
20794                         this._commentListDataPooler.onCommentListDataPooled = this._onCommentListDataPooled;
20795
20796                         if(this._isInitialized) return;
20797
20798                         this._isInitialized = true;
20799
20800                         JSConnector.addCallback("ext_play", function(hug1:Boolean):void{        //MethodID:2295, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 24
20801                                 if(hug1){
20802                                         _videoController.play();
20803                                 }else{
20804                                         _videoController.stop();
20805                                 }
20806                         });
20807                         JSConnector.addCallback("ext_setPlayheadTime", function(hug1:Number):void{      //MethodID:2296, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 13
20808                                 _videoController.seek(hug1 * 1000);
20809                         });
20810                         JSConnector.addCallback("ext_setMute", function(hug1:Boolean):void{     //MethodID:2297, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
20811                                 if(playerConfig.isMute != hug1) playerConfig.isMute = hug1;
20812                         });
20813                         JSConnector.addCallback("ext_setVolume", function(hug1:Number):void{    //MethodID:2298, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 25
20814                                 var hug2:Number = (hug1 / 100);
20815
20816                                 if(playerConfig.volume != hug2) playerConfig.volume = hug2;
20817                         });
20818                         JSConnector.addCallback("ext_setCommentVisible", function(hug1:Boolean):void{   //MethodID:2299, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
20819                                 if(hug1 != playerConfig.commentVisible) playerConfig.commentVisible = hug1;
20820                         });
20821                         JSConnector.addCallback("ext_setRepeat", function(hug1:Boolean):void{   //MethodID:2300, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
20822                                 if(hug1 != playerConfig.isLoop) playerConfig.isLoop = hug1;
20823                         });
20824                         JSConnector.addCallback("ext_setVideoSize", function(hug1:String):void{ //MethodID:2301, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 99
20825                                 if((hug1 == _EXT_SCREEN_MODE_BROWSER_FULL) && (playerConfig.screenMode != ScreenMode.BROWSER_FULL)){
20826                                         playerConfig.fullScreenMode = ScreenMode.BROWSER_FULL;
20827                                         playerConfig.screenMode = ScreenMode.BROWSER_FULL;
20828                                 }else if((hug1 == _EXT_SCREEN_MODE_NORMAL) && (playerConfig.screenMode != ScreenMode.NORMAL)){
20829                                         playerConfig.screenMode = ScreenMode.NORMAL;
20830                                 }
20831                         });
20832                         JSConnector.addCallback("ext_isCommentVisible", function():Boolean{     //MethodID:2302, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 7
20833                                 return playerConfig.commentVisible;
20834                         });
20835                         JSConnector.addCallback("ext_isMute", function():Boolean{       //MethodID:2303, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 7
20836                                 return playerConfig.isMute;
20837                         });
20838                         JSConnector.addCallback("ext_isRepeat", function():Boolean{     //MethodID:2304, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 7
20839                                 return playerConfig.isLoop;
20840                         });
20841                         JSConnector.addCallback("ext_isWide", function():Boolean{       //MethodID:2305, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 14
20842                                 return (playerConfig.aspectRatio == ScreenAspectRatio.WIDE);
20843                         });
20844                         JSConnector.addCallback("ext_getVolume", function():Number{     //MethodID:2306, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
20845                                 return (playerConfig.volume * 100);
20846                         });
20847                         JSConnector.addCallback("ext_getVideoSize", function():String{  //MethodID:2307, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 44
20848                                 if(playerConfig.screenMode == ScreenMode.BROWSER_FULL) return _EXT_SCREEN_MODE_BROWSER_FULL;
20849
20850                                 if(playerConfig.screenMode == ScreenMode.DISPLAY_FULL) return _EXT_SCREEN_MODE_DISPLAY_FULL;
20851
20852                                 return _EXT_SCREEN_MODE_NORMAL;
20853                         });
20854                         JSConnector.addCallback("ext_getStatus", function():String{     //MethodID:2308, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 7
20855                                 return _video.videoPlayerStatus;
20856                         });
20857                         JSConnector.addCallback("ext_getPlayheadTime", function():Number{       //MethodID:2309, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
20858                                 return Math.floor(_video.vpos / 1000);
20859                         });
20860                         JSConnector.addCallback("ext_getTotalTime", function():Number{  //MethodID:2310, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
20861                                 return Math.floor(_video.length / 1000);
20862                         });
20863                         JSConnector.addCallback("ext_isEditedOwnerThread", function():Boolean{  //MethodID:2311, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 4
20864                                 return _isEditedOwnerThread;
20865                         });
20866                         JSConnector.addCallback("ext_sendLocalMessage", function(hug1:String, hug2:String, hug3:Number):void{   //MethodID:2312, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 73
20867                                 if(!_localCommentList) return;
20868
20869                                 var hug4:CommentBuilder = new CommentBuilder();
20870                                 hug4.message = hug1;
20871                                 hug4.command = new Command(hug2, isPremium);
20872                                 hug4.vpos = (hug3 * 1000);
20873                                 hug4.commentList = _localCommentList;
20874
20875                                 _localCommentList.post(hug4.make());
20876                         });
20877                         JSConnector.addCallback("ext_getLoadedRatio", function():Number{        //MethodID:2313, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 40
20878                                 if(!_video || (_video.length == 0)) return 0;
20879
20880                                 return (_video.loadedLength / _video.length);
20881                         });
20882                         JSConnector.addCallback("ext_sendOwnerMessage", function(hug1:String, hug2:String, hug3:Number):void{   //MethodID:2314, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 95
20883                                 if(!_ownerCommentList || !isOwnerThreadEditMode) return;
20884
20885                                 var hug4:CommentBuilder = new CommentBuilder();
20886                                 hug4.message = hug1;
20887                                 hug4.command = new Command(hug2, isPremium);
20888                                 hug4.vpos = (Math.max(0, hug3) * 1000);
20889                                 hug4.commentList = _ownerCommentList;
20890
20891                                 _ownerCommentList.edit([hug4.make()]);
20892                         });
20893                         JSConnector.addCallback("ext_setInputMessage", function(hug1:String, hug2:String):void{ //MethodID:2315, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 18
20894                                 if(_setInputMessage != null) _setInputMessage(hug1, hug2);
20895                         });
20896                         JSConnector.addCallback("ext_getThreads", function(hug1:String):Boolean{        //MethodID:2316, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 46
20897                                 if(hug1){
20898                                         _getThreadsFuncName = hug1;
20899
20900                                         if(_threadIDList.length > 0) _callGetThreadsCallback();
20901
20902                                         return true;
20903                                 }else{
20904                                         _getThreadsFuncName = null;
20905                                 }
20906
20907                                 return false;
20908                         });
20909                         JSConnector.addCallback("ext_getComments", function(hug1:int, hug2:int=1000):Array{     //MethodID:2317, LocalCount= 9 , MaxScope= 0, MaxStack= 3, CodeLength= 211
20910                                 var hug4:String = null;
20911                                 var hug5:int = 0;
20912                                 var hug6:int = 0;
20913                                 var hug7:IComment = null;
20914                                 var hug8:Object = null;
20915                                 var hug3:Array = [];
20916
20917                                 if(_threadIDList[hug1]){
20918                                         hug4 = _threadIDList[hug1];
20919                                         hug5 = (_commentLists[hug4].length - 1);
20920                                         hug2 = ((hug5 < hug2) ? (-1) : (hug5 - hug2));
20921                                         hug6 = hug5;
20922
20923                                         while(hug6 > hug2){
20924                                                 hug7 = _commentLists[hug4][hug6];
20925                                                 hug8 = new Object();
20926                                                 hug8["message"] = hug7.message;
20927                                                 hug8["vpos"] = hug7.vpos;
20928                                                 hug8["resNo"] = hug7.resNo;
20929                                                 hug8["date"] = hug7.date.toDateString();
20930                                                 hug8["command"] = hug7.command.command;
20931
20932                                                 hug3.push(hug8);
20933
20934                                                 hug6--;
20935                                         }
20936                                 }
20937
20938                                 return hug3;
20939                         });
20940                         JSConnector.addCallback("externalRemoconCall", function(hug1:String, hug2:Object=null):void{    //MethodID:2318, LocalCount= 5 , MaxScope= 3, MaxStack= 3, CodeLength= 62
20941                                 internal var method_name:String;                                //slotID:1
20942                                 internal var params:Object = null;                              //slotID:2
20943
20944                                 method_name = hug1;
20945                                 params = hug2;
20946
20947                                 try{
20948                                         if(RemoconReceiver.hasInitialized) RemoconReceiver.instance.callMethod(method_name, params);
20949                                 }
20950                                 catch(error:ArgumentError){
20951                                 }
20952                         });
20953                 }
20954
20955                 public function onPlayerReady():void
20956                 {       //MethodID:2320, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 19
20957                         JSConnector.call("onNicoPlayerReady", JSConnector.objectID);
20958                 }
20959
20960                 public function onClickedNicomesseButton():void
20961                 {       //MethodID:2321, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 17
20962                         JSConnector.call("Nicovideo.launchP4", this._watchID);
20963                 }
20964
20965                 public function toggleMaximizePlayerSize():void
20966                 {       //MethodID:2322, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
20967                         JSConnector.call("toggleMaximizePlayer");
20968                 }
20969
20970                 public function onChangeVideoStatus(hug1:String):void
20971                 {       //MethodID:2323, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 43
20972                         JSConnector.call("setPlayerStatus", this._video.videoPlayerStatus);
20973                         JSConnector.call("onNicoPlayerStatus", JSConnector.objectID, this._video.videoPlayerStatus);
20974                 }
20975
20976                 public function onChangePlayingVideo(hug1:String, hug2:String):void
20977                 {       //MethodID:2324, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 15
20978                         JSConnector.call("changePlayingVideo", hug1, hug2);
20979                 }
20980
20981                 public function udpateRemoconState():void
20982                 {       //MethodID:2325, LocalCount= 1 , MaxScope= 1, MaxStack= 18, CodeLength= 168
20983                         JSConnector.call("NicoRemocon.setState", {page:"watch", vid:this._watchID, volume:(this._playerConfig.volume * 100), is_fullscreen:((this._playerConfig.screenMode == ScreenMode.NORMAL) ? 0 : 1), is_mute:(this._playerConfig.isMute ? 1 : 0), is_comment_visible:(this._playerConfig.commentVisible ? 1 : 0), is_repeat:(this._playerConfig.isLoop ? 1 : 0), is_playing:(this._videoController.isPlaying ? 1 : 0)});
20984                 }
20985
20986                 private function _setMymemoryParameters(hug1:Date=null, hug2:Number=-1.0, hug3:Number=-1.0, hug4:String, hug5:int=-1, hug6:Number=-1.0, hug7:Number=-1.0):void
20987                 {       //MethodID:2326, LocalCount= 9 , MaxScope= 1, MaxStack= 6, CodeLength= 163
20988                         if((hug3 < 0) || (hug2 < 0)) throw new ArgumentError("ExternalClient._setMymemoryParameters: mainNum and mainFrom must be positive value.");
20989
20990                         var hug8:Object = {main:{from:hug2, num:hug3}};
20991
20992                         if(hug4 != ""){
20993                                 hug8.main["res_before"] = hug5;
20994                                 hug8.main["leaves_from"] = hug4;
20995                         }
20996
20997                         if((hug6 > 0) && (hug7 > 0)) hug8.nicos = {from:hug6, num:hug7};
20998
20999                         JSConnector.call("setMymemoryParameters", hug8, ((hug1 != null) ? Math.floor(hug1.getTime() / 1000) : null));
21000                 }
21001
21002                 private function _callGetThreadsCallback():void
21003                 {       //MethodID:2327, LocalCount= 5 , MaxScope= 1, MaxStack= 6, CodeLength= 112
21004                         var hug4:Object = null;
21005                         var hug1:Array = [];
21006                         var hug2:int = this._threadIDList.length;
21007                         var hug3:int = 0;
21008
21009                         while(hug3 < hug2){
21010                                 hug4 = {};
21011                                 hug4["id"] = hug3;
21012                                 hug4["type"] = this._threadIDList[hug3].replace(new RegExp("^commentlist\:", "g"), "");
21013
21014                                 hug1.push(hug4);
21015
21016                                 hug3++;
21017                         }
21018
21019                         if(this._getThreadsFuncName != null) JSConnector.call(this._getThreadsFuncName, hug1);
21020                 }
21021
21022                 private function _onCommentListDataPooled(hug1:Boolean=false, hug2:Date=null, hug3:Object=null):void
21023                 {       //MethodID:2328, LocalCount= 16 , MaxScope= 1, MaxStack= 8, CodeLength= 482
21024                         var hug13:Number = NaN;
21025                         var hug14:Number = NaN;
21026                         var hug15:Number = NaN;
21027
21028                         if(!hug3) return;
21029
21030                         var hug4:Number = this._video.length;
21031
21032                         if(isNaN(hug4)) throw new Error("ExternalInterface._onCommentListDataPooled: invalid video's length.");
21033
21034                         var hug5:Array = hug3[CommentConstants.CL_MAIN];
21035                         var hug6:Array = hug3[CommentConstants.CL_NICOS];
21036                         var hug7:String = "";
21037                         var hug8:uint = 0;
21038
21039                         if(this._playerConfig.isEnabledLeafMode){
21040                                 hug13 = Math.ceil((hug4 + (10 * 1000)) / (60 * 1000));
21041                                 hug14 = ((hug13 > 720) ? Math.ceil(0x11940 / hug13) : 100);
21042                                 hug15 = 100;
21043
21044                                 if(hug4 >= ((10 * 60) * 1000)){
21045                                         hug15 = 1000;
21046                                 }else if(hug4 >= ((5 * 60) * 1000)){
21047                                         hug15 = 500;
21048                                 }else if(hug4 >= (60 * 1000)){
21049                                         hug15 = 250;
21050                                 }
21051
21052                                 hug7 = ((("0-" + hug13.toString() + ":") + hug14.toString() + ",") + hug15.toString());
21053                                 hug8 = ((hug5.length > 0) ? (IComment(hug5[hug5.length - 1]).resNo + 1) : 0);
21054                         }
21055
21056                         var hug9:Number = ((hug5.length > 0) ? (hug5[0] as IComment).resNo : 0);
21057                         var hug10:Number = hug5.length;
21058                         var hug11:Number = -1;
21059                         var hug12:Number = -1;
21060
21061                         if(hug6 != null){
21062                                 hug12 = hug6.length;
21063
21064                                 if(hug1){
21065                                         hug11 = ((hug6.length > 0) ? (hug6[0] as IComment).resNo : 0);
21066                                 }else{
21067                                         hug11 = ((hug6.length > 0) ? ((hug6[0] as IComment).resNo + 1) : 0);
21068                                 }
21069                         }
21070
21071                         this._setMymemoryParameters(hug2, hug9, hug10, hug7, hug8, hug11, hug12);
21072                 }
21073
21074                 public function get isInitialized():Boolean
21075                 {       //MethodID:2329, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21076                         return this._isInitialized;
21077                 }
21078
21079                 public function set isEditedOwnerThread(hug1:Boolean):void
21080                 {       //MethodID:2330, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21081                         this._isEditedOwnerThread = hug1;
21082                 }
21083
21084                 public function set localCommentList(hug1:ICommentList):void
21085                 {       //MethodID:2331, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21086                         this._localCommentList = hug1;
21087                 }
21088
21089                 public function set ownerCommentList(hug1:IOwnerCommentList):void
21090                 {       //MethodID:2332, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21091                         this._ownerCommentList = hug1;
21092                 }
21093
21094                 public function set setInputMessage(hug1:Function):void
21095                 {       //MethodID:2333, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21096                         this._setInputMessage = hug1;
21097                 }
21098
21099                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onTimeMachineDateUpdated(hug1:Boolean, hug2:Date=null):EventResult
21100                 {       //MethodID:2334, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 31
21101                         this._commentListDataPooler.updatePastDate(hug1 ? hug2 : null);
21102
21103                         return EventResult.THROUGH;
21104                 }
21105
21106                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigScreenModeUpdated(hug1:uint):EventResult
21107                 {       //MethodID:2335, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 42
21108                         if(!this._isPremium || (this._playerConfig.fullScreenMode == ScreenMode.BROWSER_FULL)) this.toggleMaximizePlayerSize();
21109
21110                         return EventResult.THROUGH;
21111                 }
21112
21113                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
21114                 {       //MethodID:2338, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 313
21115                         internal var additionals:Array;                                 //slotID:1
21116                         internal var removes:Array;                                     //slotID:2
21117                         internal var allClear:Boolean;                                  //slotID:3
21118                         internal var listName:String;                                   //slotID:4
21119                         internal var list:Array;                                        //slotID:5
21120
21121                         additionals = hug1;
21122                         removes = hug2;
21123                         allClear = hug3;
21124                         listName = hug4;
21125                         list = additionals.concat(removes);
21126
21127                         list.sortOn("resNo", Array.NUMERIC);
21128                         this._commentListDataPooler.setCommentListData(listName, list);
21129
21130                         if(!this._commentListDataPooler.isPast) this._commentListDataPooler.updatePastDate(null);
21131
21132                         if(this._threadIDList.indexOf(listName) == (-1)) this._threadIDList.push(listName);
21133
21134                         if(allClear) this._commentLists[listName] = [];
21135
21136                         if((additionals.length > 0) || (removes.length > 0)){
21137                                 if(additionals.length == removes.length){
21138                                         removes = removes.filter(function(hug1:*, hug2:int, hug3:Array):Boolean{        //MethodID:2336, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 17
21139                                                 return (hug1.vpos != additionals[hug2].vpos);
21140                                         });
21141                                 }
21142
21143                                 additionals = additionals.concat(removes);
21144                                 additionals = additionals.filter(function(hug1:*, hug2:int, hug3:Array):Boolean{        //MethodID:2337, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 134
21145                                         var hug4:* = undefined;
21146
21147                                         if(!allClear){
21148                                                 hug4 = 0;
21149
21150                                                 while(hug4 < _commentLists[listName].length){
21151                                                         if(_commentLists[listName][hug4].resNo == hug1.resNo){
21152                                                                 _commentLists[listName].splice(hug4, 1);
21153
21154                                                                 hug4--;
21155                                                         }
21156
21157                                                         hug4++;
21158                                                 }
21159                                         }
21160
21161                                         if(hug1.deleted || (hug1.ng != 0) || hug1.isClickable) return false;
21162
21163                                         return true;
21164                                 });
21165
21166                                 this._commentLists[listName] = this._commentLists[listName].concat(additionals);
21167
21168                                 this._commentLists[listName].sortOn("resNo", Array.NUMERIC);
21169                                 this._callGetThreadsCallback();
21170                         }
21171
21172                         return EventResult.THROUGH;
21173                 }
21174
21175                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistTargetUpdated(hug1:VideoInfo):EventResult
21176                 {       //MethodID:2339, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 15
21177                         this.onChangePlayingVideo(null, null);
21178
21179                         return EventResult.THROUGH;
21180                 }
21181
21182                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoChanged(hug1:VideoInfo):EventResult
21183                 {       //MethodID:2340, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 21
21184                         this.onChangePlayingVideo(hug1.videoID, hug1.threadID);
21185
21186                         return EventResult.THROUGH;
21187                 }
21188         }
21189 }
21190
21191 import jp.nicovideo.nicoplayer.models.comment.CommentConstants
21192 import jp.nicovideo.util.ObjectUtils
21193
21194 //■class(instance)_index:167
21195 //private
21196 class _CommentListDataPooler extends Object
21197 {
21198         //static constructor
21199         public static function _CommentListDataPooler$cinit()
21200         {       //MethodID:2284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21201         }
21202
21203         //constructor
21204         public function _CommentListDataPooler(hug1:Boolean)
21205         {       //MethodID:2286, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 58
21206                 this._listMap = {};
21207                 this._onCommentListDataPooled = function(hug1:Boolean, hug2:Date, hug3:Object):void{    //MethodID:2285, LocalCount= 4 , MaxScope= 0, MaxStack= 0, CodeLength= 1
21208                 };
21209                 this._required = [];
21210
21211                 super();
21212                 this._required.push(CommentConstants.CL_MAIN);
21213
21214                 if(hug1) this._required.push(CommentConstants.CL_NICOS);
21215         }
21216
21217         //variables/etc.
21218         private var _isPast:Boolean = false;                            //slotID:0
21219         private var _pastDate:Date = null;                              //slotID:0
21220         private var _listMap:Object;                                    //slotID:0
21221         private var _onCommentListDataPooled:Function;                  //slotID:0
21222         private var _required:Array;                                    //slotID:0
21223
21224         public function set onCommentListDataPooled(hug1:Function):void
21225         {       //MethodID:2287, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21226                 this._onCommentListDataPooled = hug1;
21227         }
21228
21229         public function updatePastDate(hug1:Date=null):void
21230         {       //MethodID:2288, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 21
21231                 this._isPast = Boolean(hug1 != null);
21232                 this._pastDate = hug1;
21233         }
21234
21235         public function get isPast():Boolean
21236         {       //MethodID:2289, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21237                 return this._isPast;
21238         }
21239
21240         public function get pastDate():Date
21241         {       //MethodID:2290, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21242                 return this._pastDate;
21243         }
21244
21245         public function get listMap():Object
21246         {       //MethodID:2291, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21247                 return this._listMap;
21248         }
21249
21250         public function setCommentListData(hug1:String, hug2:Array):void
21251         {       //MethodID:2292, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 76
21252                 if(this._required.indexOf(hug1) < 0) return;
21253
21254                 this._listMap[hug1] = hug2;
21255
21256                 if(ObjectUtils.values(this._listMap).length == this._required.length) this._onCommentListDataPooled.apply(null, [this._isPast, this._pastDate, this._listMap]);
21257         }
21258 }
21259
21260 //■script142■
21261
21262 package jp.nicovideo.remocon{
21263
21264         import flash.display.DisplayObjectContainer
21265         import flash.geom.Rectangle
21266
21267         //■class(instance)_index:169
21268         public interface IRemoconAlert
21269         {
21270                 //static constructor
21271                 public static function IRemoconAlert$cinit()
21272                 {       //MethodID:2342, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
21273                 }
21274
21275                 //variables/etc.
21276                 function init(hug1:DisplayObjectContainer, hug2:Rectangle=null):void;       //MethodID:2343, dispID:0
21277
21278                 function show(hug1:String, hug2:*=null):void;                               //MethodID:2344, dispID:0
21279
21280                 function hide():void;                                                       //MethodID:2345, dispID:0
21281
21282                 //constructor
21283                 public function IRemoconAlert();                                            //MethodID:2346, dispID:0
21284         }
21285 }
21286
21287 //■script143■
21288
21289 package jp.nicovideo.nicoplayer.remocon{
21290
21291         //■class(instance)_index:170
21292         public interface IRemoconEventNotifier
21293         {
21294                 //static constructor
21295                 public static function IRemoconEventNotifier$cinit()
21296                 {       //MethodID:2348, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
21297                 }
21298
21299                 //variables/etc.
21300                 function receiveCommentPostResult(hug1:Boolean, hug2:String=null):void;     //MethodID:2349, dispID:0
21301
21302                 function receiveVideoSeekResult(hug1:Number):void;                          //MethodID:2350, dispID:0
21303
21304                 //constructor
21305                 public function IRemoconEventNotifier();                                    //MethodID:2351, dispID:0
21306         }
21307 }
21308
21309 //■script144■
21310
21311 package jp.nicovideo.nicoplayer.remocon{
21312
21313         import flash.display.DisplayObjectContainer
21314         import flash.geom.Rectangle
21315         import jp.nicovideo.nicoplayer.models.SystemMessage
21316         import jp.nicovideo.remocon.AlertState
21317         import jp.nicovideo.remocon.IRemoconAlert
21318         import jp.nicovideo.util.HTTPUtils
21319         import jp.nicovideo.util.StringUtils
21320         import jp.nicovideo.util.loka.__MSG__
21321
21322         //■class(instance)_index:171
21323         public class RemoconNotifier extends Object implements IRemoconEventNotifier
21324         {
21325                 //static constructor
21326                 public static function RemoconNotifier$cinit()
21327                 {       //MethodID:2353, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21328                 }
21329
21330                 //constructor
21331                 public function RemoconNotifier(hug1:String)
21332                 {       //MethodID:2354, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
21333                         this._remoconAlert = new _DummyRemoconAlert();
21334
21335                         super();
21336
21337                         this._viewSWFURL = hug1;
21338                 }
21339
21340                 //variables/etc.
21341                 private var _remoconAlert:IRemoconAlert;                        //slotID:0
21342                 private var _viewSWFURL:String;                                 //slotID:0
21343                 private var _layer:DisplayObjectContainer;                      //slotID:0
21344                 private var _hasCalledSystemState:Boolean = false;              //slotID:0
21345                 private var _hasLoadCompleted:Boolean = false;                  //slotID:0
21346                 private var _isCommentPosting:Boolean = false;                  //slotID:0
21347                 private var _lastVpos:Number = Number.NaN;                      //slotID:0
21348
21349                 public function setContainer(hug1:DisplayObjectContainer):void
21350                 {       //MethodID:2355, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21351                         this._layer = hug1;
21352                 }
21353
21354                 public function showAlert(hug1:String, hug2:*=null):void
21355                 {       //MethodID:2357, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 201
21356                         internal var signaleState:String;                               //slotID:1
21357                         internal var params:* = null;                                   //slotID:2
21358
21359                         signaleState = hug1;
21360                         params = hug2;
21361
21362                         if(this._hasCalledSystemState){
21363                                 this._remoconAlert.show(signaleState, params);
21364
21365                                 return;
21366                         }
21367
21368                         switch(signaleState){
21369                         case AlertState.REMOCON_CONNECT:
21370                         case AlertState.REMOCON_ERROR:
21371                         case AlertState.REMOCON_HALT:
21372                         case AlertState.REMOCON_MAINTENANCE:
21373                                 this._hasCalledSystemState = true;
21374
21375                                 HTTPUtils.loadSWF(function(hug1:*):void{        //MethodID:2356, LocalCount= 2 , MaxScope= 0, MaxStack= 8, CodeLength= 112
21376                                         if(hug1 == null){
21377                                                 _hasCalledSystemState = false;
21378
21379                                                 SystemMessage.instance.informln(__MSG__("リモコンの表示セットアップに失敗"));
21380
21381                                                 return;
21382                                         }
21383
21384                                         _remoconAlert = IRemoconAlert(hug1);
21385
21386                                         _remoconAlert.init(_layer, new Rectangle(0, 0, (_layer.width / _layer.scaleX), (_layer.height / _layer.scaleY)));
21387                                         _remoconAlert.show(signaleState);
21388
21389                                         _hasLoadCompleted = true;
21390                                 }, this._viewSWFURL, {});
21391
21392                         default:
21393                                 break;
21394                         }
21395
21396                         this._remoconAlert.show(signaleState, params);
21397                 }
21398
21399                 public function prepareCommentPostAlert():void
21400                 {       //MethodID:2358, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21401                         this._isCommentPosting = true;
21402                 }
21403
21404                 public function prepareVideoSeekSignal(hug1:Number):void
21405                 {       //MethodID:2359, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
21406                         this._lastVpos = hug1;
21407                 }
21408
21409                 public function receiveCommentPostResult(hug1:Boolean, hug2:String=null):void
21410                 {       //MethodID:2360, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 70
21411                         if(!this._isCommentPosting) return;
21412
21413                         this._isCommentPosting = false;
21414                         var hug3:String = AlertState.COMMENT_POST_COMPLETE;
21415
21416                         if(!hug1){
21417                                 if(hug2 == RemoconPostCommentErrorStatus.SAME_MESSAGE){
21418                                         hug3 = AlertState.COMMENT_POST_REJECT;
21419                                 }else{
21420                                         hug3 = AlertState.COMMENT_POST_ERROR;
21421                                 }
21422                         }
21423
21424                         this._remoconAlert.show(hug3);
21425                 }
21426
21427                 public function receiveVideoSeekResult(hug1:Number):void
21428                 {       //MethodID:2361, LocalCount= 4 , MaxScope= 1, MaxStack= 7, CodeLength= 116
21429                         if(isNaN(this._lastVpos)) return;
21430
21431                         var hug2:Number = Math.floor((hug1 / 60) / 1000);
21432                         var hug3:String = StringUtils.sprintf("%d:%02d", hug2, Math.floor((hug1 - ((hug2 * 60) * 1000)) / 1000));
21433
21434                         this.showAlert(((hug1 > this._lastVpos) ? AlertState.FAST_FOWARD_EX : AlertState.REWIND_EX), {value:hug3});
21435
21436                         this._lastVpos = NaN;
21437                 }
21438         }
21439 }
21440
21441 import flash.display.DisplayObjectContainer
21442 import flash.geom.Rectangle
21443
21444 //■class(instance)_index:172
21445 //private
21446 class _DummyRemoconAlert extends Object implements IRemoconAlert
21447 {
21448         //static constructor
21449         public static function _DummyRemoconAlert$cinit()
21450         {       //MethodID:2362, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21451         }
21452
21453         //variables/etc.
21454         public function init(hug1:DisplayObjectContainer, hug2:Rectangle=null):void
21455         {       //MethodID:2363, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21456         }
21457
21458         public function show(hug1:String, hug2:*=null):void
21459         {       //MethodID:2364, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21460         }
21461
21462         public function hide():void
21463         {       //MethodID:2365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
21464         }
21465
21466         //constructor
21467         public function _DummyRemoconAlert()
21468         {       //MethodID:2366, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
21469                 super();
21470         }
21471 }
21472
21473 //■script145■
21474
21475 package jp.nicovideo.nicoplayer.models.filter{
21476
21477         import jp.nicovideo.nicoplayer.models.comment.IComment
21478         import jp.nicovideo.util.Functions
21479
21480         //■class(instance)_index:173
21481         public interface INGComment
21482         {
21483                 //static constructor
21484                 public static function INGComment$cinit()
21485                 {       //MethodID:2368, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
21486                 }
21487
21488                 //variables/etc.
21489                 function addNG(hug1:NGInfo, hug2:Function):void;                            //MethodID:2369, dispID:0
21490
21491                 function deleteNG(hug1:Array):void;                                         //MethodID:2370, dispID:0
21492
21493                 function get registerLimit():uint;                                          //MethodID:2371, dispID:0
21494
21495                 function rejectCommand(hug1:IComment):IComment;                             //MethodID:2372, dispID:0
21496
21497                 function get onInitialized():Functions;                                     //MethodID:2373, dispID:0
21498
21499                 function serve():void;                                                      //MethodID:2374, dispID:0
21500
21501                 function get onUpdated():Functions;                                         //MethodID:2375, dispID:0
21502
21503                 function get lastResponse():String;                                         //MethodID:2376, dispID:0
21504
21505                 function get list():Array;                                                  //MethodID:2377, dispID:0
21506
21507                 //constructor
21508                 public function INGComment();                                               //MethodID:2378, dispID:0
21509         }
21510 }
21511
21512 //■script146■
21513
21514 package jp.nicovideo.nicoplayer.models.filter{
21515
21516         import flash.errors.IllegalOperationError
21517         import flash.events.Event
21518         import flash.events.IOErrorEvent
21519         import flash.net.URLLoader
21520         import flash.net.URLRequest
21521         import flash.net.URLRequestMethod
21522         import flash.net.URLVariables
21523         import jp.nicovideo.nicoplayer.models.IPlayerConfig
21524         import jp.nicovideo.nicoplayer.models.SystemMessage
21525         import jp.nicovideo.nicoplayer.models.comment.Command
21526         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
21527         import jp.nicovideo.nicoplayer.models.comment.ICommand
21528         import jp.nicovideo.nicoplayer.models.comment.IComment
21529         import jp.nicovideo.util.Functions
21530         import jp.nicovideo.util.ObjectUtils
21531         import jp.nicovideo.util.StringUtils
21532         import jp.nicovideo.util.TimeUtils
21533         import jp.nicovideo.util.events.EventResult
21534         import jp.nicovideo.util.loka.__MSG__
21535
21536         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
21537         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
21538
21539         //■class(instance)_index:175
21540         public class NGComment extends Object implements INGComment
21541         {
21542                 //static constructor
21543                 public static function NGComment$cinit()
21544                 {       //MethodID:2391, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
21545                         REGISTER_LIMIT_PREMIUM = 200;
21546                 }
21547
21548                 //static variables/etc.
21549                 public static const REGISTER_LIMIT_PREMIUM:uint = 200;          //slotID:1
21550
21551                 private static function _useXML(hug1:Function):void
21552                 {       //dispID:3, MethodID:2392, LocalCount= 5 , MaxScope= 7, MaxStack= 4, CodeLength= 110
21553                         internal var f:Function;                                        //slotID:1
21554                         internal var old:Boolean;                                       //slotID:2
21555
21556                         f = hug1;
21557                         old = XML.ignoreWhitespace;
21558                         XML.ignoreWhitespace = false;
21559
21560                         try{
21561                                 f();
21562                         }
21563                         finally{
21564                                 XML.ignoreWhitespace = old;
21565                         }
21566                 }
21567
21568                 //constructor
21569                 public function NGComment(hug1:String, hug2:Number, hug3:String, hug4:Boolean, hug5:IPlayerConfig, hug6:Boolean, hug7:Boolean, hug8:Boolean, hug9:String)
21570                 {       //MethodID:2393, LocalCount= 10 , MaxScope= 1, MaxStack= 3, CodeLength= 92
21571                         this.__ngCommandContainer = [];
21572                         this.__onInitialized = new Functions();
21573                         this.__onUpdated = new Functions();
21574
21575                         super();
21576
21577                         this.__ngCache = new _NGCache(!hug6);
21578                         this._csrfToken = hug9;
21579                         this.__userID = hug1;
21580                         this.__apiURL = hug3;
21581                         this.__playerConfig = hug5;
21582                         this._noLoad = hug7;
21583                         this._isMymemory = hug8;
21584                         this._isPremium = hug4;
21585
21586                         this.__initialize(hug2, hug4);
21587                 }
21588
21589                 //variables/etc.
21590                 private const NG_TARGET_RANGE:Number = 1000.0;                  //slotID:0
21591                 private const REGISTER_LIMIT:uint = 40;                         //slotID:0
21592                 private const REQUEST_MODE_GET:String = "get";                  //slotID:0
21593                 private const REQUEST_MODE_ADD:String = "add";                  //slotID:0
21594                 private const REQUEST_MODE_DELETE:String = "delete";            //slotID:0
21595                 private const REQUEST_TYPE_MESSAGE:String = "word";             //slotID:0
21596                 private const REQUEST_TYPE_USER_ID:String = "id";               //slotID:0
21597                 private const REQUEST_TYPE_COMMAND:String = "command";          //slotID:0
21598                 private var __registerLimit:uint = 40;                          //slotID:0
21599                 private var _csrfToken:String;                                  //slotID:0
21600                 private var __apiURL:String;                                    //slotID:0
21601                 private var __userID:String;                                    //slotID:0
21602                 private var __ngCache:_NGCache;                                 //slotID:0
21603                 private var __ngCommandContainer:Array;                         //slotID:0
21604                 private var __isNGCommandAll:Boolean = false;                   //slotID:0
21605                 private var __onInitialized:Functions;                          //slotID:0
21606                 private var __onUpdated:Functions;                              //slotID:0
21607                 private var __playerConfig:IPlayerConfig;                       //slotID:0
21608                 private var __lastResponse:String = "UNSERVE";                  //slotID:0
21609                 private var _noLoad:Boolean;                                    //slotID:0
21610                 private var _isMymemory:Boolean;                                //slotID:0
21611                 private var _isPremium:Boolean;                                 //slotID:0
21612
21613                 public function get onInitialized():Functions
21614                 {       //MethodID:2394, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21615                         return this.__onInitialized;
21616                 }
21617
21618                 public function get onUpdated():Functions
21619                 {       //MethodID:2395, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21620                         return this.__onUpdated;
21621                 }
21622
21623                 public function serve():void
21624                 {       //MethodID:2396, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
21625                         this.__onUpdatedHandler(this.__lastResponse);
21626                 }
21627
21628                 public function addNG(hug1:NGInfo, hug2:Function):void
21629                 {       //MethodID:2399, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 33
21630                         internal var ngInfo:NGInfo;                                     //slotID:1
21631                         internal var callback:Function;                                 //slotID:2
21632
21633                         ngInfo = hug1;
21634                         callback = hug2;
21635
21636                         this.__updateNG(ngInfo, this.REQUEST_MODE_ADD, function(hug1:String):void{      //MethodID:2398, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 56
21637                                 internal var responseConstant:String;                           //slotID:1
21638
21639                                 responseConstant = hug1;
21640
21641                                 if(responseConstant == NGResponseConstants.OK){
21642                                         __getNG(function(hug1:Boolean):void{    //MethodID:2397, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 18
21643                                                 if(!__playerConfig.useNG) __playerConfig.useNG = true;
21644                                         });
21645                                 }
21646
21647                                 __lastResponse = responseConstant;
21648
21649                                 callback(responseConstant);
21650                         });
21651                 }
21652
21653                 public function deleteNG(hug1:Array):void
21654                 {       //MethodID:2402, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 68
21655                         internal var ngInfoList:Array;                                  //slotID:1
21656                         internal var index:int;                                         //slotID:2
21657                         internal var successCounter:uint;                               //slotID:3
21658                         internal var failureCounter:uint;                               //slotID:4
21659                         internal var __deleteNG:Function;                               //slotID:5
21660
21661                         index = 0;
21662                         __deleteNG = null;
21663                         ngInfoList = hug1;
21664                         __deleteNG = function(hug1:String):void{        //MethodID:2401, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 135
21665                                 internal var responseConstant:String;                           //slotID:1
21666
21667                                 responseConstant = hug1;
21668
21669                                 if(responseConstant == NGResponseConstants.OK){
21670                                         successCounter++;
21671                                 }else{
21672                                         failureCounter++;
21673                                 }
21674
21675                                 if(index >= ngInfoList.length){
21676                                         __getNG(function(hug1:Boolean):void{    //MethodID:2400, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
21677                                         });
21678
21679                                         return;
21680                                 }
21681
21682                                 __updateNG(ngInfoList[index++], REQUEST_MODE_DELETE, __deleteNG);
21683                         };
21684
21685                         index = 0;
21686                         successCounter = 0;
21687                         failureCounter = 0;
21688
21689                         __deleteNG(NGResponseConstants.OK);
21690                 }
21691
21692                 public function get lastResponse():String
21693                 {       //MethodID:2403, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21694                         return this.__lastResponse;
21695                 }
21696
21697                 public function get registerLimit():uint
21698                 {       //MethodID:2404, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
21699                         return this.__registerLimit;
21700                 }
21701
21702                 public function rejectCommand(hug1:IComment):IComment
21703                 {       //MethodID:2407, LocalCount= 5 , MaxScope= 2, MaxStack= 5, CodeLength= 234
21704                         internal var comment:IComment;                                  //slotID:1
21705                         internal var commands:Array;                                    //slotID:2
21706                         internal var builder:CommentBuilder;                            //slotID:3
21707                         internal var searchAndReject:Function;                          //slotID:4
21708                         internal var ngCommands:Array;                                  //slotID:5
21709                         internal var buf:Array;                                         //slotID:6
21710
21711                         commands = null;
21712                         ngCommands = null;
21713                         buf = null;
21714                         comment = hug1;
21715                         searchAndReject = function(hug1:Array, hug2:Array):Array{       //MethodID:2405, LocalCount= 8 , MaxScope= 0, MaxStack= 3, CodeLength= 78
21716                                 var hug4:String = null;
21717                                 var hug5:int = 0;
21718                                 var hug3:Array = hug1.concat();
21719
21720                                 for each(hug4 in hug2){
21721                                         hug5 = hug3.indexOf(hug4);
21722
21723                                         if(hug5 == (-1)) return null;
21724                                         hug3.splice(hug5, 1);
21725                                 }
21726
21727                                 return hug3;
21728                         };
21729
21730                         if(comment.ng != NGStatus.REJECT_COMMAND) throw new Error("NGComment.rejectCommand: invalid ng status.");
21731
21732                         commands = [];
21733
21734                         if(!this.__isNGCommandAll){
21735                                 comment.command.forEachCommand(function(hug1:String):void{      //MethodID:2406, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
21736                                         commands.push(hug1);
21737                                 });
21738
21739                                 for each(ngCommands in this.__ngCommandContainer){
21740                                         buf = searchAndReject(commands, ngCommands);
21741
21742                                         if(buf != null) commands = buf;
21743                                 }
21744                         }
21745
21746                         builder = new CommentBuilder(comment);
21747                         builder.command = new Command(commands.join(" "), comment.isPremium);
21748                         return builder.make();
21749                 }
21750
21751                 public function get list():Array
21752                 {       //MethodID:2408, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 14
21753                         return this.__ngCache.cacheData.concat();
21754                 }
21755
21756                 private function __initialize(hug1:Number, hug2:Boolean):void
21757                 {       //MethodID:2411, LocalCount= 4 , MaxScope= 2, MaxStack= 2, CodeLength= 117
21758                         internal var ngRevision:Number;                                 //slotID:1
21759                         internal var isPremium:Boolean;                                 //slotID:2
21760                         internal var now:Date;                                          //slotID:3
21761
21762                         ngRevision = hug1;
21763                         isPremium = hug2;
21764
21765                         if(isPremium) this.__registerLimit = REGISTER_LIMIT_PREMIUM;
21766
21767                         now = new Date();
21768
21769                         if((this.__ngCache.lastUpdated > 0) && !isNaN(ngRevision) && (ngRevision == this.__ngCache.revision)){
21770                                 this.buildngCommandContainer();
21771                                 ObjectUtils.callLater(function():void{  //MethodID:2409, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 9
21772                                         onInitialized.apply(true);
21773                                 });
21774
21775                                 return;
21776                         }
21777
21778                         this.__getNG(function(hug1:Boolean):void{       //MethodID:2410, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 26
21779                                 if(hug1){
21780                                         onInitialized.apply(true);
21781                                 }else{
21782                                         onInitialized.apply(false);
21783                                 }
21784                         });
21785                 }
21786
21787                 private function __getNG(hug1:Function):void
21788                 {       //MethodID:2418, LocalCount= 3 , MaxScope= 2, MaxStack= 5, CodeLength= 153
21789                         internal var callback:Function;                                 //slotID:1
21790                         internal var loader:URLLoader;                                  //slotID:2
21791                         internal var request:URLRequest;                                //slotID:3
21792
21793                         loader = null;
21794                         callback = hug1;
21795
21796                         if(this._noLoad){
21797                                 ObjectUtils.callLater(function():void{  //MethodID:2412, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
21798                                         callback(true);
21799                                 });
21800
21801                                 return;
21802                         }
21803
21804                         loader = new URLLoader();
21805                         request = new URLRequest(this.__apiURL);
21806                         request.method = URLRequestMethod.POST;
21807                         request.data = new URLVariables(StringUtils.queryString({mode:this.REQUEST_MODE_GET}));
21808
21809                         loader.load(request);
21810                         loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:2416, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
21811                                 internal var event:Event;                                       //slotID:1
21812
21813                                 event = hug1;
21814
21815                                 _useXML(function():void{        //MethodID:2415, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 606
21816                                         internal var bufferList:Array;                                  //slotID:1
21817                                         internal var sourceXML:XML;                                     //slotID:2
21818                                         internal var buf:XML;                                           //slotID:3
21819                                         internal var type:String;                                       //slotID:4
21820                                         internal var lastHit:Date;                                      //slotID:5
21821                                         internal var oldNG:NGInfo;                                      //slotID:6
21822
21823                                         buf = null;
21824                                         type = null;
21825                                         lastHit = null;
21826                                         oldNG = null;
21827                                         bufferList = [];
21828                                         sourceXML = new XML(loader.data);
21829
21830                                         if(sourceXML.attribute("status").toString() == "ok"){
21831                                                 SystemMessage.instance.informln(__MSG__("NG設定の取得に成功"));
21832                                         }else if(sourceXML.attribute("status").toString() == "fail"){
21833                                                 if(sourceXML..error.code == NGResponseConstants.ERROR_MAINTENANCE) SystemMessage.instance.informln(__MSG__("NG設定の取得に失敗(メンテナンス中)"));
21834                                                 buildngCommandContainer();
21835                                                 ObjectUtils.callLater(function():void{  //MethodID:2413, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
21836                                                         callback(true);
21837                                                 });
21838
21839                                                 __lastResponse = sourceXML..error.code;
21840
21841                                                 __onUpdatedHandler(sourceXML..error.code);
21842
21843                                                 return;
21844                                         }
21845
21846                                         for each(buf in sourceXML.ngclient){
21847                                                 if(buf.type == REQUEST_TYPE_MESSAGE){
21848                                                         type = NGType.MESSAGE;
21849                                                 }else if(buf.type == REQUEST_TYPE_USER_ID){
21850                                                         type = NGType.USER_ID;
21851                                                 }else if(buf.type == REQUEST_TYPE_COMMAND){
21852                                                         type = NGType.COMMAND;
21853                                                 }else{
21854                                                         continue;
21855                                                 }
21856
21857                                                 lastHit = null;
21858
21859                                                 if(__ngCache.cacheData){
21860                                                         for each(oldNG in __ngCache.cacheData){
21861                                                                 if((oldNG.type == type) && (oldNG.source.toLowerCase() == buf.source.toLowerCase()) && oldNG.lastHit){
21862                                                                         lastHit = new Date(oldNG.lastHit.time);
21863                                                                         break;
21864                                                                 }
21865                                                         }
21866                                                 }
21867
21868                                                 bufferList.push(new NGInfo(type, buf.source, lastHit));
21869                                         }
21870
21871                                         __ngCache.setCacheData(bufferList, false);
21872                                         __ngCache.setRevision(sourceXML.revision, false);
21873                                         __ngCache.setLastUpdated(TimeUtils.now().time);
21874                                         __ngCache.flush();
21875                                         buildngCommandContainer();
21876                                         ObjectUtils.callLater(function():void{  //MethodID:2414, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 10
21877                                                 callback(true);
21878                                         });
21879
21880                                         __lastResponse = NGResponseConstants.OK;
21881
21882                                         __onUpdatedHandler(NGResponseConstants.OK);
21883                                 });
21884                         });
21885                         loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{        //MethodID:2417, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 30
21886                                 SystemMessage.instance.informln(__MSG__("NG設定の取得に失敗"));
21887                                 callback(false);
21888                         });
21889                 }
21890
21891                 private function buildngCommandContainer():void
21892                 {       //MethodID:2419, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 127
21893                         var hug1:NGInfo = null;
21894                         var hug2:Array = null;
21895                         this.__isNGCommandAll = false;
21896                         this.__ngCommandContainer = [];
21897
21898                         for each(hug1 in this.__ngCache.cacheData){
21899                                 if(hug1.type == NGType.COMMAND){
21900                                         hug2 = hug1.source.split(new RegExp("[ | ]+"));
21901
21902                                         if(hug2.indexOf("all") != (-1)){
21903                                                 this.__isNGCommandAll = true;
21904                                                 this.__ngCommandContainer = null;
21905                                                 break;
21906                                         }
21907
21908                                         this.__ngCommandContainer.push(hug2);
21909                                 }
21910                         }
21911                 }
21912
21913                 private function __onUpdatedHandler(hug1:String):void
21914                 {       //MethodID:2420, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 19
21915                         this.onUpdated.apply(this.__ngCache.cacheData, hug1);
21916                 }
21917
21918                 private function __updateNG(hug1:NGInfo, hug2:String, hug3:Function):void
21919                 {       //MethodID:2426, LocalCount= 5 , MaxScope= 2, MaxStack= 3, CodeLength= 160
21920                         internal var ngInfo:NGInfo;                                     //slotID:1
21921                         internal var mode:String;                                       //slotID:2
21922                         internal var callback:Function;                                 //slotID:3
21923                         internal var loader:URLLoader;                                  //slotID:4
21924                         internal var getRequestType:Function;                           //slotID:5
21925                         internal var getRequest:Function;                               //slotID:6
21926                         internal var getNGScorringSuffix:Function;                      //slotID:7
21927
21928                         loader = null;
21929                         ngInfo = hug1;
21930                         mode = hug2;
21931                         callback = hug3;
21932                         getRequestType = function(hug1:String):String{  //MethodID:2421, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 56
21933                                 if(hug1 == NGType.MESSAGE) return REQUEST_TYPE_MESSAGE;
21934
21935                                 if(hug1 == NGType.USER_ID) return REQUEST_TYPE_USER_ID;
21936
21937                                 if(hug1 == NGType.COMMAND) return REQUEST_TYPE_COMMAND;
21938
21939                                 throw new Error("NGComment.__updateNG.getRequestType: invalid type.");
21940                         };
21941
21942                         getRequest = function():URLRequest{     //MethodID:2422, LocalCount= 4 , MaxScope= 0, MaxStack= 10, CodeLength= 291
21943                                 var hug2:Object = null;
21944                                 var hug3:String = null;
21945                                 var hug1:URLRequest = new URLRequest(__apiURL);
21946                                 hug1.method = URLRequestMethod.POST;
21947
21948                                 if((_isPremium && (mode == REQUEST_MODE_ADD) && !_isMymemory) && ngInfo.comment && ngInfo.comment.commentList && (ngInfo.comment.commentList.threadID != "")){
21949                                         hug3 = getNGScorringSuffix(ngInfo.type, ngInfo.comment);
21950                                         hug3 = (ngInfo.comment.resNo.toString() + hug3);
21951                                         hug2 = {mode:mode, type:getRequestType(ngInfo.type), source:ngInfo.source, thread_id:ngInfo.comment.commentList.threadID, comments:hug3};
21952                                 }else{
21953                                         hug2 = {mode:mode, type:getRequestType(ngInfo.type), source:ngInfo.source};
21954                                 }
21955
21956                                 if(_csrfToken == null) throw new IllegalOperationError("NGComment.getRequest: csrfToken is null.");
21957
21958                                 hug2.token = _csrfToken;
21959                                 hug1.data = new URLVariables(StringUtils.queryString(hug2));
21960                                 return hug1;
21961                         };
21962
21963                         getNGScorringSuffix = function(hug1:String, hug2:IComment):String{      //MethodID:2423, LocalCount= 9 , MaxScope= 0, MaxStack= 3, CodeLength= 166
21964                                 var hug6:IComment = null;
21965                                 var hug3:String = ((hug1 == NGType.MESSAGE) ? "message" : "userID");
21966                                 var hug4:Array = hug2.commentList.currentList;
21967                                 var hug5:String = "";
21968
21969                                 for each(hug6 in hug4){
21970                                         if(((hug2.vpos - NG_TARGET_RANGE) <= hug6.vpos) && ((hug2.vpos + NG_TARGET_RANGE) >= hug6.vpos) && (hug2.resNo != hug6.resNo)){
21971                                                 if(hug2[hug3] == hug6[hug3]) hug5 += ("," + hug6.resNo);
21972                                         }
21973                                 }
21974
21975                                 return hug5;
21976                         };
21977
21978                         if((mode != this.REQUEST_MODE_ADD) && (mode != this.REQUEST_MODE_DELETE)) throw new Error("NGComment.__updateNG: invalid mode.");
21979
21980                         loader = new URLLoader();
21981
21982                         loader.load(getRequest());
21983                         loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:2424, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 104
21984                                 var hug2:XML = new XML(loader.data);
21985
21986                                 if(hug2.attribute("status").toString() == "ok"){
21987                                         callback(NGResponseConstants.OK);
21988                                 }else{
21989                                         if(hug2..error.code == NGResponseConstants.ERROR_MAINTENANCE) SystemMessage.instance.informln(__MSG__("NG設定の取得に失敗(メンテナンス中)"));
21990                                         callback(hug2..error.code);
21991                                 }
21992                         });
21993                         loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:Event):void{       //MethodID:2425, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 15
21994                                 callback(NGResponseConstants.ERROR_IO);
21995                         });
21996                 }
21997
21998                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
21999                 {       //MethodID:2428, LocalCount= 10 , MaxScope= 2, MaxStack= 5, CodeLength= 584
22000                         internal var addList:Array;                                     //slotID:1
22001                         internal var removeList:Array;                                  //slotID:2
22002                         internal var allClear:Boolean;                                  //slotID:3
22003                         internal var listName:String;                                   //slotID:4
22004                         internal var ngList:Array;                                      //slotID:5
22005                         internal var replaced:Array;                                    //slotID:6
22006                         internal var buf:IComment;                                      //slotID:7
22007                         internal var compereNGCommand:Function;                         //slotID:8
22008                         internal var status:uint;                                       //slotID:9
22009                         internal var ngInfo:NGInfo;                                     //slotID:10
22010                         internal var builder:CommentBuilder;                            //slotID:11
22011
22012                         buf = null;
22013                         status = 0;
22014                         ngInfo = null;
22015                         builder = null;
22016                         addList = hug1;
22017                         removeList = hug2;
22018                         allClear = hug3;
22019                         listName = hug4;
22020                         compereNGCommand = function(hug1:String, hug2:ICommand):Boolean{        //MethodID:2427, LocalCount= 8 , MaxScope= 0, MaxStack= 3, CodeLength= 81
22021                                 var hug5:String = null;
22022                                 var hug3:Array = ngInfo.source.split(new RegExp("[ | ]+"));
22023                                 var hug4:Boolean = (hug3.length > 0);
22024
22025                                 for each(hug5 in hug3){
22026                                         if(!hug2.hasContained(hug5)) return false;
22027                                 }
22028
22029                                 return hug4;
22030                         };
22031
22032                         ngList = this.__ngCache.cacheData;
22033                         replaced = [];
22034
22035                         if(ngList.length == 0) return EventResult.THROUGH;
22036
22037                         for each(buf in addList){
22038                                 status = NGStatus.NONE;
22039
22040                                 if(this.__isNGCommandAll) status = NGStatus.REJECT_COMMAND;
22041
22042                                 for each(ngInfo in ngList){
22043                                         if((ngInfo.type == NGType.COMMAND) && compereNGCommand(ngInfo.source, buf.command)){
22044                                                 ngInfo.lastHit = TimeUtils.now();
22045                                                 ngList[ngList.indexOf(ngInfo)] = ngInfo;
22046                                                 status = NGStatus.REJECT_COMMAND;
22047                                         }else if(((ngInfo.type == NGType.MESSAGE) && (buf.message.toLowerCase().indexOf(ngInfo.source.toLowerCase()) != (-1))) || ((ngInfo.type == NGType.USER_ID) && (ngInfo.source == buf.userID))){
22048                                                 ngInfo.lastHit = TimeUtils.now();
22049                                                 ngList[ngList.indexOf(ngInfo)] = ngInfo;
22050                                                 status = NGStatus.INVISIBLE;
22051                                                 break;
22052                                         }
22053                                 }
22054
22055                                 if(status > 0){
22056                                         builder = new CommentBuilder(buf);
22057                                         builder.ng = status;
22058
22059                                         replaced.push(builder.make());
22060                                 }else{
22061                                         replaced.push(buf);
22062                                 }
22063                         }
22064
22065                         this.__ngCache.setCacheData(ngList);
22066                         this.__ngCache.flush();
22067                         this.__onUpdatedHandler(NGResponseConstants.UNSERVE);
22068
22069                         return EventResult.replace([replaced, removeList, allClear, listName]);
22070                 }
22071
22072                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get userID():String
22073                 {       //MethodID:2429, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22074                         return this.__userID;
22075                 }
22076
22077                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get ngCache():_NGCache
22078                 {       //MethodID:2430, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22079                         return this.__ngCache;
22080                 }
22081
22082                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get apiURL():String
22083                 {       //MethodID:2431, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22084                         return this.__apiURL;
22085                 }
22086         }
22087 }
22088
22089 import jp.nicovideo.nicoplayer.models.filter.NGInfo
22090 import jp.nicovideo.util.CrossSharedObject
22091 import jp.nicovideo.util.storage.LocalStorage
22092
22093 //■class(instance)_index:174
22094 //private
22095 class _NGCache extends Object
22096 {
22097         //static constructor
22098         public static function _NGCache$cinit()
22099         {       //MethodID:2380, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22100         }
22101
22102         //constructor
22103         public function _NGCache(hug1:Boolean)
22104         {       //MethodID:2381, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 32
22105                 this.__soNGCache = CrossSharedObject.getStorage("jp.nicovideo.nicoplayer.models.fileter._NGCache");
22106                 this.__ngInfoList = [];
22107
22108                 super();
22109                 this.__constructor(hug1);
22110         }
22111
22112         //variables/etc.
22113         private const LOCAL_DATA_EXPIRE:uint = 0x5265C00;               //slotID:0
22114         private const KEY_LAST_UPDATED:String = "lastUpdated";          //slotID:0
22115         private const KEY_CACHE_DATA:String = "cacheData";              //slotID:0
22116         private const KEY_REVISION:String = "revision";                 //slotID:0
22117         private var __soNGCache:LocalStorage;                           //slotID:0
22118         private var __ngInfoList:Array;                                 //slotID:0
22119         private var __now:Date;                                         //slotID:0
22120
22121         private function __constructor(hug1:Boolean):void
22122         {       //MethodID:2382, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 90
22123                 this.__now = new Date();
22124
22125                 if(isNaN(this.lastUpdated) || (this.__now.time >= (this.lastUpdated + this.LOCAL_DATA_EXPIRE))){
22126                         this.setLastUpdated(-1, false);
22127
22128                         if(hug1) this.setCacheData([], false);
22129                         this.setRevision(0, false);
22130                         this.flush();
22131                 }
22132
22133                 this.__updateNGInfoList();
22134         }
22135
22136         public function flush():void
22137         {       //MethodID:2383, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
22138                 this.__soNGCache.flush();
22139         }
22140
22141         public function get lastUpdated():Number
22142         {       //MethodID:2384, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
22143                 return this.__soNGCache.data[this.KEY_LAST_UPDATED];
22144         }
22145
22146         public function setLastUpdated(hug1:Number, hug2:Boolean=true):void
22147         {       //MethodID:2385, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 28
22148                 this.__soNGCache.data[this.KEY_LAST_UPDATED] = hug1;
22149
22150                 if(hug2) this.flush();
22151         }
22152
22153         public function get cacheData():Array
22154         {       //MethodID:2386, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22155                 return this.__ngInfoList;
22156         }
22157
22158         public function setCacheData(hug1:Array, hug2:Boolean=true):void
22159         {       //MethodID:2387, LocalCount= 7 , MaxScope= 1, MaxStack= 7, CodeLength= 127
22160                 var hug4:NGInfo = null;
22161                 var hug3:Array = [];
22162
22163                 for each(hug4 in hug1){
22164                         hug3.push({type:hug4.type, source:hug4.source, hit:(hug4.lastHit ? hug4.lastHit.time : 0)});
22165                 }
22166
22167                 this.__soNGCache.data[this.KEY_CACHE_DATA] = hug3;
22168
22169                 if(hug2) this.flush();
22170                 this.__updateNGInfoList();
22171         }
22172
22173         public function get revision():uint
22174         {       //MethodID:2388, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
22175                 return this.__soNGCache.data[this.KEY_REVISION];
22176         }
22177
22178         public function setRevision(hug1:uint, hug2:Boolean=true):void
22179         {       //MethodID:2389, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 28
22180                 this.__soNGCache.data[this.KEY_REVISION] = hug1;
22181
22182                 if(hug2) this.flush();
22183         }
22184
22185         private function __updateNGInfoList():void
22186         {       //MethodID:2390, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 104
22187                 var hug1:Object = null;
22188                 this.__ngInfoList = [];
22189
22190                 for each(hug1 in this.__soNGCache.data[this.KEY_CACHE_DATA]){
22191                         this.__ngInfoList.push(new NGInfo(hug1.type, hug1.source, ((hug1.hit == 0) ? null : new Date(hug1.hit))));
22192                 }
22193         }
22194 }
22195
22196 //■script147■
22197
22198 package jp.nicovideo.nicoplayer.models.video.userSponsor{
22199
22200         //■class(instance)_index:176
22201         public interface IUserSponsorVideo implements IChildVideo
22202         {
22203                 //static constructor
22204                 public static function IUserSponsorVideo$cinit()
22205                 {       //MethodID:2433, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
22206                 }
22207
22208                 //variables/etc.
22209                 function initialize(hug1:IUserSponsorVideoClient):void;                     //MethodID:2434, dispID:0
22210
22211                 //constructor
22212                 public function IUserSponsorVideo();                                        //MethodID:2435, dispID:0
22213         }
22214 }
22215
22216 //■script148■
22217
22218 package jp.nicovideo.nicoplayer.models.filter{
22219
22220         import jp.nicovideo.util.Functions
22221
22222         //■class(instance)_index:177
22223         public interface IReplacer
22224         {
22225                 //static constructor
22226                 public static function IReplacer$cinit()
22227                 {       //MethodID:2437, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
22228                 }
22229
22230                 //variables/etc.
22231                 function get replaceList():Array;                                           //MethodID:2438, dispID:0
22232
22233                 function get onReplaceListUpdated():Functions;                              //MethodID:2439, dispID:0
22234
22235                 function addReplaceList(hug1:Array, hug2:Function):void;                    //MethodID:2440, dispID:0
22236
22237                 function deleteReplaceList(hug1:Array, hug2:Function):void;                 //MethodID:2441, dispID:0
22238
22239                 function get isMaintenance():Boolean;                                       //MethodID:2442, dispID:0
22240
22241                 //constructor
22242                 public function IReplacer();                                                //MethodID:2443, dispID:0
22243         }
22244 }
22245
22246 //■script149■
22247
22248 package jp.nicovideo.nicoplayer.models.filter{
22249
22250         import flash.errors.IllegalOperationError
22251         import flash.net.URLVariables
22252         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
22253         import jp.nicovideo.nicoplayer.models.comment.IComment
22254         import jp.nicovideo.util.Functions
22255         import jp.nicovideo.util.HTTPUtils
22256         import jp.nicovideo.util.events.EventResult
22257
22258         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
22259         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
22260
22261         //■class(instance)_index:178
22262         public class Replacer extends Object implements IReplacer
22263         {
22264                 //static constructor
22265                 public static function Replacer$cinit()
22266                 {       //MethodID:2445, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22267                 }
22268
22269                 //constructor
22270                 public function Replacer(hug1:String, hug2:String, hug3:String, hug4:Boolean, hug5:String)
22271                 {       //MethodID:2446, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 41
22272                         this._onUpdated = new Functions();
22273                         this._replaceList = [];
22274
22275                         super();
22276
22277                         this._csrfToken = hug5;
22278                         this._isMaintenance = hug4;
22279
22280                         this._constructor(hug1, hug2, hug3);
22281                 }
22282
22283                 //variables/etc.
22284                 private const _onUpdated:Functions;                             //slotID:0
22285                 private const _SEND_PARAM_WATCHID:String = "video";             //slotID:0
22286                 private const _SEND_PARAM_MODE:String = "mode";                 //slotID:0
22287                 private const _SEND_PARAM_MODE_ADD:String = "add";              //slotID:0
22288                 private const _SEND_PARAM_MODE_DELETE:String = "delete";        //slotID:0
22289                 private const _SEND_PARAM_ORIGINAL:String = "source";           //slotID:0
22290                 private const _SEND_PARAM_REPLACED:String = "destination";      //slotID:0
22291                 private const _SEND_PARAM_TOKEN:String = "token";               //slotID:0
22292                 private var _csrfToken:String;                                  //slotID:0
22293                 private var _apiURL:String;                                     //slotID:0
22294                 private var _watchID:String;                                    //slotID:0
22295                 private var _replaceList:Array;                                 //slotID:0
22296                 private var _isMaintenance:Boolean;                             //slotID:0
22297
22298                 public function get onReplaceListUpdated():Functions
22299                 {       //MethodID:2447, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22300                         return this._onUpdated;
22301                 }
22302
22303                 private function _constructor(hug1:String, hug2:String, hug3:String):void
22304                 {       //MethodID:2448, LocalCount= 14 , MaxScope= 1, MaxStack= 4, CodeLength= 193
22305                         var hug4:Array = null;
22306                         var hug5:Array = null;
22307                         var hug6:String = null;
22308                         var hug7:URLVariables = null;
22309                         var hug8:String = null;
22310                         var hug9:Array = null;
22311                         this._apiURL = hug2;
22312                         this._watchID = hug3;
22313
22314                         if(hug1 != ""){
22315                                 hug4 = hug1.split("&");
22316                                 hug5 = [];
22317
22318                                 for each(hug6 in hug4){
22319                                         if(hug6 == ""){
22320                                         }else{
22321                                                 hug7 = new URLVariables(hug6);
22322
22323                                                 for(hug8 in hug7){
22324                                                         hug9 = [new _ReplaceInfo(hug8, hug7[hug8])];
22325                                                         hug5 = hug9.concat(hug5);
22326                                                 }
22327                                         }
22328                                 }
22329
22330                                 this._replaceList = hug5;
22331                         }
22332                 }
22333
22334                 public function get replaceList():Array
22335                 {       //MethodID:2449, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22336                         return this._replaceList;
22337                 }
22338
22339                 private function _replaceComment(hug1:IComment):IComment
22340                 {       //MethodID:2450, LocalCount= 8 , MaxScope= 1, MaxStack= 2, CodeLength= 197
22341                         var hug3:IReplaceInfo = null;
22342                         var hug5:Array = null;
22343                         var hug2:String = hug1.message;
22344
22345                         for each(hug3 in this._replaceList){
22346                                 if(hug3.isWholeReplaced && (hug2.toLowerCase().indexOf(hug3.originalSource.toLowerCase()) != (-1))){
22347                                         hug2 = hug3.replacedSource;
22348                                 }else{
22349                                         hug5 = hug2.toLowerCase().split(hug3.originalSource.toLowerCase());
22350
22351                                         if(hug5 && (hug5.length > 0)) hug2 = hug5.join(hug3.replacedSource);
22352                                 }
22353                         }
22354
22355                         if(hug1.message.toLowerCase() == hug2.toLowerCase()) return hug1;
22356
22357                         var hug4:CommentBuilder = new CommentBuilder(hug1);
22358                         hug4.message = hug2;
22359                         return hug4.make();
22360                 }
22361
22362                 public function get isMaintenance():Boolean
22363                 {       //MethodID:2451, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22364                         return this._isMaintenance;
22365                 }
22366
22367                 public function addReplaceList(hug1:Array, hug2:Function):void
22368                 {       //MethodID:2453, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 76
22369                         internal var list:Array;                                        //slotID:1
22370                         internal var callback:Function;                                 //slotID:2
22371
22372                         list = hug1;
22373                         callback = hug2;
22374
22375                         if((this._replaceList.length + list.length) > ReplacerConstants.MAX_COUNT) throw new Error("Replacer.addReplaceList: can not register over " + ReplacerConstants.MAX_COUNT);
22376                         this._sendByOrder(list, this._SEND_PARAM_MODE_ADD, function(hug1:String, hug2:IReplaceInfo, hug3:Boolean):void{ //MethodID:2452, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 53
22377                                 var hug4:Array = [hug2];
22378                                 _replaceList = hug4.concat(_replaceList);
22379
22380                                 _onUpdated.apply(_replaceList.concat(), hug1);
22381
22382                                 if(hug3) callback.apply(this, []);
22383                         });
22384                 }
22385
22386                 private function _sendByOrder(hug1:Array, hug2:String, hug3:Function):void
22387                 {       //MethodID:2457, LocalCount= 7 , MaxScope= 2, MaxStack= 3, CodeLength= 214
22388                         internal var list:Array;                                        //slotID:1
22389                         internal var mode:String;                                       //slotID:2
22390                         internal var onSended:Function;                                 //slotID:3
22391                         internal var buf:Array;                                         //slotID:4
22392                         internal var info:IReplaceInfo;                                 //slotID:5
22393                         internal var length:uint;                                       //slotID:6
22394                         internal var send:Function;                                     //slotID:7
22395                         internal var createParam:Function;                              //slotID:8
22396
22397                         buf = null;
22398                         info = null;
22399                         length = 0;
22400                         list = hug1;
22401                         mode = hug2;
22402                         onSended = hug3;
22403                         send = function(hug1:uint):void{        //MethodID:2455, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 59
22404                                 internal var index:uint;                                        //slotID:1
22405                                 internal var info:IReplaceInfo;                                 //slotID:2
22406
22407                                 info = null;
22408                                 index = hug1;
22409                                 info = buf[index];
22410
22411                                 HTTPUtils.loadXML(function(hug1:XML):void{      //MethodID:2454, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 88
22412                                         var hug4:String = null;
22413                                         var hug2:uint = (index + 1);
22414                                         var hug3:Boolean = Boolean(hug2 >= length);
22415
22416                                         if(hug1.@status == "ok"){
22417                                                 hug4 = NGResponseConstants.OK;
22418                                         }else{
22419                                                 hug4 = hug1..error.code;
22420                                         }
22421
22422                                         onSended(hug4, info, hug3);
22423
22424                                         if(hug3) return;
22425                                         send(hug2);
22426                                 }, _apiURL, createParam(info));
22427                         };
22428
22429                         createParam = function(hug1:IReplaceInfo):Object{       //MethodID:2456, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 101
22430                                 var hug2:Object = {};
22431                                 hug2[_SEND_PARAM_MODE] = mode;
22432                                 hug2[_SEND_PARAM_WATCHID] = _watchID;
22433                                 hug2[_SEND_PARAM_ORIGINAL] = ((hug1.isWholeReplaced ? ReplacerConstants.WHOLE_REPLACE_PREFIX : "") + hug1.originalSource);
22434
22435                                 if(_csrfToken == null) throw new IllegalOperationError("Replacer.createParam: csrfToken is null.");
22436
22437                                 hug2[_SEND_PARAM_TOKEN] = _csrfToken;
22438                                 hug2[_SEND_PARAM_REPLACED] = hug1.replacedSource;
22439                                 return hug2;
22440                         };
22441
22442                         if((mode != this._SEND_PARAM_MODE_ADD) && (mode != this._SEND_PARAM_MODE_DELETE)) throw new IllegalOperationError("Replacer._sendByOrder: invalid mode.");
22443
22444                         buf = [];
22445
22446                         for each(info in list){
22447                                 if(info) buf.push(info);
22448                         }
22449
22450                         length = buf.length;
22451
22452                         if(length == 0) throw new IllegalOperationError("Replacer.addReplaceList: list is empty.");
22453                         send(0);
22454                 }
22455
22456                 public function deleteReplaceList(hug1:Array, hug2:Function):void
22457                 {       //MethodID:2459, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 33
22458                         internal var list:Array;                                        //slotID:1
22459                         internal var callback:Function;                                 //slotID:2
22460
22461                         list = hug1;
22462                         callback = hug2;
22463
22464                         this._sendByOrder(list, this._SEND_PARAM_MODE_DELETE, function(hug1:String, hug2:IReplaceInfo, hug3:Boolean):void{      //MethodID:2458, LocalCount= 8 , MaxScope= 0, MaxStack= 3, CodeLength= 149
22465                                 var hug5:IReplaceInfo = null;
22466                                 var hug4:Array = [];
22467
22468                                 for each(hug5 in _replaceList){
22469                                         if((hug2.originalSource == hug5.originalSource) && (hug2.replacedSource == hug5.replacedSource) && (hug2.isWholeReplaced == hug5.isWholeReplaced)){
22470                                         }else{
22471                                                 hug4.push(hug5);
22472                                         }
22473                                 }
22474
22475                                 _replaceList = hug4.concat();
22476
22477                                 _onUpdated.apply(_replaceList.concat(), hug1);
22478
22479                                 if(hug3) callback.apply(this, []);
22480                         });
22481                 }
22482
22483                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
22484                 {       //MethodID:2460, LocalCount= 9 , MaxScope= 1, MaxStack= 5, CodeLength= 93
22485                         var hug6:IComment = null;
22486
22487                         if(this._replaceList.length == 0) return EventResult.THROUGH;
22488
22489                         var hug5:Array = [];
22490
22491                         for each(hug6 in hug1){
22492                                 hug5.push(this._replaceComment(hug6));
22493                         }
22494
22495                         return EventResult.replace([hug5, hug2, hug3, hug4]);
22496                 }
22497
22498                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function replace(hug1:IComment):IComment
22499                 {       //MethodID:2461, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
22500                         return this._replaceComment(hug1);
22501                 }
22502         }
22503 }
22504
22505 import flash.errors.IllegalOperationError
22506 import jp.nicovideo.nicoplayer.models.filter.ReplacerConstants
22507
22508 //■class(instance)_index:179
22509 //private
22510 class _ReplaceInfo extends Object implements IReplaceInfo
22511 {
22512         //static constructor
22513         public static function _ReplaceInfo$cinit()
22514         {       //MethodID:2462, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22515         }
22516
22517         //constructor
22518         public function _ReplaceInfo(hug1:String, hug2:String)
22519         {       //MethodID:2463, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 13
22520                 super();
22521                 this._constructor(hug1, hug2);
22522         }
22523
22524         //variables/etc.
22525         private var _original:String;                                   //slotID:0
22526         private var _replaced:String;                                   //slotID:0
22527         private var _isWhole:Boolean = false;                           //slotID:0
22528
22529         private function _constructor(hug1:String, hug2:String):void
22530         {       //MethodID:2464, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 83
22531                 var hug3:Object = ReplacerConstants.CHECK_ORIGINAL_VARS_REGEXP.exec(hug1);
22532
22533                 if(!hug3 || !hug3[2]) throw new IllegalOperationError("_ReplaceInfo._constructor: invalid data string.");
22534
22535                 if(hug3[1] == ReplacerConstants.WHOLE_REPLACE_PREFIX) this._isWhole = true;
22536
22537                 this._original = hug3[2];
22538                 this._replaced = hug2;
22539         }
22540
22541         public function get originalSource():String
22542         {       //MethodID:2465, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22543                 return this._original;
22544         }
22545
22546         public function get replacedSource():String
22547         {       //MethodID:2466, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22548                 return this._replaced;
22549         }
22550
22551         public function get isWholeReplaced():Boolean
22552         {       //MethodID:2467, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22553                 return this._isWhole;
22554         }
22555
22556         public function get isRegExp():Boolean
22557         {       //MethodID:2468, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
22558                 return false;
22559         }
22560 }
22561
22562 //■script150■
22563
22564 package jp.nicovideo.util.events{
22565
22566         import flash.utils.Proxy
22567         import flash.utils.flash_proxy
22568
22569         use namespace flash_proxy;
22570
22571         //■class(instance)_index:180
22572         public final class EventChunk extends Proxy implements EventSender
22573         {
22574                 //static constructor
22575                 public static function EventChunk$cinit()
22576                 {       //MethodID:2470, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22577                 }
22578
22579                 //constructor
22580                 public function EventChunk(hug1:*, hug2:Array)
22581                 {       //MethodID:2472, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
22582                         super();
22583
22584                         this.__instance = hug1;
22585                         this.__eventNames = hug2;
22586                 }
22587
22588                 //variables/etc.
22589                 private var __instance:*;                                       //slotID:0
22590                 private var __eventNames:Array;                                 //slotID:0
22591
22592                 public function get eventNames():Array
22593                 {       //MethodID:2471, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22594                         return this.__eventNames;
22595                 }
22596
22597                 override flash_proxy function getProperty(hug1:*):*
22598                 {       //MethodID:2473, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 125
22599                         if(!hug1 is QName) throw new Error("EventChunk.getProperty: name is not QName.");
22600
22601                         if(hug1.uri != event_sender.uri) throw new Error("EventChunk.getProperty: namespace isn't event_sender. [" + hug1.uri + " != " + event_sender.uri + "]");
22602
22603                         if(this.__eventNames.indexOf(hug1.localName) == (-1)) throw new Error("EventChunk.getProperty: unknown event named `" + hug1.localName + "'.");
22604
22605                         return event_sender[hug1.localName];
22606                 }
22607         }
22608 }
22609
22610 //■script151■
22611
22612 package jp.nicovideo.nicoplayer.models.filter{
22613
22614         import flash.errors.IllegalOperationError
22615         import jp.nicovideo.nicoplayer.models.SystemMessage
22616         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
22617         import jp.nicovideo.nicoplayer.models.comment.CommentConstants
22618         import jp.nicovideo.nicoplayer.models.comment.IComment
22619         import jp.nicovideo.util.Functions
22620         import jp.nicovideo.util.ObjectUtils
22621         import jp.nicovideo.util.events.EventResult
22622         import jp.nicovideo.util.events.event_sender
22623         import jp.nicovideo.util.loka.__MSG__
22624         import jp.nicovideo.util.storage.LocalStorage
22625
22626         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
22627         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
22628
22629         //■class(instance)_index:182
22630         public class LockedComment extends Object implements EventSender
22631         {
22632                 //static constructor
22633                 public static function LockedComment$cinit()
22634                 {       //MethodID:2496, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22635                 }
22636
22637                 //constructor
22638                 public function LockedComment(hug1:String, hug2:String, hug3:Boolean=false, hug4:Boolean=false)
22639                 {       //MethodID:2497, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 121
22640                         this.onCommentListUpdated = new Functions();
22641                         this.onCommentPost = new Functions();
22642                         this.onCommentCountUpdated = new Functions();
22643
22644                         super();
22645
22646                         this._mainName = hug2;
22647                         this._threadID = hug1;
22648                         this._isPostLocked = hug3;
22649                         this._isEditMode = hug4;
22650                         this._lockedList = {};
22651                         this._lockedList[this._mainName] = new _LockedCommentContainer(this._threadID, this._mainName);
22652                         this._lockedList[CommentConstants.CL_NICOS] = new _LockedCommentContainer(this._threadID, CommentConstants.CL_NICOS);
22653
22654                         this._updateLockedEnabled();
22655                 }
22656
22657                 //variables/etc.
22658                 private var _so:LocalStorage;                                   //slotID:0
22659                 private var _threadID:String;                                   //slotID:0
22660                 private var _lockedList:Object;                                 //slotID:0
22661                 private var _mainName:String;                                   //slotID:0
22662                 private var _isPostLocked:Boolean = false;                      //slotID:0
22663                 private var _lockedCommentEnabled:Boolean = false;              //slotID:0
22664                 private var _isEditMode:Boolean = false;                        //slotID:0
22665                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentListUpdated:Functions;//slotID:0
22666                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentPost:Functions;//slotID:0
22667                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onCommentCountUpdated:Functions;//slotID:0
22668
22669                 private function _updateLockedEnabled():void
22670                 {       //MethodID:2498, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 68
22671                         var hug1:_LockedCommentContainer = null;
22672
22673                         if(this._isPostLocked){
22674                                 this._lockedCommentEnabled = true;
22675                                 return;
22676                         }
22677
22678                         for each(hug1 in this._lockedList){
22679                                 if(hug1.hasLocked){
22680                                         this._lockedCommentEnabled = true;
22681                                         return;
22682                                 }
22683                         }
22684                 }
22685
22686                 public function get eventNames():Array
22687                 {       //MethodID:2499, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 18
22688                         var hug1:Array = ["onCommentListUpdated", "onCommentPost", "onCommentCountUpdated"];
22689                         return hug1;
22690                 }
22691
22692                 public function post(hug1:IComment):void
22693                 {       //MethodID:2501, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 188
22694                         internal var comment:IComment;                                  //slotID:1
22695                         internal var builder:CommentBuilder;                            //slotID:2
22696                         internal var name:String;                                       //slotID:3
22697                         internal var lockedComment:_LockedCommentContainer;             //slotID:4
22698                         internal var posted:IComment;                                   //slotID:5
22699
22700                         name = null;
22701                         lockedComment = null;
22702                         comment = hug1;
22703
22704                         if(!this._lockedCommentEnabled) throw new IllegalOperationError("LockedComment.post: has not locked.");
22705
22706                         builder = new CommentBuilder(comment);
22707
22708                         if(comment.justPosted == false){
22709                                 builder.justPosted = true;
22710                                 comment = builder.make();
22711                         }
22712
22713                         name = comment.commentList.name;
22714
22715                         onCommentPost.apply(comment, name);
22716
22717                         lockedComment = this._lockedList[name];
22718                         posted = lockedComment.push(comment);
22719
22720                         ObjectUtils.callLater(function():void{  //MethodID:2500, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 101
22721                                 SystemMessage.instance.informln(__MSG__("コメントの投稿に成功"));
22722
22723                                 var hug1:Array = lockedComment.list.concat();
22724
22725                                 onCommentListUpdated.apply(hug1, [], true, name);
22726
22727                                 if(name == _mainName) onCommentCountUpdated.apply(lockedComment.lastResNumber);
22728                         });
22729                 }
22730
22731                 internal function filterDeleteComment(hug1:Array, hug2:String):Array
22732                 {       //MethodID:2502, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 49
22733                         if(!this._isEditMode) throw new IllegalOperationError("LockedComment.filterDeleteComment: Can't use excluding the edit mode.");
22734
22735                         if(!this._lockedCommentEnabled) return hug1;
22736
22737                         return (this._lockedList[hug2] as _LockedCommentContainer).filterDeleteComment(hug1);
22738                 }
22739
22740                 internal function getLockedList(hug1:String):Array
22741                 {       //MethodID:2503, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 38
22742                         if(!this._lockedList.hasOwnProperty(hug1)) return [];
22743
22744                         return (this._lockedList[hug1] as _LockedCommentContainer).lockedList.concat();
22745                 }
22746
22747                 internal function saveLockedComment():void
22748                 {       //MethodID:2504, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 45
22749                         var hug1:_LockedCommentContainer = null;
22750
22751                         for each(hug1 in this._lockedList){
22752                                 hug1.updateSO();
22753                         }
22754                 }
22755
22756                 internal function convertOriginalResNo(hug1:String, hug2:Array):Array
22757                 {       //MethodID:2505, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 30
22758                         if(!this._lockedCommentEnabled) return hug2;
22759
22760                         return (this._lockedList[hug1] as _LockedCommentContainer).convertOriginalResNo(hug2);
22761                 }
22762
22763                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
22764                 {       //MethodID:2506, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 138
22765                         if(!this._lockedCommentEnabled) return EventResult.THROUGH;
22766
22767                         if((hug4 != this._mainName) && (hug4 != CommentConstants.CL_NICOS)) return EventResult.THROUGH;
22768
22769                         var hug5:_LockedCommentContainer = (this._lockedList[hug4] as _LockedCommentContainer);
22770                         var hug6:EventResult = hug5.updateList(hug1, hug2, hug3);
22771
22772                         this._updateLockedEnabled();
22773
22774                         if((hug4 == this._mainName) && hug5.hasLocked) onCommentCountUpdated.apply(hug5.lastResNumber);
22775
22776                         return hug6;
22777                 }
22778
22779                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentCountUpdated(hug1:Number):EventResult
22780                 {       //MethodID:2507, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 37
22781                         if(!this._lockedCommentEnabled) return EventResult.THROUGH;
22782
22783                         return (this._lockedList[this._mainName] as _LockedCommentContainer).updateCount(hug1);
22784                 }
22785         }
22786 }
22787
22788 import com.adobe.crypto.SHA1
22789 import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
22790 import jp.nicovideo.nicoplayer.models.comment.CommentDeleteStatus
22791 import jp.nicovideo.nicoplayer.models.comment.CommentListUtils
22792 import jp.nicovideo.nicoplayer.models.comment.IComment
22793 import jp.nicovideo.util.ArrayUtils
22794 import jp.nicovideo.util.CrossSharedObject
22795 import jp.nicovideo.util.TimeUtils
22796 import jp.nicovideo.util.events.EventResult
22797 import jp.nicovideo.util.storage.LocalStorage
22798
22799 use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
22800
22801 //■class(instance)_index:181
22802 //private
22803 class _LockedCommentContainer extends Object
22804 {
22805         //static constructor
22806         public static function _LockedCommentContainer$cinit()
22807         {       //MethodID:2475, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
22808         }
22809
22810         //constructor
22811         public function _LockedCommentContainer(hug1:String, hug2:String)
22812         {       //MethodID:2476, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 216
22813                 var hug3:Object = null;
22814                 var hug4:IComment = null;
22815                 var hug5:CommentBuilder = null;
22816                 this._originals = [];
22817                 this._list = [];
22818                 this._lockedList = [];
22819                 this._originalResNoList = [];
22820
22821                 super();
22822
22823                 this._threadID = hug1;
22824                 this._name = hug2;
22825
22826                 if((this._so.data[hug1] != null) && (this._so.data[hug1][hug2] != null)){
22827                         for each(hug3 in this._so.data[hug1][hug2]){
22828                                 hug4 = CommentBuilder.unsimplify(hug3);
22829
22830                                 if(hug4.justPosted){
22831                                         hug5 = new CommentBuilder(hug4);
22832                                         hug5.justPosted = false;
22833                                         hug4 = hug5.make();
22834                                 }
22835
22836                                 this._lockedList.push(hug4);
22837                         }
22838
22839                         this._hasLocked = (this._lockedList.length > 0);
22840                 }
22841         }
22842
22843         //variables/etc.
22844         private var _SO_NAME:String = "jp.nicovideo.nicoplayer.models.filter.LockedComment";//slotID:0
22845         private var _threadID:String;                                   //slotID:0
22846         private var _name:String;                                       //slotID:0
22847         private var _originals:Array;                                   //slotID:0
22848         private var _list:Array;                                        //slotID:0
22849         private var _lockedList:Array;                                  //slotID:0
22850         private var _hasLocked:Boolean = false;                         //slotID:0
22851         private var _lastResNumber:Number = 0.0;                        //slotID:0
22852         private var _originalResNoList:Array;                           //slotID:0
22853
22854         private function get _so():LocalStorage
22855         {       //MethodID:2477, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 17
22856                 return CrossSharedObject.getStorage(this._SO_NAME, "/");
22857         }
22858
22859         private function _merge(hug1:Array, hug2:Array):Array
22860         {       //MethodID:2479, LocalCount= 7 , MaxScope= 2, MaxStack= 5, CodeLength= 500
22861                 private var left:Array;                                         //slotID:1
22862                 private var right:Array;                                        //slotID:2
22863                 private var bufLeft:Array;                                      //slotID:3
22864                 private var bufLen:Number;                                      //slotID:4
22865                 private var resNo:Number;                                       //slotID:5
22866                 private var i:uint;                                             //slotID:6
22867                 private var j:uint;                                             //slotID:7
22868                 private var original:IComment;                                  //slotID:8
22869                 private var c:IComment;                                         //slotID:9
22870                 private var b:CommentBuilder;                                   //slotID:10
22871
22872                 j = 0;
22873                 original = null;
22874                 c = null;
22875                 b = null;
22876                 left = hug1;
22877                 right = hug2;
22878
22879                 if(left.length == 0){
22880                         this._lastResNumber = IComment(right[right.length - 1]).resNo;
22881                         return right;
22882                 }
22883
22884                 bufLeft = left.concat();
22885
22886                 if(right.length == 0){
22887                         j = 0;
22888                         this._originalResNoList = [];
22889
22890                         for each(original in bufLeft){
22891                                 this._originalResNoList[j++] = original.resNo;
22892                         }
22893
22894                         return bufLeft;
22895                 }
22896
22897                 if(right.length > 0){
22898                         ArrayUtils.add(function(hug1:IComment, hug2:IComment):Number{   //MethodID:2478, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 44
22899                                 var hug3:Number = (hug1.date.time - hug2.date.time);
22900
22901                                 if(hug3 != 0) return hug3;
22902
22903                                 if(_isLockedComment(hug1)) return -1;
22904
22905                                 return 1;
22906                         }, bufLeft, right);
22907                 }
22908
22909                 bufLen = bufLeft.length;
22910                 resNo = bufLeft[0].resNo;
22911                 i = 1;
22912
22913                 while(i < bufLen){
22914                         c = bufLeft[i];
22915
22916                         if(c.resNo <= resNo){
22917                                 b = new CommentBuilder(c);
22918                                 resNo += 1;
22919                                 b.resNo = (resNo + 1);
22920                                 bufLeft[i] = b.make();
22921
22922                                 if(this._isLockedComment(c)) this._lockedList[this._lockedList.indexOf(c)] = bufLeft[i];
22923                         }else{
22924                                 resNo = c.resNo;
22925                         }
22926
22927                         this._originalResNoList[i] = (this._isLockedComment(c) ? NaN : c.resNo);
22928                         i += 1;
22929                 }
22930
22931                 this._lastResNumber = resNo;
22932                 return bufLeft;
22933         }
22934
22935         public function get name():String
22936         {       //MethodID:2480, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22937                 return this._name;
22938         }
22939
22940         public function get hasLocked():Boolean
22941         {       //MethodID:2481, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22942                 return this._hasLocked;
22943         }
22944
22945         public function get lastResNumber():Number
22946         {       //MethodID:2482, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
22947                 return this._lastResNumber;
22948         }
22949
22950         public function push(hug1:IComment):IComment
22951         {       //MethodID:2483, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 236
22952                 var hug2:CommentBuilder = new CommentBuilder(hug1);
22953
22954                 if(hug1.anonymity) hug2.userID = this._createAnonymityID(hug1.userID);
22955
22956                 if(hug1.date == null) hug2.date = TimeUtils.now();
22957
22958                 this.resNo = (++this._lastResNumber);
22959
22960                 if(!this._hasLocked){
22961                         this._so.data[this._threadID] = {};
22962                         this._hasLocked = true;
22963                 }
22964
22965                 if(this._so.data[this._threadID][this._name] == null) this._so.data[this._threadID][this._name] = [];
22966
22967                 var hug3:IComment = hug2.make();
22968
22969                 this._lockedList.push(hug3);
22970                 this._so.data[this._threadID][this._name].push(CommentBuilder.simplify(hug3));
22971                 this._so.flush();
22972
22973                 this._list = this._merge(this._originals, this._lockedList);
22974                 return hug3;
22975         }
22976
22977         private function _createAnonymityID(hug1:String):String
22978         {       //MethodID:2484, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 20
22979                 return SHA1.hash(this._threadID + "." + hug1);
22980         }
22981
22982         public function updateList(hug1:Array, hug2:Array, hug3:Boolean):EventResult
22983         {       //MethodID:2485, LocalCount= 10 , MaxScope= 1, MaxStack= 6, CodeLength= 339
22984                 var hug4:IComment = null;
22985                 var hug5:Number = NaN;
22986                 var hug6:Array = null;
22987                 var hug7:IComment = null;
22988                 this._originals = CommentListUtils.update(this._originals, hug1, hug2, hug3);
22989
22990                 if(!this._hasLocked){
22991                         if(this._originals.length > 0){
22992                                 this._lastResNumber = this._originals[this._originals.length - 1].resNo;
22993                                 this._list = [];
22994                                 this._originalResNoList = [];
22995
22996                                 for each(hug4 in this._originals){
22997                                         this._list.push(hug4);
22998                                         this._originalResNoList.push(hug4.resNo);
22999                                 }
23000                         }
23001
23002                         return EventResult.THROUGH;
23003                 }
23004
23005                 if(this._originals.length > 100){
23006                         hug5 = this._originals[0].date.time;
23007                         hug6 = this._lockedList.concat();
23008                         this._lockedList = [];
23009
23010                         for each(hug7 in hug6){
23011                                 if((hug7.date != null) && (hug7.date.time > hug5)) this._lockedList.push(hug7);
23012                         }
23013                 }
23014
23015                 this._list = this._merge(this._originals, this._lockedList);
23016
23017                 if(this._lockedList.length == 0) this._hasLocked = false;
23018                 this.updateSO();
23019
23020                 return EventResult.replace([this._list, [], true, this.name]);
23021         }
23022
23023         public function updateSO():void
23024         {       //MethodID:2486, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 123
23025                 var hug2:IComment = null;
23026                 var hug3:LocalStorage = null;
23027                 var hug1:Array = [];
23028
23029                 for each(hug2 in this._lockedList){
23030                         hug1.push(CommentBuilder.simplify(hug2));
23031                 }
23032
23033                 hug3 = this._so;
23034
23035                 if(!hug3.data[this._threadID]) hug3.data[this._threadID] = {};
23036
23037                 hug3.data[this._threadID][this.name] = hug1;
23038
23039                 hug3.flush();
23040         }
23041
23042         public function updateCount(hug1:Number):EventResult
23043         {       //MethodID:2487, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 43
23044                 if(!this._hasLocked || (this._lastResNumber < 0)) return EventResult.THROUGH;
23045
23046                 return EventResult.replace([this._lastResNumber]);
23047         }
23048
23049         public function get list():Array
23050         {       //MethodID:2488, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23051                 return this._list;
23052         }
23053
23054         public function get lockedList():Array
23055         {       //MethodID:2489, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23056                 return this._lockedList;
23057         }
23058
23059         public function filterDeleteComment(hug1:Array):Array
23060         {       //MethodID:2491, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 210
23061                 private var deletes:Array;                                      //slotID:1
23062                 private var ret:Array;                                          //slotID:2
23063                 private var len:Number;                                         //slotID:3
23064                 private var i:uint;                                             //slotID:4
23065                 private var updateDelete:Function;                              //slotID:5
23066                 private var comment:IComment;                                   //slotID:6
23067
23068                 comment = null;
23069                 deletes = hug1;
23070                 updateDelete = function(hug1:IComment, hug2:int):void{  //MethodID:2490, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 59
23071                         var hug3:CommentBuilder = new CommentBuilder(hug1);
23072                         hug3.deleted = hug2;
23073                         var hug4:IComment = hug3.make();
23074                         _list[_list.indexOf(hug1)] = hug4;
23075                         _lockedList[_lockedList.indexOf(hug1)] = hug4;
23076                 };
23077
23078                 ret = [];
23079                 len = this._list.length;
23080                 i = 0;
23081
23082                 while(i < len){
23083                         comment = this._list[i];
23084
23085                         if(deletes.indexOf(comment.resNo) != (-1)){
23086                                 if(!this._isLockedComment(comment)){
23087                                         ret.push(comment.resNo);
23088                                 }else{
23089                                         updateDelete(comment, CommentDeleteStatus.OWNER);
23090                                 }
23091                         }else if(this._isLockedComment(comment)){
23092                                 updateDelete(comment, CommentDeleteStatus.NON);
23093                         }
23094
23095                         i += 1;
23096                 }
23097
23098                 return ret;
23099         }
23100
23101         public function convertOriginalResNo(hug1:Array):Array
23102         {       //MethodID:2492, LocalCount= 7 , MaxScope= 1, MaxStack= 2, CodeLength= 120
23103                 var hug5:IComment = null;
23104                 var hug6:Number = NaN;
23105                 var hug2:Array = [];
23106                 var hug3:Number = this._list.length;
23107                 var hug4:int = 0;
23108
23109                 while(hug4 < hug3){
23110                         hug5 = this._list[hug4];
23111
23112                         if(hug1.indexOf(hug5.resNo) == (-1)){
23113                         }else{
23114                                 hug6 = this._originalResNoList[hug4];
23115
23116                                 if(isNaN(hug6)) throw new Error("LockedComment.convertOriginalResNo: invalid resNo of _originalResNoList.");
23117                                 hug2.push(hug6);
23118                         }
23119
23120                         hug4++;
23121                 }
23122
23123                 return hug2;
23124         }
23125
23126         private function _isLockedComment(hug1:IComment):Boolean
23127         {       //MethodID:2493, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
23128                 return (this._lockedList.indexOf(hug1) != (-1));
23129         }
23130
23131         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get originals():Array
23132         {       //MethodID:2494, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23133                 return this._originals;
23134         }
23135
23136         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get lockedList():Array
23137         {       //MethodID:2495, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23138                 return this._lockedList;
23139         }
23140 }
23141
23142 //■script152■
23143
23144 package jp.nicovideo.util.events{
23145
23146         //■class(instance)_index:183
23147         public class EventSequence extends Object
23148         {
23149                 //static constructor
23150                 public static function EventSequence$cinit()
23151                 {       //MethodID:2509, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
23152                         __current = null;
23153                 }
23154
23155                 //static variables/etc.
23156                 private static var __current:EventSequence = null;              //slotID:1
23157
23158                 public static function get current():EventSequence
23159                 {       //dispID:3, MethodID:2510, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
23160                         if(!__current) throw new Error("EventSequence.get current: __current is null.");
23161
23162                         return __current;
23163                 }
23164
23165                 public static function bind(hug1:Function):*
23166                 {       //dispID:4, MethodID:2511, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
23167                         return __current.bind(hug1);
23168                 }
23169
23170                 //constructor
23171                 public function EventSequence(hug1:Object=null)
23172                 {       //MethodID:2512, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 23
23173                         this.__events = [];
23174                         this.__userData = {};
23175
23176                         super();
23177
23178                         this.__defaultReceiver = hug1;
23179                 }
23180
23181                 //variables/etc.
23182                 private var __events:Array;                                     //slotID:0
23183                 private var __userData:Object;                                  //slotID:0
23184                 private var __defaultReceiver:Object = null;                    //slotID:0
23185
23186                 public function get data():Object
23187                 {       //MethodID:2513, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23188                         return this.__userData;
23189                 }
23190
23191                 public function push(... rest):void
23192                 {       //MethodID:2514, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 19
23193                         this.__events.unshift.apply(this.__events, rest);
23194                 }
23195
23196                 public function add(... rest):void
23197                 {       //MethodID:2515, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 19
23198                         this.__events.push.apply(this.__events, rest);
23199                 }
23200
23201                 public function next(... rest):void
23202                 {       //MethodID:2517, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 54
23203                         public var args:Array;                                          //slotID:1
23204                         internal var f:Function;                                        //slotID:2
23205
23206                         f = null;
23207                         internal var args:Object = rest;
23208
23209                         if(0 < this.__events.length){
23210                                 f = this.__events.shift();
23211
23212                                 this.stage(function():void{     //MethodID:2516, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 14
23213                                         f.apply(__defaultReceiver, args);
23214                                 });
23215                         }
23216                 }
23217
23218                 public function stage(hug1:Function):*
23219                 {       //MethodID:2518, LocalCount= 5 , MaxScope= 7, MaxStack= 4, CodeLength= 145
23220                         internal var f:Function;                                        //slotID:1
23221                         internal var tmp:EventSequence;                                 //slotID:2
23222
23223                         f = hug1;
23224
23225                         if(this === __current) return f();
23226
23227                         tmp = __current;
23228                         __current = this;
23229
23230                         try{
23231                                 var hug3:* = f();
23232                                 return hug3;
23233                         }
23234                         finally{
23235                                 __current = tmp;
23236                         }
23237                 }
23238
23239                 public function bind(hug1:Function):*
23240                 {       //MethodID:2521, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 15
23241                         internal var f:Function;                                        //slotID:1
23242
23243                         f = hug1;
23244                         return function(... rest):*{    //MethodID:2520, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
23245                                 public var args:Array;                                          //slotID:1
23246
23247                                 internal var args:Object = rest;
23248                                 return stage(function():*{      //MethodID:2519, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 12
23249                                         return f.apply(null, args);
23250                                 });
23251                         };
23252                 }
23253         }
23254 }
23255
23256 //■script153■
23257
23258 package jp.nicovideo.util.external{
23259
23260         import flash.display.Loader
23261         import flash.display.LoaderInfo
23262         import flash.errors.IllegalOperationError
23263         import flash.events.ErrorEvent
23264         import flash.events.Event
23265         import flash.events.IOErrorEvent
23266         import flash.events.SecurityErrorEvent
23267         import flash.net.URLRequest
23268         import flash.system.LoaderContext
23269
23270         //■class(instance)_index:184
23271         public class JSConnector extends Object
23272         {
23273                 //static constructor
23274                 public static function JSConnector$cinit()
23275                 {       //MethodID:2523, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
23276                         _hasInitialized = false;
23277                 }
23278
23279                 //static variables/etc.
23280                 private static var _hasInitialized:Boolean = false;             //slotID:1
23281                 private static var _connector:_ExternalInterface;               //slotID:2
23282
23283                 public static function get hasInitialized():Boolean
23284                 {       //dispID:3, MethodID:2524, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
23285                         return _hasInitialized;
23286                 }
23287
23288                 public static function init(hug1:URLRequest, hug2:Function):void
23289                 {       //dispID:4, MethodID:2528, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 48
23290                         internal var request:URLRequest;                                //slotID:1
23291                         internal var callback:Function;                                 //slotID:2
23292                         internal var load:Function;                                     //slotID:3
23293
23294                         load = null;
23295                         request = hug1;
23296                         callback = hug2;
23297                         load = function(hug1:Function):void{    //MethodID:2527, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 122
23298                                 internal var func:Function;                                     //slotID:1
23299                                 internal var loader:Loader;                                     //slotID:2
23300                                 internal var info:LoaderInfo;                                   //slotID:3
23301                                 internal var onErrorOccured:Function;                           //slotID:4
23302
23303                                 onErrorOccured = null;
23304                                 func = hug1;
23305                                 onErrorOccured = function(hug1:ErrorEvent):void{        //MethodID:2525, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
23306                                         func(null);
23307                                 };
23308
23309                                 loader = new Loader();
23310                                 info = loader.contentLoaderInfo;
23311
23312                                 info.addEventListener(Event.INIT, function(hug1:Event):void{    //MethodID:2526, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 16
23313                                         func(hug1.target.content);
23314                                 });
23315                                 info.addEventListener(IOErrorEvent.IO_ERROR, onErrorOccured);
23316                                 info.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorOccured);
23317                                 loader.load(request, new LoaderContext());
23318                         };
23319
23320                         initByFunc(load, callback);
23321                 }
23322
23323                 public static function initByFunc(hug1:Function, hug2:Function):void
23324                 {       //dispID:5, MethodID:2530, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 79
23325                         internal var load:Function;                                     //slotID:1
23326                         internal var callback:Function;                                 //slotID:2
23327
23328                         load = hug1;
23329                         callback = hug2;
23330
23331                         if(hasInitialized) throw new IllegalOperationError("JSConnector.init: It has initialized already.");
23332
23333                         if((load == null) || (callback == null)) throw new ArgumentError("JSConnector.init: has invalid parameters.");
23334                         load(function(hug1:*):void{     //MethodID:2529, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 70
23335                                 internal var content:*;                                         //slotID:1
23336
23337                                 content = hug1;
23338
23339                                 try{
23340                                         _connector = new _ExternalInterface(content);
23341                                 }
23342                                 catch(error:ArgumentError){
23343                                         callback(false);
23344                                 }
23345
23346                                 _hasInitialized = true;
23347
23348                                 callback(true);
23349                         });
23350                 }
23351
23352                 public static function get available():Boolean
23353                 {       //dispID:6, MethodID:2531, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
23354                         if(_connector == null) return false;
23355
23356                         return _connector.available;
23357                 }
23358
23359                 public static function call(hug1:String, ...rest):*
23360                 {       //dispID:7, MethodID:2532, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 22
23361                         return _connector.call.apply(null, [hug1].concat(rest));
23362                 }
23363
23364                 public static function addCallback(hug1:String, hug2:Function, ...args):void
23365                 {       //dispID:8, MethodID:2533, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 15
23366                         _connector.addCallback.apply(null, args);
23367                 }
23368
23369                 public static function get objectID():String
23370                 {       //dispID:9, MethodID:2534, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
23371                         return _connector.objectID;
23372                 }
23373
23374                 //constructor
23375                 public function JSConnector()
23376                 {       //MethodID:2535, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
23377                         super();
23378                 }
23379         }
23380 }
23381
23382
23383 //■class(instance)_index:185
23384 //private
23385 class _ExternalInterface extends Object
23386 {
23387         //static constructor
23388         public static function _ExternalInterface$cinit()
23389         {       //MethodID:2536, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
23390         }
23391
23392         //constructor
23393         public function _ExternalInterface(hug1:*)
23394         {       //MethodID:2537, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 50
23395                 super();
23396
23397                 this._available = hug1["available"];
23398                 this._objectID = hug1["objectID"];
23399                 this._addCallback = hug1["addCallback"];
23400                 this._call = hug1["call"];
23401         }
23402
23403         //variables/etc.
23404         private var _available:Boolean;                                 //slotID:0
23405         private var _objectID:String;                                   //slotID:0
23406         private var _addCallback:Function;                              //slotID:0
23407         private var _call:Function;                                     //slotID:0
23408
23409         public function get available():Boolean
23410         {       //MethodID:2538, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23411                 return this._available;
23412         }
23413
23414         public function get objectID():String
23415         {       //MethodID:2539, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23416                 return this._objectID;
23417         }
23418
23419         public function addCallback(hug1:String, hug2:Function):void
23420         {       //MethodID:2540, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 16
23421                 this._addCallback.apply(null, [hug1, hug2]);
23422         }
23423
23424         public function call(hug1:String, ...rest):*
23425         {       //MethodID:2541, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 20
23426                 return this._call.apply(null, [hug1].concat(rest));
23427         }
23428 }
23429
23430 //■script154■
23431
23432 package jp.nicovideo.nicoplayer.models.log{
23433
23434         import __AS3__.vec.Vector
23435         import flash.display.Sprite
23436         import jp.nicovideo.nicoplayer.config.NicoConfig
23437         import jp.nicovideo.nicoplayer.models.IPlayerConfig
23438         import jp.nicovideo.nicoplayer.models.PlayerInfo
23439         import jp.nicovideo.nicoplayer.models.api.IGetFLV
23440         import jp.nicovideo.nicoplayer.models.api.IInitializeInfo
23441         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
23442         import jp.nicovideo.nicoplayer.models.log.elements.ILogElement
23443         import jp.nicovideo.nicoplayer.models.video.VideoWrapper
23444         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
23445
23446         //■class(instance)_index:186
23447         public interface ILogManager
23448         {
23449                 //static constructor
23450                 public static function ILogManager$cinit()
23451                 {       //MethodID:2543, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
23452                 }
23453
23454                 //variables/etc.
23455                 function initialize(hug1:IInitializeInfo, hug2:NicoConfig, hug3:NicoFlashVars, hug4:IGetFLV, hug5:IPlayerConfig, hug6:PlayerInfo, hug7:Sprite, hug8:Boolean, hug9:VideoWrapper, hug10:Sprite, hug11:Boolean, hug12:IVideoenderTesterConfig):void;//MethodID:2544, dispID:0
23456
23457                 function getLogElement(hug1:String):ILogElement;                            //MethodID:2545, dispID:0
23458
23459                 function addLogElement(hug1:ILogElement):Boolean;                           //MethodID:2546, dispID:0
23460
23461                 function contains(hug1:String):Boolean;                                     //MethodID:2547, dispID:0
23462
23463                 function send(hug1:Number=0.0):void;                                        //MethodID:2548, dispID:0
23464
23465                 function get sendableLogs():Vector.<ILogElement>;                           //MethodID:2549, dispID:0
23466
23467                 function get logs():Vector.<ILogElement>;                                   //MethodID:2550, dispID:0
23468
23469                 function get observer():ILogEventObservable;                                //MethodID:2551, dispID:0
23470
23471                 //constructor
23472                 public function ILogManager();                                              //MethodID:2552, dispID:0
23473         }
23474 }
23475
23476 //■script155■
23477
23478 package jp.nicovideo.nicoplayer.models.log{
23479
23480         import __AS3__.vec.Vector
23481         import flash.display.Sprite
23482         import flash.events.Event
23483         import flash.events.EventDispatcher
23484         import flash.events.IOErrorEvent
23485         import flash.events.SecurityErrorEvent
23486         import flash.events.TimerEvent
23487         import flash.net.URLLoader
23488         import flash.net.URLRequest
23489         import flash.net.URLRequestMethod
23490         import flash.net.URLVariables
23491         import flash.utils.Dictionary
23492         import flash.utils.Timer
23493         import jp.nicovideo.nicoplayer.config.NicoConfig
23494         import jp.nicovideo.nicoplayer.models.IPlayerConfig
23495         import jp.nicovideo.nicoplayer.models.PlayerInfo
23496         import jp.nicovideo.nicoplayer.models.api.IGetFLV
23497         import jp.nicovideo.nicoplayer.models.api.IInitializeInfo
23498         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
23499         import jp.nicovideo.nicoplayer.models.log.elements.CapabilitiesLog
23500         import jp.nicovideo.nicoplayer.models.log.elements.ILogElement
23501         import jp.nicovideo.nicoplayer.models.log.elements.LoadingFailLog
23502         import jp.nicovideo.nicoplayer.models.log.elements.NonSharedObjectCountLog
23503         import jp.nicovideo.nicoplayer.models.log.elements.PlayStats
23504         import jp.nicovideo.nicoplayer.models.log.elements.PlayerIdleLog
23505         import jp.nicovideo.nicoplayer.models.log.elements.Playlen
23506         import jp.nicovideo.nicoplayer.models.log.elements.PremiumLeadOnSliderLog
23507         import jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog
23508         import jp.nicovideo.nicoplayer.models.log.events.LogEvent
23509         import jp.nicovideo.nicoplayer.models.video.VideoWrapper
23510         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
23511         import jp.nicovideo.util.CrossSharedObject
23512         import jp.nicovideo.util.storage.LocalStorage
23513
23514         //■class(instance)_index:188
23515         public class LogManager extends EventDispatcher implements ILogManager
23516         {
23517                 //static constructor
23518                 public static function LogManager$cinit()
23519                 {       //MethodID:2558, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 60
23520                         DEFAULT_SEND_SLEEP_TIME = 3000;
23521                         SO_NAME_LOG_MANAGER = "jp.nicovideo.nicoplayer.models.log.LogManager";
23522                         ROOT_XML_TEMPLATE = new XML("<player_log/>");
23523                         LOGS_XML_TEMPLATE = new XML("<logs/>");
23524                         LOG_XML_TEMPLATE = new XML("<log name=''/>");
23525                 }
23526
23527                 //static variables/etc.
23528                 public static const DEFAULT_SEND_SLEEP_TIME:Number = 3000.0;    //slotID:1
23529                 public static const SO_NAME_LOG_MANAGER:String = "jp.nicovideo.nicoplayer.models.log.LogManager";//slotID:2
23530                 public static const ROOT_XML_TEMPLATE:XML;                      //slotID:3
23531                 public static const LOGS_XML_TEMPLATE:XML;                      //slotID:4
23532                 public static const LOG_XML_TEMPLATE:XML;                       //slotID:5
23533
23534                 //constructor
23535                 public function LogManager(hug1:Boolean)
23536                 {       //MethodID:2565, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 410
23537                         internal var isNoSharedObject:Boolean;                          //slotID:1
23538                         internal var getStorage:Function;                               //slotID:2
23539
23540                         getStorage = null;
23541                         isNoSharedObject = hug1;
23542
23543                         super();
23544
23545                         getStorage = function(hug1:String):LocalStorage{        //MethodID:2559, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
23546                                 return CrossSharedObject.getStorage((SO_NAME_LOG_MANAGER + "." + hug1), "/");
23547                         };
23548
23549                         this._isNoSharedObject = isNoSharedObject;
23550                         this._logs = new Vector.<ILogElement>();
23551                         this._dictionary = new Dictionary();
23552                         this._loader = new URLLoader();
23553
23554                         this._loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{        //MethodID:2560, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
23555                                 _onSendFinished(true);
23556                         });
23557                         this._loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:Event):void{ //MethodID:2561, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
23558                                 _onSendFinished(false);
23559                         });
23560                         this._loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:Event):void{     //MethodID:2562, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
23561                                 _onSendFinished(false);
23562                         });
23563
23564                         this._sleepTimer = new Timer(DEFAULT_SEND_SLEEP_TIME, 1);
23565
23566                         this._sleepTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{     //MethodID:2563, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
23567                                 _send_0();
23568                         });
23569
23570                         if(this._isNoSharedObject){
23571                                 this._nonSharedObjectLog = new NonSharedObjectCountLog(getStorage);
23572
23573                                 this.addLogElement(this._nonSharedObjectLog);
23574                         }else{
23575                                 this._playlen = new Playlen();
23576                                 this._playstats = new PlayStats(getStorage);
23577
23578                                 this.addLogElement(this._playstats);
23579
23580                                 this._playerIdleLog = new PlayerIdleLog(getStorage);
23581
23582                                 this.addLogElement(this._playerIdleLog);
23583
23584                                 this._loadingFailLog = new LoadingFailLog(getStorage);
23585
23586                                 this.addLogElement(this._loadingFailLog);
23587
23588                                 this._premiumLeadOnSliderLog = new PremiumLeadOnSliderLog(getStorage);
23589
23590                                 this.addLogElement(this._premiumLeadOnSliderLog);
23591
23592                                 this._capabilitiesLog = new CapabilitiesLog(getStorage);
23593
23594                                 this.addLogElement(this._capabilitiesLog);
23595
23596                                 this._videoenderLog = new VideoenderLog(getStorage);
23597
23598                                 this.addLogElement(this._videoenderLog);
23599                                 this._logs.forEach(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):void{        //MethodID:2564, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 37
23600                                         if((hug1.sendType == LogElementSendType.PLAYER_START_UP) && (hug1.logObjects.length > 0)) hug1.isSendable = true;
23601                                 });
23602                         }
23603
23604                         this._observer = LogEventObserverFactory.create((this._isNoSharedObject ? null : this.getLogElement), (this._isNoSharedObject ? null : this._playlen));
23605                 }
23606
23607                 //variables/etc.
23608                 private var _apiURL:String;                                     //slotID:0
23609                 private var _logs:Vector.<ILogElement>;                         //slotID:0
23610                 private var _sentLogs:Vector.<ILogElement>;                     //slotID:0
23611                 private var _dictionary:Dictionary;                             //slotID:0
23612                 private var _observer:ILogEventObservable;                      //slotID:0
23613                 private var _sleepTimer:Timer;                                  //slotID:0
23614                 private var _loader:URLLoader;                                  //slotID:0
23615                 private var _nonSharedObjectLog:NonSharedObjectCountLog;        //slotID:0
23616                 private var _playlen:Playlen;                                   //slotID:0
23617                 private var _playstats:PlayStats;                               //slotID:0
23618                 private var _playerIdleLog:PlayerIdleLog;                       //slotID:0
23619                 private var _loadingFailLog:LoadingFailLog;                     //slotID:0
23620                 private var _premiumLeadOnSliderLog:PremiumLeadOnSliderLog;     //slotID:0
23621                 private var _capabilitiesLog:CapabilitiesLog;                   //slotID:0
23622                 private var _videoenderLog:VideoenderLog;                       //slotID:0
23623                 private var _isNoSharedObject:Boolean = false;                  //slotID:0
23624                 private var _isLogSending:Boolean = false;                      //slotID:0
23625                 private var _isSendAfterSending:Boolean = false;                //slotID:0
23626
23627                 public function initialize(hug1:IInitializeInfo, hug2:NicoConfig, hug3:NicoFlashVars, hug4:IGetFLV, hug5:IPlayerConfig, hug6:PlayerInfo, hug7:Sprite, hug8:Boolean, hug9:VideoWrapper, hug10:Sprite, hug11:Boolean, hug12:IVideoenderTesterConfig):void
23628                 {       //MethodID:2567, LocalCount= 14 , MaxScope= 2, MaxStack= 7, CodeLength= 452
23629                         internal var initializeInfo:IInitializeInfo;                    //slotID:1
23630                         internal var config:NicoConfig;                                 //slotID:2
23631                         internal var flashvars:NicoFlashVars;                           //slotID:3
23632                         internal var getFLV:IGetFLV;                                    //slotID:4
23633                         internal var playerConfig:IPlayerConfig;                        //slotID:5
23634                         internal var playerInfo:PlayerInfo;                             //slotID:6
23635                         internal var root:Sprite;                                       //slotID:7
23636                         internal var isThumbwatch:Boolean;                              //slotID:8
23637                         internal var video:VideoWrapper;                                //slotID:9
23638                         internal var rootDisplayObject:Sprite;                          //slotID:10
23639                         internal var isPlaylist:Boolean;                                //slotID:11
23640                         internal var videoenderTesterConfig:IVideoenderTesterConfig;    //slotID:12
23641                         internal var isNoHiroba:Boolean;                                //slotID:13
23642
23643                         initializeInfo = hug1;
23644                         config = hug2;
23645                         flashvars = hug3;
23646                         getFLV = hug4;
23647                         playerConfig = hug5;
23648                         playerInfo = hug6;
23649                         root = hug7;
23650                         isThumbwatch = hug8;
23651                         video = hug9;
23652                         rootDisplayObject = hug10;
23653                         isPlaylist = hug11;
23654                         videoenderTesterConfig = hug12;
23655                         this._apiURL = config.LOGGER_API_URL;
23656                         isNoHiroba = (flashvars.watchFlashVars && flashvars.watchFlashVars.noHiroba);
23657
23658                         _LogEnabledChecker.initialize(config.BASE_URL);
23659
23660                         if(this._isNoSharedObject){
23661                                 this._nonSharedObjectLog.initialize();
23662                         }else{
23663                                 this._playlen.initialize(config.PLAYLEN_API_URL, video, flashvars, initializeInfo, isThumbwatch, rootDisplayObject);
23664                                 this._playstats.initialize(!flashvars.watchFlashVars.noPostPlayStats, getFLV, flashvars, playerInfo, isNoHiroba);
23665                                 this._playerIdleLog.initialize(_LogEnabledChecker.getEnabledByUserID(initializeInfo.userID, this._playerIdleLog.name), flashvars.isChannel, flashvars.communityGlobalID, flashvars.originalVideoID);
23666                                 this._loadingFailLog.initialize(flashvars.watchID, getFLV.videoURL);
23667                                 this._premiumLeadOnSliderLog.initialize(_LogEnabledChecker.getEnabledByUserID(initializeInfo.userID, this._premiumLeadOnSliderLog.name));
23668                                 this._capabilitiesLog.initialize(_LogEnabledChecker.getEnabledByUserID(initializeInfo.userID, this._capabilitiesLog.name));
23669                                 this._videoenderLog.initialize(_LogEnabledChecker.getEnabledByUserID(initializeInfo.userID, this._videoenderLog.name), videoenderTesterConfig);
23670                                 this._logs.forEach(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):void{        //MethodID:2566, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 37
23671                                         if((!isThumbwatch && flashvars.watchFlashVars) && !isPlaylist && videoenderTesterConfig.isTestable || ((hug1.sendType == LogElementSendType.LOG_INITIALIZE) && (hug1.logObjects.length > 0))) hug1.isSendable = true;
23672                                 });
23673                         }
23674
23675                         this.send();
23676                 }
23677
23678                 public function getLogElement(hug1:String):ILogElement
23679                 {       //MethodID:2568, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 35
23680                         if(!this._dictionary.hasOwnProperty(hug1)) throw new Error("LogManager.getLogElement: LogElement not found.");
23681
23682                         return this._dictionary[hug1];
23683                 }
23684
23685                 public function addLogElement(hug1:ILogElement):Boolean
23686                 {       //MethodID:2569, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 55
23687                         if(this.contains(hug1.name)) return false;
23688                         hug1.addEventListener(LogEvent.PREPARED, this._onItemPrepared);
23689                         this._logs.push(hug1);
23690
23691                         this._dictionary[hug1.name] = hug1;
23692                         return true;
23693                 }
23694
23695                 private function _onItemPrepared(hug1:LogEvent):void
23696                 {       //MethodID:2570, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 10
23697                         this.send(0);
23698                 }
23699
23700                 public function contains(hug1:String):Boolean
23701                 {       //MethodID:2571, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
23702                         return this._dictionary.hasOwnProperty(hug1);
23703                 }
23704
23705                 public function send(hug1:Number=3000.0):void
23706                 {       //MethodID:2572, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 94
23707                         if(this._sleepTimer.running) return;
23708
23709                         if((hug1 > 0) && !isNaN(hug1) && isFinite(hug1)){
23710                                 this._sleepTimer.stop();
23711                                 this._sleepTimer.reset();
23712
23713                                 this._sleepTimer.delay = hug1;
23714
23715                                 this._sleepTimer.start();
23716                         }else{
23717                                 this._send_0();
23718                         }
23719                 }
23720
23721                 private function _send_0():void
23722                 {       //MethodID:2573, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 142
23723                         if(this._isLogSending){
23724                                 this._isSendAfterSending = true;
23725                                 return;
23726                         }
23727
23728                         this._isLogSending = true;
23729                         this._sentLogs = this.sendableLogs;
23730
23731                         if(this._sentLogs.length <= 0){
23732                                 this._isLogSending = false;
23733                                 return;
23734                         }
23735
23736                         var hug1:XML = this._createXML(this._sentLogs);
23737
23738                         if(XMLList(hug1.logs.log).length() == 0){
23739                                 this._isLogSending = false;
23740                                 return;
23741                         }
23742
23743                         var hug2:URLVariables = new URLVariables();
23744                         hug2.player_log = hug1.toXMLString();
23745                         var hug3:URLRequest = new URLRequest(this._apiURL);
23746                         hug3.method = URLRequestMethod.POST;
23747                         hug3.data = hug2;
23748
23749                         this._loader.load(hug3);
23750                 }
23751
23752                 private function _onSendFinished(hug1:Boolean):void
23753                 {       //MethodID:2575, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 102
23754                         internal var succeeded:Boolean;                                 //slotID:1
23755
23756                         succeeded = hug1;
23757
23758                         if(succeeded){
23759                                 this._clean(this._sentLogs, true);
23760                                 this._sentLogs.forEach(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):void{    //MethodID:2574, LocalCount= 4 , MaxScope= 0, MaxStack= 1, CodeLength= 6
23761                                         hug1.onLogSent();
23762                                 });
23763
23764                                 this._sentLogs = new Vector.<ILogElement>();
23765                         }
23766
23767                         this._isLogSending = false;
23768
23769                         if(this._isSendAfterSending){
23770                                 this._isSendAfterSending = false;
23771
23772                                 this.send();
23773                         }else{
23774                                 dispatchEvent(new LogEvent(LogEvent.SEND_COMPLETE));
23775                         }
23776                 }
23777
23778                 private function _clean(hug1:Vector.<ILogElement>, hug2:Boolean=false):void
23779                 {       //MethodID:2577, LocalCount= 4 , MaxScope= 2, MaxStack= 2, CodeLength= 28
23780                         internal var target:Vector.<ILogElement>;                       //slotID:1
23781                         internal var isCompel:Boolean = false;                          //slotID:2
23782
23783                         target = hug1;
23784                         isCompel = hug2;
23785
23786                         target.forEach(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):void{    //MethodID:2576, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 25
23787                                 if(hug1.isExpired || isCompel) hug1.clearLocalStorage();
23788                         });
23789                 }
23790
23791                 private function _createXML(hug1:Vector.<ILogElement>):XML
23792                 {       //MethodID:2581, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 81
23793                         internal var vector:Vector.<ILogElement>;                       //slotID:1
23794                         internal var root:XML;                                          //slotID:2
23795                         internal var logs:XML;                                          //slotID:3
23796                         internal var _setXMLElement:Function;                           //slotID:4
23797
23798                         logs = null;
23799                         vector = hug1;
23800                         _setXMLElement = function(hug1:XML, hug2:Object):void{  //MethodID:2578, LocalCount= 6 , MaxScope= 0, MaxStack= 5, CodeLength= 70
23801                                 var hug3:String = null;
23802
23803                                 for(hug3 in hug2){
23804                                         hug1.appendChild(new XML(("<" + hug3 + ">") + hug2[hug3] + "</" + hug3 + ">"));
23805                                 }
23806                         };
23807
23808                         root = ROOT_XML_TEMPLATE.copy();
23809                         logs = LOGS_XML_TEMPLATE.copy();
23810
23811                         root.appendChild(logs);
23812                         vector.forEach(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):void{    //MethodID:2580, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 35
23813                                 internal var item:ILogElement;                                  //slotID:1
23814                                 internal var index:int;                                         //slotID:2
23815                                 internal var vector:Vector.<ILogElement>;                       //slotID:3
23816
23817                                 item = hug1;
23818                                 index = hug2;
23819                                 vector = hug3;
23820
23821                                 item.logObjects.forEach(function(hug1:Object, hug2:int, hug3:Vector.<Object>):void{     //MethodID:2579, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 42
23822                                         var hug4:XML = LOG_XML_TEMPLATE.copy();
23823                                         hug4.@name = item.name;
23824
23825                                         _setXMLElement(hug4, hug1);
23826                                         logs.appendChild(hug4);
23827                                 });
23828                         });
23829
23830                         return root;
23831                 }
23832
23833                 public function get sendableLogs():Vector.<ILogElement>
23834                 {       //MethodID:2583, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 37
23835                         internal var vector:Vector.<ILogElement>;                       //slotID:1
23836
23837                         vector = null;
23838                         vector = this._logs.filter(function(hug1:ILogElement, hug2:int, hug3:Vector.<ILogElement>):Boolean{     //MethodID:2582, LocalCount= 4 , MaxScope= 0, MaxStack= 1, CodeLength= 13
23839                                 if(hug1.isSendable){
23840                                 }
23841
23842                                 return hug1.isSendable;
23843                         });
23844
23845                         return vector;
23846                 }
23847
23848                 public function get logs():Vector.<ILogElement>
23849                 {       //MethodID:2584, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23850                         return this._logs;
23851                 }
23852
23853                 public function get observer():ILogEventObservable
23854                 {       //MethodID:2585, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
23855                         return this._observer;
23856                 }
23857         }
23858 }
23859
23860 import jp.nicovideo.nicoplayer.models.PremiumLeadOnSliderTarget
23861 import jp.nicovideo.nicoplayer.models.log.LogElementName
23862
23863 //■class(instance)_index:187
23864 //private
23865 class _LogEnabledChecker extends Object
23866 {
23867         //static constructor
23868         public static function _LogEnabledChecker$cinit()
23869         {       //MethodID:2554, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
23870                 _isCompel = false;
23871         }
23872
23873         //static variables/etc.
23874         private static var _isCompel:Boolean = false;                   //slotID:1
23875
23876         public static function initialize(hug1:String):void
23877         {       //dispID:3, MethodID:2555, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 57
23878                 var hug2:RegExp = new RegExp("^http:\/\/((?:[\w\-]+\.)*)nicovideo\.jp\/", "ig");
23879                 var hug3:Array = hug2.exec(hug1);
23880
23881                 if(hug3) _isCompel = new RegExp("dev\.").test(hug3[1].toLowerCase());
23882         }
23883
23884         public static function getEnabledByUserID(hug1:String, hug2:String):Boolean
23885         {       //dispID:4, MethodID:2556, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 427
23886                 if(_isCompel) return true;
23887
23888                 var hug3:int = int(hug1);
23889                 var hug4:String = hug2;
23890
23891                 switch(hug4){
23892                 case LogElementName.PREMIUM_LEAD_ON_SLIDER:
23893                         return PremiumLeadOnSliderTarget.isTargetUser(hug1, true);
23894                 case LogElementName.PLAYER_IDLE:
23895                         return ((hug3 % 10) == 1);
23896                 case LogElementName.PLAYLIST_INTERRUPTED:
23897                         return ((hug3 % 10) == 1);
23898                 case LogElementName.VIDEO_MENU:
23899                         return ((hug3 % 10) == 3);
23900                 case LogElementName.LOADING_IDLE:
23901                         return ((hug3 % 10) == 4);
23902                 case LogElementName.COMMENT_UPDATE_COUNT:
23903                         return ((hug3 % 10) == 9);
23904                 case LogElementName.WATCH_RELOAD:
23905                         return ((hug3 % 10) == 9);
23906                 case LogElementName.HIRROBA_CONNECTION_FAIL:
23907                         return ((hug3 % 10) == 9);
23908                 case LogElementName.HIRROBA_DISCONNECTED:
23909                         return ((hug3 % 10) == 9);
23910                 case LogElementName.PLAYER_CONF:
23911                         return ((hug3 % 10) == 9);
23912                 case LogElementName.CAPABILITIES:
23913                         return ((hug3 % 10) == 9);
23914                 case LogElementName.VIDEOENDER:
23915                         return ((hug3 % 20) == 2);
23916                 default:
23917                         throw new ArgumentError("LogManager._LogEnabledChecker.getEnabledByUserID: 指定されたログが見つかりません。", hug2);
23918                         break;
23919                 }
23920         }
23921
23922         //constructor
23923         public function _LogEnabledChecker()
23924         {       //MethodID:2557, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
23925                 super();
23926         }
23927 }
23928
23929 //■script156■
23930
23931 package jp.nicovideo.hiroba{
23932
23933         import flash.display.MovieClip
23934         import jp.nicovideo.hiroba.models.IHirobaMessageServerInfo
23935         import jp.nicovideo.nicoplayer.models.api.IGetChecklist
23936
23937         //■class(instance)_index:189
23938         public interface IHirobaConnectorClient
23939         {
23940                 //static constructor
23941                 public static function IHirobaConnectorClient$cinit()
23942                 {       //MethodID:2587, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
23943                 }
23944
23945                 //variables/etc.
23946                 function get messageServerInfo():IHirobaMessageServerInfo;                  //MethodID:2588, dispID:0
23947
23948                 function get userID():String;                                               //MethodID:2589, dispID:0
23949
23950                 function getPostKey(hug1:Function, hug2:String, hug3:int):void;             //MethodID:2590, dispID:0
23951
23952                 function insertItemOnMarquee(hug1:String, hug2:MovieClip, hug3:Function, hug4:Function, hug5:Number=0.5):void;//MethodID:2591, dispID:0
23953
23954                 function get isLiveAlertEnabled():Boolean;                                  //MethodID:2592, dispID:0
23955
23956                 function get isUneiMessageEnabled():Boolean;                                //MethodID:2593, dispID:0
23957
23958                 function get checkList():IGetChecklist;                                     //MethodID:2594, dispID:0
23959
23960                 //constructor
23961                 public function IHirobaConnectorClient();                                   //MethodID:2595, dispID:0
23962         }
23963 }
23964
23965 //■script157■
23966
23967 package jp.nicovideo.hiroba{
23968
23969         import flash.display.MovieClip
23970         import jp.nicovideo.hiroba.models.IHirobaMessageServerInfo
23971         import jp.nicovideo.nicoplayer.models.api.IGetChecklist
23972         import jp.nicovideo.nicoplayer.models.api.IKeygen
23973
23974         //■class(instance)_index:190
23975         public class HirobaConnectorClient extends Object implements IHirobaConnectorClient
23976         {
23977                 //static constructor
23978                 public static function HirobaConnectorClient$cinit()
23979                 {       //MethodID:2597, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
23980                 }
23981
23982                 //constructor
23983                 public function HirobaConnectorClient(hug1:IHirobaMessageServerInfo, hug2:String, hug3:IKeygen, hug4:Function)
23984                 {       //MethodID:2598, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 27
23985                         super();
23986
23987                         this._messageServerInfo = hug1;
23988                         this._userID = hug2;
23989                         this._keygen = hug3;
23990                         this._getCurrentVolume = hug4;
23991                 }
23992
23993                 //variables/etc.
23994                 private var _messageServerInfo:IHirobaMessageServerInfo;        //slotID:0
23995                 private var _keygen:IKeygen;                                    //slotID:0
23996                 private var _insertItemOnMarquee:Function;                      //slotID:0
23997                 private var _checkList:IGetChecklist;                           //slotID:0
23998                 private var _getCurrentVolume:Function;                         //slotID:0
23999                 private var _userID:String;                                     //slotID:0
24000
24001                 public function get messageServerInfo():IHirobaMessageServerInfo
24002                 {       //MethodID:2599, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
24003                         return this._messageServerInfo;
24004                 }
24005
24006                 public function get userID():String
24007                 {       //MethodID:2600, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
24008                         return this._userID;
24009                 }
24010
24011                 public function getPostKey(hug1:Function, hug2:String, hug3:int, ...args):void
24012                 {       //MethodID:2601, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 17
24013                         this._keygen.getHirobaPostKey.apply(null, args);
24014                 }
24015
24016                 public function set insertItemOnMarquee_0(hug1:Function):void
24017                 {       //MethodID:2602, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
24018                         this._insertItemOnMarquee = hug1;
24019                 }
24020
24021                 public function insertItemOnMarquee(hug1:String, hug2:MovieClip, hug3:Function, hug4:Function, hug5:Number=0.5):void
24022                 {       //MethodID:2603, LocalCount= 6 , MaxScope= 1, MaxStack= 7, CodeLength= 30
24023                         if(this._insertItemOnMarquee == null) return;
24024                         this._insertItemOnMarquee(hug1, hug2, this._getCurrentVolume(), hug3, hug4, hug5);
24025                 }
24026
24027                 public function get checkList():IGetChecklist
24028                 {       //MethodID:2604, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
24029                         return this._checkList;
24030                 }
24031
24032                 public function set checkList(hug1:IGetChecklist):void
24033                 {       //MethodID:2605, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
24034                         this._checkList = hug1;
24035                 }
24036
24037                 public function get isLiveAlertEnabled():Boolean
24038                 {       //MethodID:2606, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
24039                         return true;
24040                 }
24041
24042                 public function get isUneiMessageEnabled():Boolean
24043                 {       //MethodID:2607, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
24044                         return true;
24045                 }
24046         }
24047 }
24048
24049 //■script158■
24050
24051 package jp.nicovideo.nicoplayer.models.video{
24052
24053         //■class(instance)_index:191
24054         public interface IVposWatcher
24055         {
24056                 //static constructor
24057                 public static function IVposWatcher$cinit()
24058                 {       //MethodID:2609, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
24059                 }
24060
24061                 //variables/etc.
24062                 function addWatchPoint(hug1:Function, hug2:Number, hug3:Number=1.0, hug4:Boolean=true):void;//MethodID:2610, dispID:0
24063
24064                 //constructor
24065                 public function IVposWatcher();                                             //MethodID:2611, dispID:0
24066         }
24067 }
24068
24069 //■script159■
24070
24071 package jp.nicovideo.nicoplayer.models.video{
24072
24073         import flash.events.TimerEvent
24074         import flash.utils.Timer
24075         import jp.nicovideo.util.ArrayUtils
24076         import jp.nicovideo.util.events.EventResult
24077
24078         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
24079
24080         //■class(instance)_index:193
24081         public class VposWatcher extends Object implements IVposWatcher
24082         {
24083                 //static constructor
24084                 public static function VposWatcher$cinit()
24085                 {       //MethodID:2615, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
24086                         WATCH_INTERVAL = 400;
24087                 }
24088
24089                 //static variables/etc.
24090                 public static var WATCH_INTERVAL:Number = 400.0;                //slotID:1
24091
24092                 //constructor
24093                 public function VposWatcher(hug1:IVideo)
24094                 {       //MethodID:2617, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 57
24095                         internal var video:IVideo;                                      //slotID:1
24096
24097                         video = hug1;
24098                         this.__watchPoints = [];
24099                         this.__watchTimer = new Timer(WATCH_INTERVAL);
24100
24101                         super();
24102
24103                         this.__video = video;
24104
24105                         this.__watchTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{    //MethodID:2616, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
24106                                 __watch();
24107                         });
24108                 }
24109
24110                 //variables/etc.
24111                 private var __watchPoints:Array;                                //slotID:0
24112                 private var __watchTimer:Timer;                                 //slotID:0
24113                 private var __lastHit:_WatchPoint = null;                       //slotID:0
24114                 private var __video:IVideo;                                     //slotID:0
24115
24116                 public function kill():void
24117                 {       //MethodID:2618, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
24118                         this.__watchTimer.stop();
24119                         this.__watchTimer.reset();
24120
24121                         this.__watchPoints = [];
24122                         this.__lastHit = null;
24123                 }
24124
24125                 public function addWatchPoint(hug1:Function, hug2:Number, hug3:Number=1.0, hug4:Boolean=true):void
24126                 {       //MethodID:2619, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 60
24127                         var hug5:_WatchPoint = new _WatchPoint();
24128                         hug5.f = hug1;
24129                         hug5.vpos = hug2;
24130                         hug5.length = hug3;
24131                         hug5.once = hug4;
24132
24133                         this.__watchPoints.splice((this.__findIndexOfWatchPoint(hug2) + 1), 0, hug5);
24134                 }
24135
24136                 private function __watch():void
24137                 {       //MethodID:2620, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 99
24138                         var hug1:Number = this.__findIndexOfWatchPoint(this.__video.vpos);
24139
24140                         if(hug1 == (-1)) return;
24141
24142                         var hug2:_WatchPoint = this.__watchPoints[hug1];
24143
24144                         if((hug2 !== this.__lastHit) && (hug2.vpos <= this.__video.vpos) && ((hug2.vpos + hug2.length) >= this.__video.vpos)){
24145                                 this.__lastHit = hug2;
24146
24147                                 hug2.f();
24148                         }
24149                 }
24150
24151                 private function __findIndexOfWatchPoint(hug1:Number):int
24152                 {       //MethodID:2622, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 30
24153                         internal var vpos:Number;                                       //slotID:1
24154
24155                         vpos = hug1;
24156                         return ArrayUtils.lowerBoundIndex(function(hug1:Number, hug2:_WatchPoint):Number{       //MethodID:2621, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 7
24157                                 return (hug1 - hug2.vpos);
24158                         }, vpos, this.__watchPoints);
24159                 }
24160
24161                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoSeeked(hug1:Number):EventResult
24162                 {       //MethodID:2623, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 13
24163                         this.__watch();
24164
24165                         return EventResult.THROUGH;
24166                 }
24167
24168                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
24169                 {       //MethodID:2624, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 16
24170                         this.__watchTimer.start();
24171
24172                         return EventResult.THROUGH;
24173                 }
24174
24175                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
24176                 {       //MethodID:2625, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 16
24177                         this.__watchTimer.stop();
24178
24179                         return EventResult.THROUGH;
24180                 }
24181         }
24182 }
24183
24184
24185 //■class(instance)_index:192
24186 //private
24187 class _WatchPoint extends Object
24188 {
24189         //static constructor
24190         public static function _WatchPoint$cinit()
24191         {       //MethodID:2613, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24192         }
24193
24194         //constructor
24195         public function _WatchPoint()
24196         {       //MethodID:2614, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
24197                 super();
24198         }
24199
24200         //variables/etc.
24201         public var f:Function;                                          //slotID:0
24202         public var vpos:Number;                                         //slotID:0
24203         public var length:Number;                                       //slotID:0
24204         public var once:Boolean;                                        //slotID:0
24205 }
24206
24207 //■script160■
24208
24209 package jp.nicovideo.util.events{
24210
24211         import jp.nicovideo.nicoplayer.models.filter.INGComment
24212         import jp.nicovideo.util.ArraySet
24213
24214         //■class(instance)_index:194
24215         public class EventPipe extends Object
24216         {
24217                 //static constructor
24218                 public static function EventPipe$cinit()
24219                 {       //MethodID:2627, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24220                 }
24221
24222                 //static variables/etc.
24223                 public static function dummy():Function
24224                 {       //dispID:3, MethodID:2629, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 10
24225                         return function(hug1:String, hug2:Array):EventResult{   //MethodID:2628, LocalCount= 3 , MaxScope= 0, MaxStack= 1, CodeLength= 6
24226                                 return EventResult.THROUGH;
24227                         };
24228                 }
24229
24230                 public static function castEvent(hug1:*, hug2:String, hug3:Array):EventResult
24231                 {       //dispID:4, MethodID:2630, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 21
24232                         return hug1.apply(null, hug3);
24233                 }
24234
24235                 public static function serial(... rest):EventPipe
24236                 {       //dispID:5, MethodID:2631, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
24237                         return __create(true, rest);
24238                 }
24239
24240                 public static function parallel(... rest):EventPipe
24241                 {       //dispID:6, MethodID:2632, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
24242                         return __create(false, rest);
24243                 }
24244
24245                 public static function switcher(hug1:Function, ...rest):EventPipe
24246                 {       //dispID:7, MethodID:2633, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 4
24247                         return null;
24248                 }
24249
24250                 private static function __create(hug1:Boolean, hug2:Array):EventPipe
24251                 {       //dispID:8, MethodID:2634, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 94
24252                         var hug4:* = undefined;
24253                         var hug3:EventPipe = new (hug1 ? (_SerialPipe) : (_ParallelPipe))();
24254
24255                         for each(hug4 in hug2){
24256                                 hug3.push((hug4 is Array) ? __create(!hug1, hug4) : hug4);
24257                         }
24258
24259                         return hug3;
24260                 }
24261
24262                 //constructor
24263                 public function EventPipe()
24264                 {       //MethodID:2635, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 39
24265                         this._nodesInParent = new ArraySet();
24266
24267                         super();
24268
24269                         this._head = this._tail = new _Node(null, null);
24270                 }
24271
24272                 //variables/etc.
24273                 protected var _nodesInParent:ArraySet;                          //slotID:0
24274                 protected var _head:_Node;                                      //slotID:0
24275                 protected var _tail:_Node;                                      //slotID:0
24276
24277                 public function push(hug1:*):void
24278                 {       //MethodID:2636, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 57
24279                         if((this._tail.instance != null) && (this._tail.instance is INGComment)) return;
24280
24281                         var hug2:_Node = this.__node_0(hug1);
24282                         this._tail.next = hug2;
24283                         this._tail = hug2;
24284                 }
24285
24286                 private function __node_0(hug1:*):_Node
24287                 {       //MethodID:2640, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 154
24288                         internal var instance:*;                                        //slotID:1
24289                         internal var node:_Node;                                        //slotID:2
24290                         internal var names:Array;                                       //slotID:3
24291                         internal var name:String;                                       //slotID:4
24292
24293                         names = null;
24294                         name = null;
24295                         instance = hug1;
24296                         node = new _Node(this, instance);
24297
24298                         if(instance is (EventPipe)){
24299                                 instance._nodesInParent.add(node);
24300                         }else if(instance is EventSender){
24301                                 names = instance.eventNames;
24302
24303                                 for each(name in names){
24304                                         function(hug1:_Node, hug2:String):void{ //MethodID:2639, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 68
24305                                                 internal var node:_Node;                                        //slotID:1
24306                                                 internal var name:String;                                       //slotID:2
24307                                                 internal var sender:*;                                          //slotID:3
24308
24309                                                 sender = undefined;
24310                                                 node = hug1;
24311                                                 name = hug2;
24312                                                 sender = function(... rest):void{       //MethodID:2637, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 19
24313                                                         _cast(node.next, name, rest, true);
24314                                                 };
24315
24316                                                 instance.add(sender);
24317                                                 node.removers.push(function():void{     //MethodID:2638, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 24
24318                                                         instance.remove(sender);
24319                                                 });
24320                                         }.call(null, node, name);
24321                                 }
24322                         }
24323
24324                         return node;
24325                 }
24326
24327                 public function pop(hug1:*):void
24328                 {       //MethodID:2641, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 46
24329                         if((this._tail.instance != null) && (this._tail.instance is INGComment)) this._tail = new _Node(null, null);
24330                 }
24331
24332                 public function replace(hug1:*, hug2:*):void
24333                 {       //MethodID:2643, LocalCount= 4 , MaxScope= 2, MaxStack= 2, CodeLength= 25
24334                         internal var instance:*;                                        //slotID:1
24335                         internal var replacement:*;                                     //slotID:2
24336
24337                         instance = hug1;
24338                         replacement = hug2;
24339
24340                         this.__forEachNode(function(hug1:_Node):Boolean{        //MethodID:2642, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 59
24341                                 if(hug1.next.instance !== instance) return true;
24342                                 remove_0(hug1.next);
24343
24344                                 var hug2:_Node = __node_0(replacement);
24345                                 hug2.next = hug1.next.next;
24346                                 hug1.next = hug2;
24347                                 return false;
24348                         });
24349                 }
24350
24351                 public function remove(hug1:*):void
24352                 {       //MethodID:2645, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 20
24353                         internal var instance:*;                                        //slotID:1
24354
24355                         instance = hug1;
24356
24357                         this.__forEachNode(function(hug1:_Node):Boolean{        //MethodID:2644, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 40
24358                                 if(hug1.next.instance !== instance) return true;
24359                                 remove_0(hug1.next);
24360
24361                                 hug1.next = hug1.next.next;
24362                                 return false;
24363                         });
24364                 }
24365
24366                 public function removeAll():void
24367                 {       //MethodID:2647, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 15
24368                         this.__forEachNode(function(hug1:_Node):Boolean{        //MethodID:2646, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
24369                                 remove_0(hug1);
24370
24371                                 return true;
24372                         });
24373                 }
24374
24375                 public function remove_0(hug1:_Node):void
24376                 {       //MethodID:2648, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 81
24377                         var hug2:Function = null;
24378
24379                         if(hug1.instance is (EventPipe)){
24380                                 this._nodesInParent.remove(hug1);
24381                         }else if(hug1.instance is EventSender){
24382                                 for each(hug2 in hug1.removers){
24383                                         hug2();
24384                                 }
24385                         }
24386                 }
24387
24388                 public function collect():Array
24389                 {       //MethodID:2650, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 34
24390                         internal var a:Array;                                           //slotID:1
24391
24392                         a = null;
24393                         a = [];
24394
24395                         this.__forEachNode(function(hug1:_Node):Boolean{        //MethodID:2649, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 16
24396                                 a.push(hug1.next.instance);
24397
24398                                 return true;
24399                         });
24400
24401                         return a;
24402                 }
24403
24404                 private function __forEachNode(hug1:Function, hug2:_Node=null):void
24405                 {       //MethodID:2651, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 58
24406                         var hug3:_Node = (hug2 || this._head);
24407
24408                         while(hug3.next && hug1(hug3)){
24409                                 hug3 = hug3.next;
24410                         }
24411                 }
24412
24413                 protected function _cast(hug1:_Node, hug2:String, hug3:Array, hug4:Boolean):Object
24414                 {       //MethodID:2652, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 13
24415                         throw new Error("EventPipe._cast: error.");
24416                 }
24417
24418                 public function _cast_self(hug1:String, hug2:Array):Object
24419                 {       //MethodID:2653, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 18
24420                         return this._cast(this._head.next, hug1, hug2, false);
24421                 }
24422
24423                 protected function _castParents(hug1:String, hug2:Array):void
24424                 {       //MethodID:2654, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 59
24425                         var hug3:_Node = null;
24426
24427                         for each(hug3 in this._nodesInParent){
24428                                 hug3.belongs._cast(hug3.next, hug1, hug2, true);
24429                         }
24430                 }
24431         }
24432 }
24433
24434 import jp.nicovideo.util.events.EventPipe
24435 import jp.nicovideo.util.events.EventResult
24436
24437 //■class(instance)_index:195
24438 //private
24439 class _Node extends Object
24440 {
24441         //static constructor
24442         public static function _Node$cinit()
24443         {       //MethodID:2655, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24444         }
24445
24446         //constructor
24447         public function _Node(hug1:EventPipe, hug2:*)
24448         {       //MethodID:2656, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 22
24449                 this.removers = [];
24450
24451                 super();
24452
24453                 this.belongs = hug1;
24454                 this.instance = hug2;
24455         }
24456
24457         //variables/etc.
24458         public var belongs:EventPipe;                                   //slotID:0
24459         public var instance:*;                                          //slotID:0
24460         public var next:_Node;                                          //slotID:0
24461         public var removers:Array;                                      //slotID:0
24462
24463         public function cast(hug1:String, hug2:Array):EventResult
24464         {       //MethodID:2657, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 35
24465                 if(this.instance is Function) return this.instance(hug1, hug2);
24466
24467                 return (EventPipe).castEvent(this.instance, hug1, hug2);
24468         }
24469 }
24470
24471 //■class(instance)_index:196
24472 //private
24473 class _SerialPipe extends EventPipe
24474 {
24475         //static constructor
24476         public static function _SerialPipe$cinit()
24477         {       //MethodID:2658, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24478         }
24479
24480         //variables/etc.
24481         override protected function _cast(hug1:_Node, hug2:String, hug3:Array, hug4:Boolean):Object
24482         {       //MethodID:2659, LocalCount= 8 , MaxScope= 1, MaxStack= 4, CodeLength= 256
24483                 var hug5:Object = null;
24484                 var hug6:EventResult = null;
24485
24486                 while(hug1 != null){
24487                         if(hug1.instance is (EventPipe)){
24488                                 hug5 = hug1.instance._cast_self(hug2, hug3);
24489
24490                                 if(hug5){
24491                                         if(hug5.name) hug2 = hug5.name;
24492
24493                                         if(hug5.args) hug3 = hug5.args;
24494                                 }
24495                         }else{
24496                                 hug6 = hug1.cast(hug2, hug3);
24497                                 var hug7:EventResult = hug6;
24498
24499                                 switch(hug7){
24500                                 case EventResult.THROUGH:
24501                                         hug1 = hug1.next;
24502                                         continue;
24503                                 case EventResult.BREAK:
24504                                         return null;
24505                                 default:
24506                                         break;
24507                                 }
24508
24509                                 if(hug6._replaced != null) hug3 = hug6._replaced;
24510
24511                                 if(hug6._renamed != null) hug2 = hug6._renamed;
24512                         }
24513
24514                         hug1 = hug1.next;
24515                 }
24516
24517                 if(!hug4) return {args:hug3, name:hug2};
24518
24519                 _castParents(hug2, hug3);
24520
24521                 return null;
24522         }
24523
24524         //constructor
24525         public function _SerialPipe()
24526         {       //MethodID:2660, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
24527                 super();
24528         }
24529 }
24530
24531 //■class(instance)_index:197
24532 //private
24533 class _ParallelPipe extends EventPipe
24534 {
24535         //static constructor
24536         public static function _ParallelPipe$cinit()
24537         {       //MethodID:2661, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24538         }
24539
24540         //variables/etc.
24541         override protected function _cast(hug1:_Node, hug2:String, hug3:Array, hug4:Boolean):Object
24542         {       //MethodID:2662, LocalCount= 7 , MaxScope= 1, MaxStack= 3, CodeLength= 140
24543                 var hug5:EventResult = null;
24544
24545                 if(hug4){
24546                         _castParents(hug2, hug3);
24547
24548                         return null;
24549                 }
24550
24551                 while(hug1 != null){
24552                         if(hug1.instance is (EventPipe)){
24553                                 hug1.instance._cast_self(hug2, hug3);
24554                         }else{
24555                                 hug5 = hug1.cast(hug2, hug3);
24556                                 var hug6:EventResult = hug5;
24557
24558                                 switch(hug6){
24559                                 case EventResult.BREAK:
24560                                         return null;
24561                                 default:
24562                                         break;
24563                                 }
24564                         }
24565
24566                         hug1 = hug1.next;
24567                 }
24568
24569                 return null;
24570         }
24571
24572         //constructor
24573         public function _ParallelPipe()
24574         {       //MethodID:2663, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
24575                 super();
24576         }
24577 }
24578
24579 //■script161■
24580
24581 package jp.nicovideo.nicoplayer.views.comment{
24582
24583         import flash.display.DisplayObject
24584
24585         //■class(instance)_index:198
24586         public interface IDisplayObjectProvider
24587         {
24588                 //static constructor
24589                 public static function IDisplayObjectProvider$cinit()
24590                 {       //MethodID:2665, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
24591                 }
24592
24593                 //variables/etc.
24594                 function create():DisplayObject;                                            //MethodID:2666, dispID:0
24595
24596                 function release(hug1:DisplayObject):void;                                  //MethodID:2667, dispID:0
24597
24598                 function assignZ(hug1:DisplayObject, hug2:int):void;                        //MethodID:2668, dispID:0
24599
24600                 //constructor
24601                 public function IDisplayObjectProvider();                                   //MethodID:2669, dispID:0
24602         }
24603 }
24604
24605 //■script162■
24606
24607 package jp.nicovideo.nicoplayer.views.comment{
24608
24609         import jp.nicovideo.nicoplayer.models.comment.CommandConstants
24610         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
24611         import jp.nicovideo.nicoplayer.models.comment.IComment
24612         import jp.nicovideo.nicoscript.INicoSPlayer
24613         import jp.nicovideo.util.ArrayUtils
24614         import jp.nicovideo.util.ZIndexManager
24615         import jp.nicovideo.util.events.EventResult
24616         import jp.nicovideo.util.events.event_receiver
24617
24618         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
24619
24620         //■class(instance)_index:199
24621         public class CommentViewTransformer extends Object
24622         {
24623                 //static constructor
24624                 public static function CommentViewTransformer$cinit()
24625                 {       //MethodID:2671, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24626                 }
24627
24628                 //constructor
24629                 public function CommentViewTransformer(hug1:Object, hug2:CommentLayer, hug3:CommentLayerView, hug4:INicoSPlayer)
24630                 {       //MethodID:2672, LocalCount= 13 , MaxScope= 1, MaxStack= 3, CodeLength= 206
24631                         var hug5:String = null;
24632                         var hug6:_LayerInfo = null;
24633                         var hug7:String = null;
24634                         var hug8:_CommentListInfo = null;
24635                         this._listNameMapping = {};
24636
24637                         super();
24638
24639                         this._commentLayerView = hug3;
24640                         this._nicoSPlayer = hug4;
24641
24642                         for(hug5 in hug1){
24643                                 hug6 = new _LayerInfo();
24644                                 hug6.layerID = hug5;
24645                                 hug6.listNames = hug1[hug5];
24646                                 hug6.container = hug2.getLayer(hug5);
24647                                 hug6.zIndexManager = new ZIndexManager(hug6.container);
24648
24649                                 for each(hug7 in hug1[hug5]){
24650                                         hug8 = new _CommentListInfo();
24651                                         hug8.listName = hug7;
24652                                         hug8.layerInfo = hug6;
24653                                         this._listNameMapping[hug7] = hug8;
24654                                 }
24655                         }
24656                 }
24657
24658                 //variables/etc.
24659                 private var _commentLayerView:CommentLayerView;                 //slotID:0
24660                 private var _listNameMapping:Object;                            //slotID:0
24661                 private var _nicoSPlayer:INicoSPlayer;                          //slotID:0
24662                 private var _isP4Mode:Boolean = false;                          //slotID:0
24663
24664                 public function setP4Mode():void
24665                 {       //MethodID:2673, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 8
24666                         this._isP4Mode = true;
24667                 }
24668
24669                 public function get isP4Mode():Boolean
24670                 {       //MethodID:2674, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
24671                         return this._isP4Mode;
24672                 }
24673
24674                 private function _create_ViewEntry(hug1:_CommentInfo):ViewEntry
24675                 {       //MethodID:2675, LocalCount= 11 , MaxScope= 1, MaxStack= 7, CodeLength= 264
24676                         var hug10:Object = null;
24677                         var hug2:IComment = hug1.comment;
24678                         var hug3:String = hug2.command.posY;
24679                         var hug4:Number = (((hug3 == CommandConstants.PLACE_TOP) || (hug3 == CommandConstants.PLACE_BOTTOM)) ? CommentViewConstants.COMMENT_SHOW_AHEAD_POSY : CommentViewConstants.COMMENT_SHOW_AHEAD);
24680                         var hug5:Number = (hug2.vpos - hug4);
24681                         var hug6:Number = (CommentViewConstants.COMMENT_SHOW_EXPIRE + hug4);
24682
24683                         if(hug2.isOwner){
24684                                 hug10 = new RegExp("(?:^|[\s ])@(\d+)(?:$|[\s ])").exec(hug2.command.command);
24685
24686                                 if(hug10) hug6 = ((Number(hug10[1]) * 1000) + hug4);
24687                         }
24688
24689                         var hug7:Class = (hug2.command.hasButton ? _ClickableCommentProvider : _CommentTextFieldProvider);
24690                         var hug8:_DOProviderTemplate = new hug7(this);
24691                         var hug9:ViewEntry = new ViewEntry(hug5, hug6, hug3, hug8, ((hug2.resNo == 0) ? 0x7FFFFFFF : hug2.resNo), hug2.command.full);
24692                         hug8.commentInfo = hug1;
24693                         hug8.nicoSPlayer = this._nicoSPlayer;
24694                         hug8.ve = hug9;
24695                         return hug9;
24696                 }
24697
24698                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentPost(hug1:IComment, hug2:String):EventResult
24699                 {       //MethodID:2676, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 40
24700                         onCommentListUpdated([hug1], null, false, hug2);
24701
24702                         return EventResult.THROUGH;
24703                 }
24704
24705                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
24706                 {       //MethodID:2681, LocalCount= 6 , MaxScope= 2, MaxStack= 6, CodeLength= 333
24707                         internal var additionals:Array;                                 //slotID:1
24708                         internal var removes:Array;                                     //slotID:2
24709                         internal var clear:Boolean;                                     //slotID:3
24710                         internal var listName:String;                                   //slotID:4
24711                         internal var commentListInfo:_CommentListInfo;                  //slotID:5
24712                         internal var removes_:Array;                                    //slotID:6
24713                         internal var additionals_:Array;                                //slotID:7
24714
24715                         commentListInfo = null;
24716                         removes_ = null;
24717                         additionals_ = null;
24718                         additionals = hug1;
24719                         removes = hug2;
24720                         clear = hug3;
24721                         listName = hug4;
24722                         commentListInfo = this._listNameMapping[listName];
24723                         removes_ = [];
24724
24725                         if(commentListInfo.comments){
24726                                 if(clear){
24727                                         removes_ = commentListInfo.comments.map(function(hug1:_CommentInfo, ...rest):ViewEntry{ //MethodID:2677, LocalCount= 3 , MaxScope= 0, MaxStack= 1, CodeLength= 5
24728                                                 return hug1.viewEntry;
24729                                         });
24730
24731                                         commentListInfo.comments = [];
24732                                 }else if(removes && (removes.length != 0)){
24733                                         ArrayUtils.subtract(function(hug1:_CommentInfo, hug2:IComment):Number{  //MethodID:2678, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 34
24734                                                 var hug3:Number = (hug1.comment.resNo - hug2.resNo);
24735
24736                                                 if(hug3 == 0) removes_.push(hug1.viewEntry);
24737
24738                                                 return hug3;
24739                                         }, commentListInfo.comments, removes);
24740                                 }
24741                         }else{
24742                                 commentListInfo.comments = [];
24743                         }
24744
24745                         additionals_ = [];
24746
24747                         if(additionals && (additionals.length != 0)){
24748                                 commentListInfo.lastRes = Math.max(commentListInfo.lastRes, additionals[additionals.length - 1].resNo);
24749                                 additionals = additionals.map(function(hug1:IComment, ...rest):_CommentInfo{    //MethodID:2679, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 46
24750                                         var hug3:* = new _CommentInfo();
24751                                         hug3.comment = hug1;
24752                                         hug3.commentListInfo = commentListInfo;
24753                                         hug3.viewEntry = _create_ViewEntry(hug3);
24754
24755                                         additionals_.push(hug3.viewEntry);
24756
24757                                         return hug3;
24758                                 });
24759                                 ArrayUtils.add(function(hug1:_CommentInfo, hug2:_CommentInfo):Number{   //MethodID:2680, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 85
24760                                         var hug4:CommentBuilder = null;
24761                                         var hug3:Number = (hug1.comment.resNo - hug2.comment.resNo);
24762
24763                                         if(hug3 == 0){
24764                                                 removes_.push(hug1.viewEntry);
24765
24766                                                 if(hug1.comment.justPosted){
24767                                                         hug4 = new CommentBuilder(hug2.comment);
24768                                                         hug4.justPosted = true;
24769                                                         hug2.comment = hug4.make();
24770                                                 }
24771                                         }
24772
24773                                         return hug3;
24774                                 }, commentListInfo.comments, additionals, true);
24775                         }
24776
24777                         this._commentLayerView.update(commentListInfo.layerInfo.layerID, additionals_, removes_, false);
24778
24779                         return EventResult.THROUGH;
24780                 }
24781         }
24782 }
24783
24784 import flash.display.DisplayObject
24785 import flash.display.DisplayObjectContainer
24786 import flash.text.TextField
24787 import jp.nicovideo.nicoplayer.models.comment.CommentConstants
24788 import jp.nicovideo.nicoplayer.models.comment.IComment
24789 import jp.nicovideo.nicoplayer.views.comment.CommentViewTransformer
24790 import jp.nicovideo.nicoplayer.views.comment.ViewEntry
24791 import jp.nicovideo.nicoplayer.views.comment.elements.ClickableComment
24792 import jp.nicovideo.nicoplayer.views.comment.elements.CommentTextField
24793 import jp.nicovideo.nicoscript.INicoSPlayer
24794 import jp.nicovideo.util.Assert
24795 import jp.nicovideo.util.ObjectPool
24796 import jp.nicovideo.util.ZIndexManager
24797
24798 //■class(instance)_index:200
24799 //private
24800 class _CommentInfo extends Object
24801 {
24802         //static constructor
24803         public static function _CommentInfo$cinit()
24804         {       //MethodID:2682, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24805         }
24806
24807         //constructor
24808         public function _CommentInfo()
24809         {       //MethodID:2683, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
24810                 super();
24811         }
24812
24813         //variables/etc.
24814         public var comment:IComment;                                    //slotID:0
24815         public var commentListInfo:_CommentListInfo;                    //slotID:0
24816         public var viewEntry:ViewEntry;                                 //slotID:0
24817 }
24818
24819 //■class(instance)_index:201
24820 //private
24821 class _CommentListInfo extends Object
24822 {
24823         //static constructor
24824         public static function _CommentListInfo$cinit()
24825         {       //MethodID:2684, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24826         }
24827
24828         //constructor
24829         public function _CommentListInfo()
24830         {       //MethodID:2685, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
24831                 this.comments = [];
24832
24833                 super();
24834         }
24835
24836         //variables/etc.
24837         public var listName:String;                                     //slotID:0
24838         public var layerInfo:_LayerInfo;                                //slotID:0
24839         public var comments:Array;                                      //slotID:0
24840         public var lastRes:int = 0;                                     //slotID:0
24841 }
24842
24843 //■class(instance)_index:202
24844 //private
24845 class _LayerInfo extends Object
24846 {
24847         //static constructor
24848         public static function _LayerInfo$cinit()
24849         {       //MethodID:2686, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24850         }
24851
24852         //constructor
24853         public function _LayerInfo()
24854         {       //MethodID:2689, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 38
24855                 super();
24856
24857                 this.commentTextFieldPool = new ObjectPool(function():CommentTextField{ //MethodID:2687, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
24858                         var hug1:* = new CommentTextField();
24859                         hug1.displayObject.visible = false;
24860                         return hug1;
24861                 });
24862                 this.clickableCommentPool = new ObjectPool(function():*{        //MethodID:2688, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
24863                         var hug1:* = new ClickableComment();
24864                         hug1.displayObject.visible = false;
24865                         return hug1;
24866                 });
24867         }
24868
24869         //variables/etc.
24870         public var listNames:Array;                                     //slotID:0
24871         public var layerID:String;                                      //slotID:0
24872         public var container:DisplayObjectContainer;                    //slotID:0
24873         public var zIndexManager:ZIndexManager;                         //slotID:0
24874         public var commentTextFieldPool:ObjectPool;                     //slotID:0
24875         public var clickableCommentPool:ObjectPool;                     //slotID:0
24876 }
24877
24878 //■class(instance)_index:203
24879 //private
24880 class _DOProviderTemplate extends Object implements IDisplayObjectProvider
24881 {
24882         //static constructor
24883         public static function _DOProviderTemplate$cinit()
24884         {       //MethodID:2690, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24885         }
24886
24887         //constructor
24888         public function _DOProviderTemplate(hug1:CommentViewTransformer)
24889         {       //MethodID:2691, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
24890                 super();
24891
24892                 this.transformer = hug1;
24893         }
24894
24895         //variables/etc.
24896         public var commentInfo:_CommentInfo;                            //slotID:0
24897         public var ve:ViewEntry;                                        //slotID:0
24898         public var nicoSPlayer:INicoSPlayer;                            //slotID:0
24899         public var transformer:CommentViewTransformer;                  //slotID:0
24900
24901         public function create():DisplayObject
24902         {       //MethodID:2692, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 158
24903                 var hug1:IComment = this.__comment;
24904
24905                 if(!hug1 || hug1.command.hasContained("invisible")) return null;
24906
24907                 this.ve.type = hug1.command.posY;
24908                 var hug2:DisplayObject = Object(this)._create_0(hug1);
24909
24910                 if(this.transformer.isP4Mode && this.commentInfo && this.commentInfo.commentListInfo){
24911                         if(this.commentInfo.commentListInfo.listName == CommentConstants.CL_LOCAL){
24912                                 hug2.alpha = 1;
24913
24914                                 if(hug2 is TextField) (hug2 as TextField).border = false;
24915                         }else{
24916                                 hug2.alpha = 0.2;
24917                         }
24918                 }
24919
24920                 return hug2;
24921         }
24922
24923         public function release(hug1:DisplayObject):void
24924         {       //MethodID:2693, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 26
24925                 Object(this)._release_0(hug1);
24926                 this.layerInfo.zIndexManager.remove(hug1);
24927         }
24928
24929         public function assignZ(hug1:DisplayObject, hug2:int):void
24930         {       //MethodID:2694, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 16
24931                 this.layerInfo.zIndexManager.setZIndex(hug1, hug2);
24932         }
24933
24934         public function get layerInfo():_LayerInfo
24935         {       //MethodID:2695, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
24936                 return this.commentInfo.commentListInfo.layerInfo;
24937         }
24938
24939         private function get __comment():IComment
24940         {       //MethodID:2696, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 44
24941                 if(!this.nicoSPlayer) return this.commentInfo.comment;
24942
24943                 return this.nicoSPlayer.replaceComment(this.commentInfo.commentListInfo.listName, this.commentInfo.comment);
24944         }
24945 }
24946
24947 //■class(instance)_index:204
24948 //private
24949 class _CommentTextFieldProvider extends _DOProviderTemplate
24950 {
24951         //static constructor
24952         public static function _CommentTextFieldProvider$cinit()
24953         {       //MethodID:2697, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24954         }
24955
24956         //constructor
24957         public function _CommentTextFieldProvider(hug1:CommentViewTransformer)
24958         {       //MethodID:2698, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 7
24959                 super(hug1);
24960         }
24961
24962         //variables/etc.
24963         private var __commentTextField:CommentTextField;                //slotID:0
24964
24965         public function _create_0(hug1:IComment):DisplayObject
24966         {       //MethodID:2699, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 92
24967                 Assert.assert(!this.__commentTextField);
24968
24969                 this.__commentTextField = layerInfo.commentTextFieldPool.create();
24970
24971                 this.__commentTextField.reset(hug1, ((commentInfo.commentListInfo.listName == CommentConstants.CL_OWNER) ? (-1) : commentInfo.commentListInfo.lastRes));
24972
24973                 this.__commentTextField.displayObject.visible = true;
24974                 return this.__commentTextField.displayObject;
24975         }
24976
24977         public function _release_0(hug1:DisplayObject):void
24978         {       //MethodID:2700, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 61
24979                 Assert.assert(this.__commentTextField && (this.__commentTextField.displayObject === hug1));
24980                 layerInfo.commentTextFieldPool.restore(this.__commentTextField);
24981
24982                 this.__commentTextField.displayObject.visible = false;
24983                 this.__commentTextField = null;
24984         }
24985 }
24986
24987 //■class(instance)_index:205
24988 //private
24989 class _ClickableCommentProvider extends _DOProviderTemplate
24990 {
24991         //static constructor
24992         public static function _ClickableCommentProvider$cinit()
24993         {       //MethodID:2701, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
24994         }
24995
24996         //constructor
24997         public function _ClickableCommentProvider(hug1:CommentViewTransformer)
24998         {       //MethodID:2702, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 7
24999                 super(hug1);
25000         }
25001
25002         //variables/etc.
25003         private var __clickableComment:ClickableComment;                //slotID:0
25004
25005         public function _create_0(hug1:IComment):DisplayObject
25006         {       //MethodID:2703, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 56
25007                 Assert.assert(!this.__clickableComment);
25008
25009                 this.__clickableComment = layerInfo.clickableCommentPool.create();
25010
25011                 this.__clickableComment.reset(hug1);
25012
25013                 this.__clickableComment.displayObject.visible = true;
25014                 return this.__clickableComment.displayObject;
25015         }
25016
25017         public function _release_0(hug1:DisplayObject):void
25018         {       //MethodID:2704, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 61
25019                 Assert.assert(this.__clickableComment && (this.__clickableComment.displayObject === hug1));
25020                 layerInfo.clickableCommentPool.restore(this.__clickableComment);
25021
25022                 this.__clickableComment.displayObject.visible = false;
25023                 this.__clickableComment = null;
25024         }
25025 }
25026
25027 //■script163■
25028
25029 package jp.nicovideo.nicoplayer.models.comment{
25030
25031         //■class(instance)_index:206
25032         public interface ICommentRouter
25033         {
25034                 //static constructor
25035                 public static function ICommentRouter$cinit()
25036                 {       //MethodID:2706, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
25037                 }
25038
25039                 //variables/etc.
25040                 function post(hug1:IComment):void;                                          //MethodID:2707, dispID:0
25041
25042                 //constructor
25043                 public function ICommentRouter();                                           //MethodID:2708, dispID:0
25044         }
25045 }
25046
25047 //■script164■
25048
25049 package jp.nicovideo.nicoplayer.models.comment{
25050
25051         import jp.nicovideo.marquee.IMarqueePlayer
25052         import jp.nicovideo.nicoplayer.hiroba.IHirobaPlayer
25053         import jp.nicovideo.nicoplayer.models.IPlayerConfig
25054         import jp.nicovideo.nicoplayer.models.filter.ChannelReplacer
25055         import jp.nicovideo.nicoplayer.models.filter.LockedComment
25056         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
25057         import jp.nicovideo.nicoscript.NicoSClient
25058         import jp.nicovideo.nicoscript.macro.parsers.IMacroParserResult
25059         import jp.nicovideo.nicoscript.macro.parsers.MacroParser
25060         import jp.nicovideo.util.Assert
25061         import jp.nicovideo.util.Functions
25062         import jp.nicovideo.util.TimeUtils
25063         import jp.nicovideo.util.events.EventResult
25064
25065         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
25066
25067         //■class(instance)_index:207
25068         public class CommentRouter extends Object implements ICommentRouter
25069         {
25070                 //static constructor
25071                 public static function CommentRouter$cinit()
25072                 {       //MethodID:2710, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 111
25073                         ERROR_POST_BUTTON_ONCE = "ERROR_POST_BUTTON_ONCE";
25074                         ERROR_POST_AT_COMMENT_UNDEFINED = "ERROR_POST_AT_COMMENT_UNDEFINED";
25075                         ERROR_POST_HIROBA = "ERROR_POST_HIROBA";
25076                         ERROR_POST_BUTTON_PREMIUM_ONLY = "ERROR_POST_BUTTON_PREMIUM_ONLY";
25077                         ERROR_POST_INITIALIZE = "ERROR_POST_INITIALIZE";
25078                         ERROR_POST_184 = "ERROR_POST_184";
25079                         ERROR_POST_SAME_COMMENT = "ERROR_POST_SAMECOMMENT";
25080                         ERROR_POST_BUTTON_ARGUMENTS = "ERROR_POST_BUTTON_ARGUMENTS";
25081                         ERROR_POST_BUTTON_DISABLED = "ERROR_POST_BUTTON_DISABLED";
25082                         ERROR_POST_CHANNEL_FILTER = "ERROR_POST_CHANNEL_FILTER";
25083                         ERROR_POST_COMMAND_DISABLED = "ERROR_POST_COMMAND_DISABLED";
25084                         ERROR_POST_AT_COMMENT_DISABLED = "ERROR_POST_AT_COMMENT_DISABLED";
25085                 }
25086
25087                 //static variables/etc.
25088                 public static const ERROR_POST_BUTTON_ONCE:String = "ERROR_POST_BUTTON_ONCE";//slotID:1
25089                 public static const ERROR_POST_AT_COMMENT_UNDEFINED:String = "ERROR_POST_AT_COMMENT_UNDEFINED";//slotID:2
25090                 public static const ERROR_POST_HIROBA:String = "ERROR_POST_HIROBA";//slotID:3
25091                 public static const ERROR_POST_BUTTON_PREMIUM_ONLY:String = "ERROR_POST_BUTTON_PREMIUM_ONLY";//slotID:4
25092                 public static const ERROR_POST_INITIALIZE:String = "ERROR_POST_INITIALIZE";//slotID:5
25093                 public static const ERROR_POST_184:String = "ERROR_POST_184";   //slotID:6
25094                 public static const ERROR_POST_SAME_COMMENT:String = "ERROR_POST_SAMECOMMENT";//slotID:7
25095                 public static const ERROR_POST_BUTTON_ARGUMENTS:String = "ERROR_POST_BUTTON_ARGUMENTS";//slotID:8
25096                 public static const ERROR_POST_BUTTON_DISABLED:String = "ERROR_POST_BUTTON_DISABLED";//slotID:9
25097                 public static const ERROR_POST_CHANNEL_FILTER:String = "ERROR_POST_CHANNEL_FILTER";//slotID:10
25098                 public static const ERROR_POST_COMMAND_DISABLED:String = "ERROR_POST_COMMAND_DISABLED";//slotID:11
25099                 public static const ERROR_POST_AT_COMMENT_DISABLED:String = "ERROR_POST_AT_COMMENT_DISABLED";//slotID:12
25100
25101                 //constructor
25102                 public function CommentRouter(hug1:NicoFlashVars, hug2:IPlayerConfig, hug3:LockedComment, hug4:NicoSClient=null, hug5:Boolean=false, hug6:ChannelReplacer=null)
25103                 {       //MethodID:2711, LocalCount= 7 , MaxScope= 1, MaxStack= 2, CodeLength= 63
25104                         this.onCommentPostErorr = new Functions();
25105                         this.onCommentHavingMacro = new Functions();
25106                         this._commentLists = {};
25107
25108                         super();
25109
25110                         this._flashvars = hug1;
25111                         this._playerConfig = hug2;
25112                         this._nicosClient = hug4;
25113                         this._isPremium = hug5;
25114                         this._channelReplacer = hug6;
25115                         this._lockedComment = hug3;
25116                 }
25117
25118                 //variables/etc.
25119                 public var onCommentPostErorr:Functions;                        //slotID:0
25120                 public var onCommentHavingMacro:Functions;                      //slotID:0
25121                 private var _commentLists:Object;                               //slotID:0
25122                 private var _flashvars:NicoFlashVars;                           //slotID:0
25123                 private var _playerConfig:IPlayerConfig;                        //slotID:0
25124                 private var _nicosClient:NicoSClient;                           //slotID:0
25125                 private var _hirobaPlayer:IHirobaPlayer;                        //slotID:0
25126                 private var _marqueePlayer:IMarqueePlayer;                      //slotID:0
25127                 private var _isHirobaMode:Boolean = false;                      //slotID:0
25128                 private var _lastMessage:String;                                //slotID:0
25129                 private var _lastHirobaMessage:String;                          //slotID:0
25130                 private var _isPremium:Boolean;                                 //slotID:0
25131                 private const _buttonPostLimit:Number = 1.0;                    //slotID:0
25132                 private var _buttonCount:uint = 0;                              //slotID:0
25133                 private var _channelReplacer:ChannelReplacer;                   //slotID:0
25134                 private var _lockedComment:LockedComment;                       //slotID:0
25135
25136                 public function add(hug1:String, hug2:ICommentList):void
25137                 {       //MethodID:2712, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 29
25138                         Assert.assert(!this._commentLists.hasOwnProperty(hug1));
25139
25140                         this._commentLists[hug1] = hug2;
25141                 }
25142
25143                 public function addHiroba(hug1:IHirobaPlayer):void
25144                 {       //MethodID:2713, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25145                         this._hirobaPlayer = hug1;
25146                 }
25147
25148                 public function addMarqueePlayer(hug1:IMarqueePlayer):void
25149                 {       //MethodID:2714, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25150                         this._marqueePlayer = hug1;
25151                 }
25152
25153                 public function post(hug1:IComment):void
25154                 {       //MethodID:2720, LocalCount= 4 , MaxScope= 5, MaxStack= 3, CodeLength= 1244
25155                         internal var comment:IComment;                                  //slotID:1
25156                         internal var listName:String;                                   //slotID:2
25157                         internal var usable184:Boolean;                                 //slotID:3
25158                         internal var sameCommentCheckRequired:Boolean;                  //slotID:4
25159                         internal var hasButton:Boolean;                                 //slotID:5
25160                         internal var macroParserResult:IMacroParserResult;              //slotID:6
25161                         internal var commentList:ICommentList;                          //slotID:7
25162                         internal var builder1:CommentBuilder;                           //slotID:8
25163                         internal var onPostButtonArgumentsError:Function;               //slotID:9
25164                         internal var onPostSameComment:Function;                        //slotID:10
25165                         internal var cmd:ICommand;                                      //slotID:11
25166                         internal var builder0:CommentBuilder;                           //slotID:12
25167                         internal var flag:Boolean;                                      //slotID:13
25168                         internal var use184:Boolean;                                    //slotID:14
25169
25170                         hasButton = false;
25171                         macroParserResult = null;
25172                         cmd = null;
25173                         builder0 = null;
25174                         flag = false;
25175                         use184 = false;
25176                         comment = hug1;
25177                         onPostButtonArgumentsError = function():void{   //MethodID:2715, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 11
25178                                 onCommentPostErorr.apply(ERROR_POST_BUTTON_ARGUMENTS);
25179                         };
25180
25181                         onPostSameComment = function():void{    //MethodID:2716, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 11
25182                                 onCommentPostErorr.apply(ERROR_POST_SAME_COMMENT);
25183                         };
25184
25185                         listName = CommentConstants.CL_MAIN;
25186                         usable184 = true;
25187                         sameCommentCheckRequired = true;
25188
25189                         if(this._flashvars.watchFlashVars && this._flashvars.watchFlashVars.isOwnerThreadEditMode){
25190                                 listName = CommentConstants.CL_OWNER;
25191                                 usable184 = false;
25192                                 sameCommentCheckRequired = false;
25193                         }else if(!this._flashvars.isCommunityThread && this._nicosClient){
25194                                 listName = this._nicosClient.player.resolveListName(comment);
25195                         }
25196
25197                         sameCommentCheckRequired = (sameCommentCheckRequired && ((listName != CommentConstants.CL_NICOS) && (listName != CommentConstants.CL_LOCAL)));
25198                         hasButton = false;
25199
25200                         if(listName != CommentConstants.CL_OWNER){
25201                                 try{
25202                                         macroParserResult = MacroParser.parse(comment.message);
25203
25204                                         if(macroParserResult.macroName){
25205                                                 if(this._flashvars.isNoAtComment){
25206                                                         this.onCommentPostErorr.apply(ERROR_POST_AT_COMMENT_DISABLED);
25207
25208                                                         return;
25209                                                 }
25210
25211                                                 if(macroParserResult.macroName == "ボタン"){
25212                                                         if(this._buttonPostLimit <= this._buttonCount){
25213                                                                 this.onCommentPostErorr.apply(ERROR_POST_BUTTON_ONCE);
25214
25215                                                                 return;
25216                                                         }else if(this._flashvars.thumbFlashVars){
25217                                                                 this.onCommentPostErorr.apply(ERROR_POST_BUTTON_DISABLED);
25218
25219                                                                 return;
25220                                                         }else{
25221                                                                 hasButton = true;
25222                                                         }
25223                                                 }else if(macroParserResult.macroName == "ピザ"){
25224                                                         this.onCommentHavingMacro.apply(macroParserResult);
25225                                                 }else{
25226                                                         this.onCommentPostErorr.apply(ERROR_POST_AT_COMMENT_UNDEFINED);
25227
25228                                                         return;
25229                                                 }
25230                                         }
25231                                 }
25232                                 catch(error:*){
25233                                 }
25234                         }
25235
25236                         if(this._flashvars.isNoCommand){
25237                                 cmd = comment.command;
25238
25239                                 if((cmd.color != "") || (cmd.posY != "") || (cmd.size != "")){
25240                                         this.onCommentPostErorr.apply(ERROR_POST_COMMAND_DISABLED);
25241
25242                                         return;
25243                                 }
25244                         }
25245
25246                         if(this._channelReplacer && !this._channelReplacer.isPostable(comment.message)){
25247                                 this.onCommentPostErorr.apply(ERROR_POST_CHANNEL_FILTER);
25248
25249                                 return;
25250                         }
25251
25252                         if(this._isHirobaMode){
25253                                 if(this._lastHirobaMessage == comment.message){
25254                                         onPostSameComment();
25255
25256                                         return;
25257                                 }
25258
25259                                 if(hasButton){
25260                                         this.onCommentPostErorr.apply(ERROR_POST_HIROBA);
25261
25262                                         return;
25263                                 }
25264
25265                                 builder0 = new CommentBuilder(comment);
25266                                 builder0.vpos = TimeUtils.now().time;
25267                                 builder0.anonymity = this._playerConfig.use184;
25268                                 builder0.command = comment.command.duplicate(function(hug1:ICommand):void{      //MethodID:2717, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 11
25269                                         hug1.anonymity = _playerConfig.use184;
25270                                 });
25271                                 this._hirobaPlayer.post(builder0.make());
25272
25273                                 this._lastHirobaMessage = comment.message;
25274                                 return;
25275                         }
25276
25277                         if(hasButton && (macroParserResult.argLength == 0)){
25278                                 onPostButtonArgumentsError();
25279
25280                                 return;
25281                         }
25282
25283                         if(sameCommentCheckRequired && (this._lastMessage == comment.message)){
25284                                 onPostSameComment();
25285
25286                                 return;
25287                         }
25288
25289                         if(this._flashvars.isCommunityThread && (listName == CommentConstants.CL_MAIN)) listName = CommentConstants.CL_PRIVATE;
25290
25291                         if(hasButton && !this._isPremium){
25292                                 this.onCommentPostErorr.apply(ERROR_POST_BUTTON_PREMIUM_ONLY);
25293
25294                                 return;
25295                         }
25296
25297                         commentList = this._commentLists[listName];
25298
25299                         if(!commentList){
25300                                 this.onCommentPostErorr.apply(ERROR_POST_INITIALIZE);
25301
25302                                 return;
25303                         }
25304
25305                         if(listName == CommentConstants.CL_PRIVATE){
25306                                 flag = false;
25307
25308                                 comment.command.forEachCommand(function(hug1:String):void{      //MethodID:2718, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
25309                                         if(hug1 == CommandConstants.ANONYMITY) flag = true;
25310                                 });
25311
25312                                 if(flag){
25313                                         this.onCommentPostErorr.apply(ERROR_POST_184);
25314
25315                                         return;
25316                                 }
25317                         }
25318
25319                         builder1 = new CommentBuilder(comment);
25320
25321                         if(((listName != CommentConstants.CL_PRIVATE) && usable184) || hasButton){
25322                                 use184 = ((listName != CommentConstants.CL_PRIVATE) && usable184);
25323
25324                                 if(use184 && this._playerConfig.use184) builder1.anonymity = true;
25325
25326                                 builder1.command = comment.command.duplicate(function(hug1:ICommand):void{      //MethodID:2719, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 58
25327                                         if(use184 && _playerConfig.use184) hug1.anonymity = true;
25328
25329                                         if(hasButton){
25330                                                 hug1.hasButton = true;
25331                                                 _buttonCount++;
25332                                         }
25333                                 });
25334
25335                                 if(hasButton && macroParserResult) builder1.message = macroParserResult.arg(0);
25336                         }
25337
25338                         builder1.commentList = commentList;
25339                         comment = builder1.make();
25340                         this._lastMessage = comment.message;
25341
25342                         if(((commentList.name == CommentConstants.CL_LOCAL) || (commentList.name != CommentConstants.CL_OWNER)) && this._flashvars.watchFlashVars.isPostLocked){
25343                                 this._lockedComment.post(comment);
25344
25345                                 return;
25346                         }
25347
25348                         commentList.post(comment);
25349                 }
25350
25351                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerVisibleUpdated(hug1:Boolean):EventResult
25352                 {       //MethodID:2721, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
25353                         this._isHirobaMode = hug1;
25354                         return EventResult.THROUGH;
25355                 }
25356
25357                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onHirobaPlayerError():EventResult
25358                 {       //MethodID:2722, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
25359                         this._hirobaPlayer = null;
25360                         return EventResult.THROUGH;
25361                 }
25362         }
25363 }
25364
25365 //■script165■
25366
25367 package jp.nicovideo.nicoplayer.views{
25368
25369         //■class(instance)_index:208
25370         public interface IJumpMessageLayer
25371         {
25372                 //static constructor
25373                 public static function IJumpMessageLayer$cinit()
25374                 {       //MethodID:2724, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
25375                 }
25376
25377                 //variables/etc.
25378                 function showMessage(hug1:Function, hug2:String, hug3:int):void;            //MethodID:2725, dispID:0
25379
25380                 //constructor
25381                 public function IJumpMessageLayer();                                        //MethodID:2726, dispID:0
25382         }
25383 }
25384
25385 //■script166■
25386
25387 package jp.nicovideo.nicoplayer.views{
25388
25389         import flash.display.DisplayObjectContainer
25390         import flash.display.Graphics
25391         import flash.display.Sprite
25392         import flash.text.TextField
25393         import flash.text.TextFieldAutoSize
25394         import flash.text.TextFormat
25395         import flash.utils.clearTimeout
25396         import flash.utils.setTimeout
25397         import jp.nicovideo.util.events.EventResult
25398
25399         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
25400
25401         //■class(instance)_index:209
25402         public class JumpMessageLayer extends Object implements IJumpMessageLayer
25403         {
25404                 //static constructor
25405                 public static function JumpMessageLayer$cinit()
25406                 {       //MethodID:2728, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
25407                 }
25408
25409                 //constructor
25410                 public function JumpMessageLayer(hug1:DisplayObjectContainer)
25411                 {       //MethodID:2729, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
25412                         super();
25413
25414                         this.__container = hug1;
25415                 }
25416
25417                 //variables/etc.
25418                 private var __container:DisplayObjectContainer;                 //slotID:0
25419                 private var __panel:Sprite;                                     //slotID:0
25420                 private var __tf:TextField;                                     //slotID:0
25421                 private var __timerID:Number;                                   //slotID:0
25422
25423                 public function showMessage(hug1:Function, hug2:String, hug3:int):void
25424                 {       //MethodID:2731, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 76
25425                         internal var f:Function;                                        //slotID:1
25426                         internal var msg:String;                                        //slotID:2
25427                         internal var wait:int;                                          //slotID:3
25428
25429                         f = hug1;
25430                         msg = hug2;
25431                         wait = hug3;
25432
25433                         if(!isNaN(this.__timerID)) clearTimeout(this.__timerID);
25434                         this.__showMessage_0(msg);
25435
25436                         this.__timerID = setTimeout(function():void{    //MethodID:2730, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 26
25437                                 __timerID = NaN;
25438
25439                                 __showMessage_0(null);
25440                                 f();
25441                         }, wait);
25442                 }
25443
25444                 private function __showMessage_0(hug1:String):void
25445                 {       //MethodID:2732, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 99
25446                         if(hug1 == null){
25447                                 if(this.__panel && this.__container.contains(this.__panel)) this.__container.removeChild(this.__panel);
25448
25449                                 return;
25450                         }
25451
25452                         if(!this.__panel) this.__setup();
25453
25454                         this.__tf.text = hug1;
25455
25456                         if(!this.__container.contains(this.__panel)) this.__container.addChild(this.__panel);
25457                 }
25458
25459                 private function __setup():void
25460                 {       //MethodID:2733, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 170
25461                         this.__tf = new TextField();
25462                         this.__tf.defaultTextFormat = new TextFormat(null, 30, 0);
25463                         this.__tf.autoSize = TextFieldAutoSize.CENTER;
25464                         this.__tf.selectable = false;
25465                         this.__tf.x = ((this.__container.width - this.__tf.width) / 2);
25466                         this.__tf.y = ((this.__container.height - this.__tf.height) / 2);
25467                         this.__panel = new Sprite();
25468                         var hug1:Graphics = this.__panel.graphics;
25469
25470                         hug1.beginFill(0xFFFFFF);
25471                         hug1.drawRect(0, 0, this.__container.width, this.__container.height);
25472                         hug1.endFill();
25473                         this.__panel.addChild(this.__tf);
25474                 }
25475
25476                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onSystemMessageJumpMessageSended(hug1:Function, hug2:String, hug3:int):EventResult
25477                 {       //MethodID:2734, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 16
25478                         this.showMessage(hug1, hug2, hug3);
25479
25480                         return EventResult.THROUGH;
25481                 }
25482         }
25483 }
25484
25485 //■script167■
25486
25487 package jp.nicovideo.nicoplayer.videoender{
25488
25489         import jp.nicovideo.util.CrossSharedObject
25490         import jp.nicovideo.util.storage.LocalStorage
25491
25492         //■class(instance)_index:211
25493         public class VideoenderTesterConfig extends Object implements IVideoenderTesterConfig
25494         {
25495                 //static constructor
25496                 public static function VideoenderTesterConfig$cinit()
25497                 {       //MethodID:2738, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
25498                 }
25499
25500                 //constructor
25501                 public function VideoenderTesterConfig(hug1:Boolean)
25502                 {       //MethodID:2739, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 34
25503                         super();
25504
25505                         this._isTargetUser = hug1;
25506                         this._localStorage = CrossSharedObject.getStorage((_SOSetting).NAME, (_SOSetting).PATH);
25507                 }
25508
25509                 //variables/etc.
25510                 private var _isTargetUser:Boolean;                              //slotID:0
25511                 private var _localStorage:LocalStorage;                         //slotID:0
25512
25513                 public function get isTestable():Boolean
25514                 {       //MethodID:2740, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
25515                         return this._isTargetUser;
25516                 }
25517
25518                 public function get isTester():Boolean
25519                 {       //MethodID:2741, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 36
25520                         return (this._isTargetUser && !Boolean(this._localStorage.data[(_SOSetting).KEY_IS_NOT_TESTER]));
25521                 }
25522
25523                 public function set isTester(hug1:Boolean):void
25524                 {       //MethodID:2742, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 45
25525                         if(hug1){
25526                                 this._localStorage.clear();
25527                         }else{
25528                                 this._localStorage.data[(_SOSetting).KEY_IS_NOT_TESTER] = true;
25529
25530                                 this._localStorage.flush();
25531                         }
25532                 }
25533         }
25534 }
25535
25536
25537 //■class(instance)_index:210
25538 //private
25539 class _SOSetting extends Object
25540 {
25541         //static constructor
25542         public static function _SOSetting$cinit()
25543         {       //MethodID:2736, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
25544                 NAME = "jp.nicovideo.nicoplayer.videoender.VideoenderTester";
25545                 PATH = "/";
25546                 KEY_IS_NOT_TESTER = "isNotTester";
25547         }
25548
25549         //static variables/etc.
25550         public static const NAME:String = "jp.nicovideo.nicoplayer.videoender.VideoenderTester";//slotID:1
25551         public static const PATH:String = "/";                          //slotID:2
25552         public static const KEY_IS_NOT_TESTER:String = "isNotTester";   //slotID:3
25553
25554         //constructor
25555         public function _SOSetting()
25556         {       //MethodID:2737, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
25557                 super();
25558         }
25559 }
25560
25561 //■script168■
25562
25563 package jp.nicovideo.util{
25564
25565         import flash.display.Loader
25566         import flash.display.LoaderInfo
25567         import flash.events.Event
25568         import flash.events.IOErrorEvent
25569         import flash.events.NetStatusEvent
25570         import flash.events.SecurityErrorEvent
25571         import flash.net.SharedObject
25572         import flash.net.SharedObjectFlushStatus
25573         import flash.net.URLRequest
25574         import jp.nicovideo.util.storage.LocalStorage
25575
25576         //■class(instance)_index:212
25577         public class CrossSharedObject extends Object
25578         {
25579                 //static constructor
25580                 public static function CrossSharedObject$cinit()
25581                 {       //MethodID:2744, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
25582                         _inited = false;
25583                 }
25584
25585                 //static variables/etc.
25586                 private static var _sharedMC:*;                                 //slotID:1
25587                 private static var _inited:Boolean = false;                     //slotID:2
25588                 private static var _isPersistable:Boolean;                      //slotID:3
25589
25590                 public static function init(hug1:String, hug2:Function):void
25591                 {       //dispID:3, MethodID:2747, LocalCount= 5 , MaxScope= 5, MaxStack= 3, CodeLength= 175
25592                         internal var url:String;                                        //slotID:1
25593                         internal var func:Function;                                     //slotID:2
25594                         internal var loader:Loader;                                     //slotID:3
25595                         internal var loaderInfo:LoaderInfo;                             //slotID:4
25596                         internal var error_handler:Function;                            //slotID:5
25597
25598                         error_handler = null;
25599                         url = hug1;
25600                         func = hug2;
25601                         error_handler = function(hug1:Event):void{      //MethodID:2745, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
25602                                 func(false);
25603                         };
25604
25605                         if(_inited){
25606                                 func(true);
25607
25608                                 return;
25609                         }
25610
25611                         loader = new Loader();
25612                         loaderInfo = loader.contentLoaderInfo;
25613
25614                         loaderInfo.addEventListener(Event.INIT, function(hug1:Event):void{      //MethodID:2746, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 43
25615                                 _sharedMC = hug1.target.content;
25616                                 _inited = true;
25617                                 _isPersistable = isAvailable();
25618
25619                                 func(true);
25620                         });
25621                         loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, error_handler);
25622                         loaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, error_handler);
25623
25624                         try{
25625                                 loader.load(new URLRequest(url));
25626                         }
25627                         catch(error:Error){
25628                                 func(false);
25629                         }
25630                 }
25631
25632                 private static function isAvailable():Boolean
25633                 {       //dispID:4, MethodID:2749, LocalCount= 3 , MaxScope= 5, MaxStack= 3, CodeLength= 135
25634                         internal var so:SharedObject;                                   //slotID:1
25635                         internal var ret:String;                                        //slotID:2
25636
25637                         so = null;
25638                         ret = null;
25639
25640                         try{
25641                                 so = _sharedMC.getLocal("jp.nicovideo.nicoplayer.NicoPlayer.initializePlayerConfig");
25642
25643                                 so.addEventListener(NetStatusEvent.NET_STATUS, function(hug1:*):void{   //MethodID:2748, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
25644                                 });
25645
25646                                 ret = so.flush(20480);
25647
25648                                 if(ret != SharedObjectFlushStatus.FLUSHED) throw new Error("");
25649                                 so.clear();
25650                                 so.close();
25651                         }
25652                         catch(error:Error){
25653                                 return false;
25654                         }
25655
25656                         return true;
25657                 }
25658
25659                 public static function terminate():void
25660                 {       //dispID:5, MethodID:2750, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
25661                         _sharedMC = null;
25662                         _inited = false;
25663                 }
25664
25665                 public static function getSharedObject(hug1:String, hug2:String=null, hug3:Boolean=false):SharedObject
25666                 {       //dispID:6, MethodID:2751, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 32
25667                         if(_sharedMC == null) throw new Error("CrossSharedObjectが初期化されていません。");
25668
25669                         return _sharedMC.getLocal(hug1, hug2, hug3);
25670                 }
25671
25672                 public static function getStorage(hug1:String, hug2:String=null, hug3:Boolean=false):LocalStorage
25673                 {       //dispID:7, MethodID:2752, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 55
25674                         if(_sharedMC == null) throw new Error("CrossSharedObjectが初期化されていません。");
25675
25676                         return new LocalStorage(_isPersistable ? _sharedMC.getLocal(hug1, hug2, hug3) : null);
25677                 }
25678
25679                 public static function getStorageNative(hug1:String, hug2:String=null, hug3:Boolean=false):LocalStorage
25680                 {       //dispID:8, MethodID:2753, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 55
25681                         if(_sharedMC == null) throw new Error("CrossSharedObjectが初期化されていません。");
25682
25683                         return new LocalStorage(_isPersistable ? SharedObject.getLocal(hug1, hug2, hug3) : null);
25684                 }
25685
25686                 public static function flush():String
25687                 {       //dispID:9, MethodID:2754, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
25688                         if(_sharedMC == null) throw new Error("CrossSharedObjectが初期化されていません。");
25689
25690                         return (_isPersistable ? _sharedMC.flush() : SharedObjectFlushStatus.FLUSHED);
25691                 }
25692
25693                 public static function get isPersistable():Boolean
25694                 {       //dispID:10, MethodID:2755, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
25695                         return _isPersistable;
25696                 }
25697
25698                 //constructor
25699                 public function CrossSharedObject()
25700                 {       //MethodID:2756, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
25701                         super();
25702                 }
25703         }
25704 }
25705
25706 //■script169■
25707
25708 package jp.nicovideo.util.loka{
25709
25710
25711         public function __MSG__(hug1:String, ...rest):String
25712         {       //dispID:1, MethodID:2758, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 15
25713                 return Loka.instance.getMessage(hug1, rest);
25714         }
25715
25716 }
25717
25718 //■script170■
25719
25720 package jp.nicovideo.nicoplayer.models{
25721
25722         //■class(instance)_index:213
25723         public interface IMyList
25724         {
25725                 //static constructor
25726                 public static function IMyList$cinit()
25727                 {       //MethodID:2760, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
25728                 }
25729
25730                 //variables/etc.
25731                 function addDefaultList(hug1:Function, hug2:String, hug3:String):void;      //MethodID:2761, dispID:0
25732
25733                 function checkMyListLog():Boolean;                                          //MethodID:2762, dispID:0
25734
25735                 //constructor
25736                 public function IMyList();                                                  //MethodID:2763, dispID:0
25737         }
25738 }
25739
25740 //■script171■
25741
25742 package jp.nicovideo.nicoplayer.models{
25743
25744         import jp.nicovideo.nicoplayer.config.NicoConfig
25745         import jp.nicovideo.util.CrossSharedObject
25746         import jp.nicovideo.util.HTTPUtils
25747         import jp.nicovideo.util.TimeUtils
25748         import jp.nicovideo.util.storage.LocalStorage
25749
25750         //■class(instance)_index:214
25751         public class MyList extends Object implements IMyList
25752         {
25753                 //static constructor
25754                 public static function MyList$cinit()
25755                 {       //MethodID:2765, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 24
25756                         LOG_TERM = ((3 * 24 * 60 * 60) * 1000);
25757                 }
25758
25759                 //static variables/etc.
25760                 private static const LOG_TERM:Number = 0xF731400;               //slotID:1
25761
25762                 //constructor
25763                 public function MyList(hug1:NicoConfig, hug2:String)
25764                 {       //MethodID:2766, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 30
25765                         this._addMyListLogSO = CrossSharedObject.getStorage("jp.nicovideo.nicoplayer.models.MyList.addMyListLog");
25766
25767                         super();
25768
25769                         this._threadID = hug2;
25770                         this._nicoConfig = hug1;
25771                 }
25772
25773                 //variables/etc.
25774                 private var _addMyListLogSO:LocalStorage;                       //slotID:0
25775                 private var _threadID:String;                                   //slotID:0
25776                 private var _nicoConfig:NicoConfig;                             //slotID:0
25777
25778                 public function addDefaultList(hug1:Function, hug2:String, hug3:String):void
25779                 {       //MethodID:2768, LocalCount= 5 , MaxScope= 2, MaxStack= 9, CodeLength= 81
25780                         internal var callback:Function;                                 //slotID:1
25781                         internal var csrfToken:String;                                  //slotID:2
25782                         internal var memo:String = "";                                  //slotID:3
25783                         internal var param:Object;                                      //slotID:4
25784
25785                         callback = hug1;
25786                         csrfToken = hug2;
25787                         memo = hug3;
25788                         param = {item_type:0, item_id:this._threadID, description:memo, token:csrfToken};
25789
25790                         HTTPUtils.loadJSON(function(hug1:Object):void{  //MethodID:2767, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 62
25791                                 if(checkMyListLog()) callback(false, null);
25792
25793                                 _addMyListLogSO.data[_threadID] = TimeUtils.now().getTime();
25794
25795                                 _addMyListLogSO.flush();
25796                                 callback(true, hug1);
25797                         }, this._nicoConfig.MYLIST_ADD_API_URL, param, "POST");
25798                 }
25799
25800                 public function checkMyListLog():Boolean
25801                 {       //MethodID:2769, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 102
25802                         var hug2:String = null;
25803                         var hug1:Number = TimeUtils.now().getTime();
25804
25805                         for(hug2 in this._addMyListLogSO.data){
25806                                 if(hug1 > (this._addMyListLogSO.data[hug2] + LOG_TERM)){
25807                                         delete this._addMyListLogSO.data[hug2];
25808                                 }else if(hug2 == this._threadID){
25809                                         return true;
25810                                 }
25811                         }
25812
25813                         return false;
25814                 }
25815         }
25816 }
25817
25818 //■script172■
25819
25820 package jp.nicovideo.nicoplayer.storages{
25821
25822         import jp.nicovideo.nicoplayer.models.comment.IComment
25823
25824         //■class(instance)_index:215
25825         public interface ICommentStorageHandle
25826         {
25827                 //static constructor
25828                 public static function ICommentStorageHandle$cinit()
25829                 {       //MethodID:2771, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
25830                 }
25831
25832                 //variables/etc.
25833                 function get lastRes():int;                                                 //MethodID:2772, dispID:0
25834
25835                 function get isCommunityThread():Boolean;                                   //MethodID:2773, dispID:0
25836
25837                 function set isCommunityThread(hug1:Boolean):void;                          //MethodID:2774, dispID:0
25838
25839                 function get autoSyncEnabled():Boolean;                                     //MethodID:2775, dispID:0
25840
25841                 function set autoSyncEnabled(hug1:Boolean):void;                            //MethodID:2776, dispID:0
25842
25843                 function get onComments():Function;                                         //MethodID:2777, dispID:0
25844
25845                 function set onComments(hug1:Function):void;                                //MethodID:2778, dispID:0
25846
25847                 function get onNumberOfClick():Function;                                    //MethodID:2779, dispID:0
25848
25849                 function set onNumberOfClick(hug1:Function):void;                           //MethodID:2780, dispID:0
25850
25851                 function post(hug1:Function, hug2:IComment, hug3:Boolean):void;             //MethodID:2781, dispID:0
25852
25853                 function getThread(hug1:Function, hug2:int, hug3:Boolean=false):void;       //MethodID:2782, dispID:0
25854
25855                 function deleteComments(hug1:Function, hug2:Array, hug3:Boolean):void;      //MethodID:2783, dispID:0
25856
25857                 function getOwnerThread(hug1:Function, hug2:uint):void;                     //MethodID:2784, dispID:0
25858
25859                 function updateOwnerThread(hug1:Function, hug2:Array, hug3:Boolean):void;   //MethodID:2785, dispID:0
25860
25861                 function waybackOwnerThread(hug1:Function, hug2:int):void;                  //MethodID:2786, dispID:0
25862
25863                 function waybackThread(hug1:Function, hug2:int, hug3:uint, hug4:Boolean=false):void;//MethodID:2787, dispID:0
25864
25865                 function click(hug1:Function, hug2:int):void;                               //MethodID:2788, dispID:0
25866
25867                 function enterThread(hug1:Function, hug2:int, hug3:Boolean=false):void;     //MethodID:2789, dispID:0
25868
25869                 function leaveThread(hug1:Function):void;                                   //MethodID:2790, dispID:0
25870
25871                 //constructor
25872                 public function ICommentStorageHandle();                                    //MethodID:2791, dispID:0
25873         }
25874 }
25875
25876 //■script173■
25877
25878 package jp.nicovideo.nicoplayer.storages{
25879
25880         import jp.nicovideo.nicoplayer.models.api.IGetFLV
25881         import jp.nicovideo.nicoplayer.models.api.IKeygen
25882         import jp.nicovideo.nicoplayer.models.comment.IComment
25883         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
25884         import jp.nicovideo.nicoplayer.storages.commentStorage.LockDesc
25885         import jp.nicovideo.nicoplayer.storages.commentStorage.Request
25886         import jp.nicovideo.nicoplayer.storages.commentStorage.RequestDispatcher
25887         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.Clicker
25888         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.CommentDeleter
25889         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.CommentPoster
25890         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.SimpleTransactor
25891         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.ThreadLoader
25892         import jp.nicovideo.nicoplayer.storages.commentStorage.transactor.ThreadUpdater
25893         import jp.nicovideo.nicoplayer.storages.transmitter.TransmitterType
25894         import jp.nicovideo.util.Assert
25895         import jp.nicovideo.util.ObjectUtils
25896
25897         //■class(instance)_index:219
25898         public class CommentStorage extends Object implements ICommentStorage
25899         {
25900                 //static constructor
25901                 public static function CommentStorage$cinit()
25902                 {       //MethodID:2801, LocalCount= 1 , MaxScope= 1, MaxStack= 11, CodeLength= 49
25903                         __SERVER_RESPONSEs = ["GetThreadResult", "ViewCounter", "Chat", "PostChatResult", "NumberOfClick", "ClickResult", "DeleteCommentsResult", "UpdateThreadResult", "Leaf", "Close"];
25904                         __LEAF_RETRY = 20;
25905                 }
25906
25907                 //static variables/etc.
25908                 private static const __SERVER_RESPONSEs:Array;                  //slotID:1
25909                 private static const __LEAF_RETRY:int = 20;                     //slotID:2
25910
25911                 //constructor
25912                 public function CommentStorage(hug1:MessageServerClient, hug2:IKeygen, hug3:String, hug4:Boolean, hug5:NicoFlashVars, hug6:IGetFLV):void
25913                 {       //MethodID:2802, LocalCount= 7 , MaxScope= 1, MaxStack= 3, CodeLength= 73
25914                         this.__threads = {};
25915                         this.__postWaitQueue = [];
25916
25917                         super();
25918
25919                         this.__client = hug1;
25920                         this.__keygen = hug2;
25921                         this.__userID = hug3;
25922                         this.__isPremium = hug4;
25923                         this.__flashvars = hug5;
25924                         this.__getFlv = hug6;
25925                         this.__requestDispatcher = new RequestDispatcher(true);
25926
25927                         this.__registerResHandlers();
25928                         this.__registerPremitiveRequests();
25929                 }
25930
25931                 //variables/etc.
25932                 public var __client:MessageServerClient;                        //slotID:0
25933                 private var __flashvars:NicoFlashVars;                          //slotID:0
25934                 private var __getFlv:IGetFLV;                                   //slotID:0
25935                 private var __keygen:IKeygen;                                   //slotID:0
25936                 private var __userID:String;                                    //slotID:0
25937                 public var __isPremium:Boolean;                                 //slotID:0
25938                 private var __threads:Object;                                   //slotID:0
25939                 private var __noCompress:Boolean = false;                       //slotID:0
25940                 private var __requestDispatcher:RequestDispatcher;              //slotID:0
25941                 private var __onServerTimeUpdated:Function;                     //slotID:0
25942                 private var __onViewCounterUpdated:Function;                    //slotID:0
25943                 private var __forceLeafOff:Boolean = false;                     //slotID:0
25944                 private var __leafNum:int = 100;                                //slotID:0
25945                 private var __isErrorOnNoCompress:Boolean = false;              //slotID:0
25946                 private var __postWaitQueue:Array;                              //slotID:0
25947                 private var __postLocked:Boolean = false;                       //slotID:0
25948
25949                 public function get onServerTimeUpdated():Function
25950                 {       //MethodID:2803, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
25951                         return this.__onServerTimeUpdated;
25952                 }
25953
25954                 public function set onServerTimeUpdated(hug1:Function):void
25955                 {       //MethodID:2804, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25956                         this.__onServerTimeUpdated = hug1;
25957                 }
25958
25959                 public function get onViewCounterUpdated():Function
25960                 {       //MethodID:2805, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
25961                         return this.__onViewCounterUpdated;
25962                 }
25963
25964                 public function set onViewCounterUpdated(hug1:Function):void
25965                 {       //MethodID:2806, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25966                         this.__onViewCounterUpdated = hug1;
25967                 }
25968
25969                 public function get forceLeafOff():Boolean
25970                 {       //MethodID:2807, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
25971                         return this.__forceLeafOff;
25972                 }
25973
25974                 public function set forceLeafOff(hug1:Boolean):void
25975                 {       //MethodID:2808, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25976                         this.__forceLeafOff = hug1;
25977                 }
25978
25979                 public function get leafNum():int
25980                 {       //MethodID:2809, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
25981                         return this.__leafNum;
25982                 }
25983
25984                 public function set leafNum(hug1:int):void
25985                 {       //MethodID:2810, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
25986                         this.__leafNum = hug1;
25987                 }
25988
25989                 private function __registerResHandlers():void
25990                 {       //MethodID:2816, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 100
25991                         internal var name:String;                                       //slotID:1
25992                         internal var reconnect:Function;                                //slotID:2
25993                         internal var connectionLostListener:Function;                   //slotID:3
25994
25995                         name = null;
25996                         reconnect = null;
25997                         connectionLostListener = null;
25998                         reconnect = function(hug1:String):void{ //MethodID:2812, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 64
25999                                 internal var hint:String;                                       //slotID:1
26000
26001                                 hint = hug1;
26002
26003                                 __client.connectionLost.remove(reconnect);
26004                                 connectionLostListener(hint);
26005                                 __client.connectionLost.add(connectionLostListener);
26006                                 ObjectUtils.callLater(__client.connect, function(hug1:Boolean):void{    //MethodID:2811, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
26007                                 });
26008                         };
26009
26010                         connectionLostListener = function(hug1:String):void{    //MethodID:2813, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
26011                                 __requestDispatcher.spoil();
26012                         };
26013
26014                         for each(name in __SERVER_RESPONSEs){
26015                                 function():void{        //MethodID:2815, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 39
26016                                         internal var name_:*;                                           //slotID:1
26017
26018                                         name_ = undefined;
26019                                         name_ = name;
26020
26021                                         __client["onCMsg" + name].add(function(... rest):void{  //MethodID:2814, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 17
26022                                                 if(__requestDispatcher.receive(name_, rest)) return;
26023                                         });
26024                                 }.call(null);
26025                         }
26026
26027                         this.__client.connectionLost.add(reconnect);
26028                 }
26029
26030                 private function __registerPremitiveRequests():void
26031                 {       //MethodID:2820, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 108
26032                         internal var trans:SimpleTransactor;                            //slotID:1
26033                         internal var req:Request;                                       //slotID:2
26034
26035                         trans = null;
26036                         req = null;
26037                         trans = new SimpleTransactor(function(hug1:int, hug2:String, hug3:int):void{    //MethodID:2817, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 20
26038                                 if(__onViewCounterUpdated is Function) __onViewCounterUpdated(hug1, hug3);
26039                         });
26040
26041                         req = new Request([new LockDesc("ViewCounter")], "master");
26042                         req.parent = this;
26043                         req.transactor = trans;
26044                         req.indomitable = true;
26045
26046                         this.__requestDispatcher.addPassiveRequest(req);
26047                 }
26048
26049                 public function connect():void
26050                 {       //MethodID:2821, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26051                 }
26052
26053                 public function disconnect():void
26054                 {       //MethodID:2822, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26055                 }
26056
26057                 public function attach(hug1:String):ICommentStorageHandle
26058                 {       //MethodID:2823, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 80
26059                         var hug3:* = new _Thread(hug1);
26060                         this.__threads[hug1] = hug3;
26061                         var hug2:_Thread = hug3;
26062
26063                         if(this.__threads[hug1] || this.__client.connectionType == TransmitterType.HTTP) return new _Handle4HTTP(this, hug2);
26064
26065                         return new _Handle(this, hug2);
26066                 }
26067
26068                 private function __shiftPostWaitQueue():void
26069                 {       //MethodID:2824, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 42
26070                         if(this.__postLocked = (this.__postWaitQueue.length != 0)) ObjectUtils.callLater(this.__postWaitQueue.shift());
26071                 }
26072
26073                 public function _post(hug1:_Handle, hug2:Function, hug3:IComment, hug4:Boolean):void
26074                 {       //MethodID:2833, LocalCount= 6 , MaxScope= 2, MaxStack= 2, CodeLength= 62
26075                         internal var h:_Handle;                                         //slotID:1
26076                         internal var f:Function;                                        //slotID:2
26077                         internal var comment:IComment;                                  //slotID:3
26078                         internal var yugi:Boolean;                                      //slotID:4
26079                         internal var calc_page:Function;                                //slotID:5
26080
26081                         h = hug1;
26082                         f = hug2;
26083                         comment = hug3;
26084                         yugi = hug4;
26085                         calc_page = function(hug1:int):int{     //MethodID:2825, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 15
26086                                 return Math.floor((hug1 + 1) / 100);
26087                         };
26088
26089                         this.__postWaitQueue.push(function():void{      //MethodID:2832, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 224
26090                                 internal var retry:int;                                         //slotID:1
26091                                 internal var postkeyObj:_PostKey;                               //slotID:2
26092                                 internal var page:int;                                          //slotID:3
26093                                 internal var get_postkey:Function;                              //slotID:4
26094                                 internal var do_post:Function;                                  //slotID:5
26095
26096                                 postkeyObj = null;
26097                                 page = 0;
26098                                 get_postkey = function():void{  //MethodID:2827, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 30
26099                                         __keygen.getPostKey(function(hug1:Boolean, hug2:String, hug3:Boolean):void{     //MethodID:2826, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 59
26100                                                 if(!hug1){
26101                                                         f(new CommentStorageError(0, "Failed to get PostKey.", true), 0);
26102
26103                                                         return;
26104                                                 }
26105
26106                                                 postkeyObj.value = hug2;
26107                                                 postkeyObj.yugi = hug3;
26108                                                 postkeyObj.page = page;
26109
26110                                                 do_post();
26111                                         }, h._t.threadID, page, yugi);
26112                                 };
26113
26114                                 do_post = function():void{      //MethodID:2831, LocalCount= 2 , MaxScope= 1, MaxStack= 6, CodeLength= 212
26115                                         internal var trans:CommentPoster;                               //slotID:1
26116                                         internal var req:Request;                                       //slotID:2
26117
26118                                         trans = null;
26119                                         trans = new CommentPoster();
26120                                         trans.threadID = int(h._t.threadID);
26121                                         trans.comment = comment;
26122                                         trans.premium = __isPremium;
26123                                         trans.ticket = h._t.ticket;
26124                                         trans.userID = __userID;
26125                                         trans.postkey = postkeyObj.value;
26126                                         trans.yugi = postkeyObj.yugi;
26127                                         req = new Request([new LockDesc("PostChatResult", {0:h._t.threadID})]);
26128                                         req.transactor = trans;
26129                                         req.onErrorOccured = function(hug1:int):void{   //MethodID:2828, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 323
26130                                                 var hug2:int = 0;
26131                                                 var hug3:int = hug1;
26132
26133                                                 switch(hug3){
26134                                                 case MessageServerClient.POST_INVALID_POSTKEY:
26135                                                         postkeyObj.value = null;
26136                                                         h._t.lastRes_ = trans.no;
26137                                                         hug2 = calc_page(trans.no);
26138
26139                                                         if((trans.no != 0) && (hug2 != page)){
26140                                                                 page = hug2;
26141
26142                                                                 get_postkey();
26143
26144                                                                 return;
26145                                                         }
26146
26147                                                         f(new CommentStorageError(0, "No more retry to get PostKey.", true), 0);
26148                                                         break;
26149                                                 case MessageServerClient.POST_FAILURE:
26150                                                         f(new CommentStorageError(hug1, "Post failed"), 0);
26151                                                         break;
26152                                                 case MessageServerClient.POST_INVALID_THREAD:
26153                                                 case MessageServerClient.POST_LOCKED:
26154                                                 case MessageServerClient.POST_READONLY:
26155                                                 case MessageServerClient.POST_INVALID_TICKET:
26156                                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")), 0);
26157                                                         break;
26158                                                 default:
26159                                                         break;
26160                                                 }
26161
26162                                                 __shiftPostWaitQueue();
26163                                         };
26164
26165                                         req.onQuit = function():void{   //MethodID:2829, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 23
26166                                                 f(null, trans.no);
26167                                                 __shiftPostWaitQueue();
26168                                         };
26169
26170                                         req.onDisconnect = function():void{     //MethodID:2830, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 29
26171                                                 f(new CommentStorageError(0, "Disconnected.", true), 0);
26172                                                 __shiftPostWaitQueue();
26173                                         };
26174
26175                                         __addRequest(req);
26176                                 };
26177
26178                                 retry = 3;
26179                                 postkeyObj = h._t.postkey;
26180                                 page = calc_page(h._t.lastRes_);
26181
26182                                 if(postkeyObj){
26183                                         if(!postkeyObj.value){
26184                                                 ObjectUtils.callLater(f, new CommentStorageError(0, "OMG", true), 0);
26185
26186                                                 return;
26187                                         }
26188
26189                                         if(page == postkeyObj.page){
26190                                                 do_post();
26191
26192                                                 return;
26193                                         }
26194                                 }else{
26195                                         if(!h._t.ticket){
26196                                                 ObjectUtils.callLater(f, new CommentStorageError(0, "Cannot get PostKey having not done getThread to get LastRes needed to get that.", true), 0);
26197
26198                                                 return;
26199                                         }
26200
26201                                         postkeyObj = new _PostKey();
26202                                         h._t.postkey = new _PostKey();
26203                                 }
26204
26205                                 get_postkey();
26206                         });
26207
26208                         if(!this.__postLocked) this.__shiftPostWaitQueue();
26209                 }
26210
26211                 public function _getThread(hug1:_Handle, hug2:Function, hug3:int, hug4:Boolean=false):void
26212                 {       //MethodID:2840, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 112
26213                         internal var h:_Handle;                                         //slotID:1
26214                         internal var f:Function;                                        //slotID:2
26215                         internal var resFrom:int;                                       //slotID:3
26216                         internal var isLeaf:Boolean = false;                            //slotID:4
26217                         internal var retry:int;                                         //slotID:5
26218                         internal var threadkey_getter:Function;                         //slotID:6
26219                         internal var do_get_thread:Function;                            //slotID:7
26220
26221                         retry = 0;
26222                         threadkey_getter = null;
26223                         do_get_thread = null;
26224                         h = hug1;
26225                         f = hug2;
26226                         resFrom = hug3;
26227                         isLeaf = hug4;
26228                         do_get_thread = function(... args):void{        //MethodID:2839, LocalCount= 3 , MaxScope= 1, MaxStack= 10, CodeLength= 513
26229                                 internal var arguments:Array;                                   //slotID:1
26230                                 internal var trans:ThreadLoader;                                //slotID:2
26231                                 internal var _locks:Array;                                      //slotID:3
26232                                 internal var req:Request;                                       //slotID:4
26233                                 internal var arguments_:*;                                      //slotID:5
26234
26235                                 trans = null;
26236                                 arguments_ = undefined;
26237                                 internal var arguments:Object = args;
26238
26239                                 if(__isErrorOnNoCompress){
26240                                         f(new CommentStorageError(0, "Disconnected.", true), null);
26241
26242                                         return;
26243                                 }
26244
26245                                 trans = new ThreadLoader();
26246                                 trans.threadID = h._t.threadID;
26247                                 trans.userID = __userID;
26248                                 trans.resFrom = resFrom;
26249                                 trans.clickRevision = h._t.clickRevision;
26250                                 trans.onServerTime = __onServerTimeUpdated;
26251                                 trans.num_click = h._t.num_click;
26252                                 trans.duration = __getFlv.videoLength;
26253                                 trans.forceLeafMode = (isLeaf && !__flashvars.isMymemory && !__forceLeafOff);
26254                                 trans.leaf_get_num = __leafNum;
26255
26256                                 if(h._isCommunityThread){
26257                                         trans.threadkey = h._t.threadkey.value;
26258                                         trans.force184 = (h._t.threadkey.force184 ? 1 : 0);
26259                                 }
26260
26261                                 trans.noCompress = __noCompress;
26262                                 _locks = [new LockDesc("GetThreadResult", {1:h._t.threadID, 8:0}), new LockDesc("Chat", {1:h._t.threadID, 13:0}), new LockDesc("NumberOfClick", {0:h._t.threadID}), new LockDesc("Close", {0:h._t.threadID, 1:0})];
26263
26264                                 if(trans.isLeaf()) _locks.push(new LockDesc("Leaf", {1:h._t.threadID}));
26265
26266                                 req = new Request(_locks);
26267                                 req.transactor = trans;
26268                                 req.onErrorOccured = function(hug1:int):void{   //MethodID:2834, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 116
26269                                         if((hug1 == MessageServerClient.THREAD_LEAF_LOADING) && (retry > 0)){
26270                                                 retry--;
26271                                                 do_get_thread();
26272
26273                                                 return;
26274                                         }
26275
26276                                         if((hug1 == MessageServerClient.THREAD_TOO_OLD_THREADKEY) && (threadkey_getter != null) && threadkey_getter()) return;
26277                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")), null);
26278                                 };
26279
26280                                 req.onQuit = function():void{   //MethodID:2835, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 200
26281                                         var hug1:String = null;
26282                                         var hug2:int = 0;
26283
26284                                         if(h._t.ticket != trans.ticket){
26285                                                 h._t.clear();
26286
26287                                                 h._t.ticket = trans.ticket;
26288                                         }
26289
26290                                         h._t.lastRes_ = trans.lastRes;
26291                                         h._t.lastRes = trans.lastRes;
26292                                         h._t.revision = trans.revision;
26293                                         h._t.clickRevision = trans.clickRevision;
26294
26295                                         for(hug1 in trans.num_click){
26296                                                 hug2 = int(hug1);
26297
26298                                                 h._onNumberOfClick(hug2, trans.num_click[hug2]);
26299                                         }
26300
26301                                         h._t.num_click = trans.num_click;
26302
26303                                         f(null, trans.comments);
26304                                 };
26305
26306                                 arguments_ = arguments;
26307                                 req.onDisconnect = function():void{     //MethodID:2838, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 98
26308                                         internal var getNoCompressThread:Function;                      //slotID:1
26309
26310                                         getNoCompressThread = function():void{  //MethodID:2836, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 19
26311                                                 __noCompress = true;
26312
26313                                                 do_get_thread.apply(this, arguments_);
26314                                         };
26315
26316                                         if(trans.noCompress || __isErrorOnNoCompress){
26317                                                 __isErrorOnNoCompress = true;
26318
26319                                                 f(new CommentStorageError(0, "Disconnected.", true), null);
26320
26321                                                 return;
26322                                         }
26323
26324                                         if(__client.isConnecting){
26325                                                 getNoCompressThread();
26326                                         }else{
26327                                                 __client.connected.add(function(... args):void{ //MethodID:2837, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 23
26328                                                         __client.connected.remove(args.callee);
26329                                                         getNoCompressThread();
26330                                                 });
26331                                         }
26332                                 };
26333
26334                                 __addRequest(req);
26335                         };
26336
26337                         if(!h._isCommunityThread){
26338                                 do_get_thread();
26339
26340                                 return;
26341                         }
26342
26343                         retry = __LEAF_RETRY;
26344                         threadkey_getter = this.__newThreadKeyGetter(do_get_thread, f, h._t);
26345                 }
26346
26347                 public function _deleteComments(hug1:_Handle, hug2:Function, hug3:Array, hug4:Boolean):void
26348                 {       //MethodID:2846, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 54
26349                         internal var h:_Handle;                                         //slotID:1
26350                         internal var f:Function;                                        //slotID:2
26351                         internal var targets:Array;                                     //slotID:3
26352                         internal var undelete:Boolean;                                  //slotID:4
26353
26354                         h = hug1;
26355                         f = hug2;
26356                         targets = hug3;
26357                         undelete = hug4;
26358
26359                         this.__keygen.getDeleteKey(function(hug1:Boolean, hug2:String):void{    //MethodID:2845, LocalCount= 4 , MaxScope= 1, MaxStack= 8, CodeLength= 269
26360                                 internal var succeeded:Boolean;                                 //slotID:1
26361                                 internal var deletekey:String;                                  //slotID:2
26362                                 internal var trans:CommentDeleter;                              //slotID:3
26363                                 internal var req:Request;                                       //slotID:4
26364
26365                                 trans = null;
26366                                 succeeded = hug1;
26367                                 deletekey = hug2;
26368
26369                                 if(!succeeded){
26370                                         f(new CommentStorageError(0, "DeleteKeyの取得に失敗。", true));
26371
26372                                         return;
26373                                 }
26374
26375                                 trans = new CommentDeleter();
26376                                 trans.undelete = undelete;
26377                                 trans.revision = h._t.revision;
26378                                 trans.threadID = int(h._t.threadID);
26379                                 trans.userID = __userID;
26380                                 trans.deletekey = deletekey;
26381                                 trans.list = targets.sort(function(hug1:uint, hug2:uint):Number{        //MethodID:2841, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 4
26382                                         return (hug1 - hug2);
26383                                 }).join(",");
26384
26385                                 req = new Request([new LockDesc("DeleteCommentsResult", {0:h._t.threadID, 3:(undelete ? 1 : 0)})]);
26386                                 req.transactor = trans;
26387                                 req.onErrorOccured = function(hug1:int):void{   //MethodID:2842, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 24
26388                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")));
26389                                 };
26390
26391                                 req.onQuit = function():void{   //MethodID:2843, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 25
26392                                         h._t.revision = trans.revision;
26393
26394                                         f(null);
26395                                 };
26396
26397                                 req.onDisconnect = function():void{     //MethodID:2844, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 20
26398                                         f(new CommentStorageError(0, "Disconnected.", true));
26399                                 };
26400
26401                                 __addRequest(req);
26402                         }, h._t.threadID, targets);
26403                 }
26404
26405                 public function _getOwnerThread(hug1:_Handle, hug2:Function, hug3:uint, ...args):void
26406                 {       //MethodID:2850, LocalCount= 6 , MaxScope= 2, MaxStack= 10, CodeLength= 282
26407                         internal var h:_Handle;                                         //slotID:1
26408                         internal var f:Function;                                        //slotID:2
26409                         internal var numRes:uint;                                       //slotID:3
26410                         internal var arguments:Array;                                   //slotID:4
26411                         internal var trans:ThreadLoader;                                //slotID:5
26412                         internal var req:Request;                                       //slotID:6
26413                         internal var arguments_:*;                                      //slotID:7
26414
26415                         trans = null;
26416                         arguments_ = undefined;
26417                         h = hug1;
26418                         f = hug2;
26419                         numRes = hug3;
26420                         internal var arguments:Object = args;
26421                         trans = new ThreadLoader();
26422                         trans.threadID = h._t.threadID;
26423                         trans.fork = 1;
26424                         trans.resFrom = -numRes;
26425                         trans.onServerTime = this.__onServerTimeUpdated;
26426                         req = new Request([new LockDesc("GetThreadResult", {1:h._t.threadID, 8:1}), new LockDesc("Chat", {1:h._t.threadID, 13:1}), new LockDesc("Close", {0:h._t.threadID, 1:1})]);
26427                         trans.noCompress = this.__noCompress;
26428                         req.transactor = trans;
26429                         req.onErrorOccured = function(hug1:int):void{   //MethodID:2847, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 25
26430                                 f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")), null);
26431                         };
26432
26433                         req.onQuit = function():void{   //MethodID:2848, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 31
26434                                 h._t.ownerTicket = trans.ticket;
26435
26436                                 f(null, trans.comments);
26437                         };
26438
26439                         arguments_ = arguments;
26440                         req.onDisconnect = function():void{     //MethodID:2849, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 52
26441                                 if(trans.noCompress){
26442                                         f(new CommentStorageError(0, "", true), null);
26443
26444                                         return;
26445                                 }
26446
26447                                 __noCompress = true;
26448
26449                                 arguments_.callee.apply(this, arguments_);
26450                         };
26451
26452                         this.__addRequest(req);
26453                 }
26454
26455                 public function _updateOwnerThread(hug1:_Handle, hug2:Function, hug3:Array, hug4:Boolean):void
26456                 {       //MethodID:2855, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 64
26457                         internal var h:_Handle;                                         //slotID:1
26458                         internal var f:Function;                                        //slotID:2
26459                         internal var comments:Array;                                    //slotID:3
26460                         internal var createNicosThread:Boolean;                         //slotID:4
26461
26462                         h = hug1;
26463                         f = hug2;
26464                         comments = hug3;
26465                         createNicosThread = hug4;
26466
26467                         this.__keygen.getUpdateKey(function(hug1:Boolean, hug2:String):void{    //MethodID:2854, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 217
26468                                 internal var succeeded:Boolean;                                 //slotID:1
26469                                 internal var updatekey:String;                                  //slotID:2
26470                                 internal var trans:ThreadUpdater;                               //slotID:3
26471                                 internal var req:Request;                                       //slotID:4
26472
26473                                 trans = null;
26474                                 succeeded = hug1;
26475                                 updatekey = hug2;
26476
26477                                 if(!succeeded) f(new CommentStorageError(0, "Failed to get UpdateKey.", true));
26478
26479                                 trans = new ThreadUpdater();
26480                                 trans.threadID = h._t.threadID;
26481                                 trans.userID = __userID;
26482                                 trans.ticket = h._t.ownerTicket;
26483                                 trans.updatekey = updatekey;
26484                                 trans.isPremium = __isPremium;
26485                                 trans.comments = comments;
26486                                 req = new Request([new LockDesc("UpdateThreadResult", {})]);
26487                                 req.transactor = trans;
26488                                 req.onErrorOccured = function(hug1:int):void{   //MethodID:2851, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 24
26489                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")));
26490                                 };
26491
26492                                 req.onQuit = function():void{   //MethodID:2852, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 25
26493                                         h._t.ownerTicket = trans.ticket;
26494
26495                                         f(null);
26496                                 };
26497
26498                                 req.onDisconnect = function():void{     //MethodID:2853, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 20
26499                                         f(new CommentStorageError(0, "Disconnected.", true));
26500                                 };
26501
26502                                 __addRequest(req);
26503                         }, h._t.threadID, h._t.ownerTicket, createNicosThread);
26504                 }
26505
26506                 public function _waybackFork(hug1:_Handle, hug2:Function, hug3:int, hug4:int, hug5:uint, hug6:Boolean=false):void
26507                 {       //MethodID:2863, LocalCount= 8 , MaxScope= 2, MaxStack= 5, CodeLength= 171
26508                         internal var h:_Handle;                                         //slotID:1
26509                         internal var f:Function;                                        //slotID:2
26510                         internal var fork:int;                                          //slotID:3
26511                         internal var time:int;                                          //slotID:4
26512                         internal var numRes:uint;                                       //slotID:5
26513                         internal var isLeaf:Boolean = false;                            //slotID:6
26514                         internal var retry:int;                                         //slotID:7
26515                         internal var leaf_retry:int;                                    //slotID:8
26516                         internal var threadkey_required:Boolean;                        //slotID:9
26517                         internal var get_waybackkey:Function;                           //slotID:10
26518                         internal var do_wayback_thread:Function;                        //slotID:11
26519                         internal var threadkey_getter:Function;                         //slotID:12
26520
26521                         leaf_retry = 0;
26522                         threadkey_required = false;
26523                         get_waybackkey = null;
26524                         threadkey_getter = null;
26525                         h = hug1;
26526                         f = hug2;
26527                         fork = hug3;
26528                         time = hug4;
26529                         numRes = hug5;
26530                         isLeaf = hug6;
26531                         get_waybackkey = function():void{       //MethodID:2858, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 67
26532                                 internal var error:Function;                                    //slotID:1
26533
26534                                 error = function():void{        //MethodID:2856, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 21
26535                                         f(new CommentStorageError(0, "Failed to get WaybackKey.", true), null);
26536                                 };
26537
26538                                 if((--retry) < 0) error();
26539                                 __keygen.getWaybackKey(function(hug1:Boolean, hug2:String):void{        //MethodID:2857, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 24
26540                                         if(!hug1){
26541                                                 error();
26542
26543                                                 return;
26544                                         }
26545
26546                                         do_wayback_thread(hug2);
26547                                 }, h._t.threadID);
26548                         };
26549
26550                         do_wayback_thread = function(hug1:String):void{ //MethodID:2862, LocalCount= 3 , MaxScope= 1, MaxStack= 9, CodeLength= 541
26551                                 internal var waybackkey:String;                                 //slotID:1
26552                                 internal var trans:ThreadLoader;                                //slotID:2
26553                                 internal var _locks:Array;                                      //slotID:3
26554                                 internal var req:Request;                                       //slotID:4
26555
26556                                 trans = null;
26557                                 waybackkey = hug1;
26558                                 trans = new ThreadLoader();
26559                                 trans.threadID = h._t.threadID;
26560                                 trans.resFrom = -numRes;
26561                                 trans.fork = fork;
26562                                 trans.when = time;
26563                                 trans.userID = __userID;
26564                                 trans.waybackkey = waybackkey;
26565                                 trans.onServerTime = __onServerTimeUpdated;
26566                                 trans.noCompress = __noCompress;
26567                                 trans.clickRevision = h._t.clickRevision;
26568                                 trans.duration = __getFlv.videoLength;
26569                                 trans.num_click = h._t.num_click;
26570                                 trans.resBefore = (h._t.lastRes + 1);
26571
26572                                 if(fork != 1){
26573                                         trans.forceLeafMode = (isLeaf && !__flashvars.isMymemory && !__forceLeafOff);
26574                                         trans.leaf_get_num = __leafNum;
26575                                 }
26576
26577                                 if(threadkey_required){
26578                                         trans.threadkey = h._t.threadkey.value;
26579                                         trans.force184 = (h._t.threadkey.force184 ? 1 : 0);
26580                                 }
26581
26582                                 _locks = [new LockDesc("GetThreadResult", {1:h._t.threadID, 8:fork}), new LockDesc("Close", {0:h._t.threadID}), new LockDesc("Chat", {1:h._t.threadID, 13:fork})];
26583
26584                                 if(trans.isLeaf()) _locks.push(new LockDesc("Leaf", {1:h._t.threadID}));
26585
26586                                 if(fork != 1) _locks.push(new LockDesc("NumberOfClick", {0:h._t.threadID}));
26587
26588                                 req = new Request(_locks);
26589                                 req.transactor = trans;
26590                                 req.onErrorOccured = function(hug1:int):void{   //MethodID:2859, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 183
26591                                         var hug2:int = hug1;
26592
26593                                         switch(hug2){
26594                                         case MessageServerClient.THREAD_LEAF_LOADING:
26595                                                 if(leaf_retry > 0){
26596                                                         leaf_retry--;
26597                                                         do_wayback_thread();
26598
26599                                                         return;
26600                                                 }
26601                                                 break;
26602                                         case MessageServerClient.THREAD_TOO_OLD_WAYBACKKEY:
26603                                                 get_waybackkey();
26604
26605                                                 return;
26606                                         case MessageServerClient.THREAD_TOO_OLD_THREADKEY:
26607                                                 if(threadkey_getter()) return;
26608
26609                                         default:
26610                                                 break;
26611                                         }
26612
26613                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")), null);
26614                                 };
26615
26616                                 req.onQuit = function():void{   //MethodID:2860, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 16
26617                                         f(null, trans.comments);
26618                                 };
26619
26620                                 req.onDisconnect = function():void{     //MethodID:2861, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 47
26621                                         if(trans.noCompress){
26622                                                 f(new CommentStorageError(0, "Disconnected.", true), null);
26623
26624                                                 return;
26625                                         }
26626
26627                                         __noCompress = true;
26628
26629                                         do_wayback_thread();
26630                                 };
26631
26632                                 __addRequest(req);
26633                         };
26634
26635                         retry = 3;
26636                         leaf_retry = __LEAF_RETRY;
26637                         threadkey_required = ((fork == MessageServerClient.FORK_MAIN) && h._isCommunityThread);
26638
26639                         if(threadkey_required){
26640                                 threadkey_getter = this.__newThreadKeyGetter(get_waybackkey, f, h._t);
26641                                 return;
26642                         }
26643
26644                         get_waybackkey();
26645                 }
26646
26647                 public function _click(hug1:_Handle, hug2:Function, hug3:int, hug4:Function=null):void
26648                 {       //MethodID:2868, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 70
26649                         internal var h:_Handle;                                         //slotID:1
26650                         internal var f:Function;                                        //slotID:2
26651                         internal var no:int;                                            //slotID:3
26652                         internal var after_click:Function = null;                       //slotID:4
26653
26654                         h = hug1;
26655                         f = hug2;
26656                         no = hug3;
26657                         after_click = hug4;
26658
26659                         this.__keygen.getClickKey(function(hug1:Boolean, hug2:String):void{     //MethodID:2867, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 197
26660                                 internal var succeeded:Boolean;                                 //slotID:1
26661                                 internal var clickkey:String;                                   //slotID:2
26662                                 internal var trans:Clicker;                                     //slotID:3
26663                                 internal var req:Request;                                       //slotID:4
26664
26665                                 succeeded = hug1;
26666                                 clickkey = hug2;
26667
26668                                 if(!succeeded) f(new CommentStorageError(0, "Failed to get ClickKey.", true), null);
26669
26670                                 trans = new Clicker();
26671                                 trans.threadID = int(h._t.threadID);
26672                                 trans.no = no;
26673                                 trans.userID = __userID;
26674                                 trans.clickkey = clickkey;
26675                                 req = new Request([new LockDesc("ClickResult", {})]);
26676                                 req.transactor = trans;
26677                                 req.onErrorOccured = function(hug1:int):void{   //MethodID:2864, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 24
26678                                         f(new CommentStorageError(hug1, ("error: status=" + hug1 + ".")));
26679                                 };
26680
26681                                 req.onQuit = function():void{   //MethodID:2865, LocalCount= 4 , MaxScope= 0, MaxStack= 6, CodeLength= 43
26682                                         h._t.num_click[no]++;
26683                                         f(null);
26684                                 };
26685
26686                                 req.onDisconnect = function():void{     //MethodID:2866, LocalCount= 1 , MaxScope= 0, MaxStack= 5, CodeLength= 20
26687                                         f(new CommentStorageError(0, "Disconnected.", true));
26688                                 };
26689
26690                                 __addRequest(req);
26691                                 after_click();
26692                         }, h._t.threadID, h._t.lastRes, h._t.clickRevision);
26693                 }
26694
26695                 private function __newThreadKeyGetter(hug1:Function, hug2:Function, hug3:_Thread, hug4:int=3):Function
26696                 {       //MethodID:2871, LocalCount= 6 , MaxScope= 2, MaxStack= 3, CodeLength= 97
26697                         internal var f:Function;                                        //slotID:1
26698                         internal var error:Function;                                    //slotID:2
26699                         internal var t:_Thread;                                         //slotID:3
26700                         internal var retry:int = 3;                                     //slotID:4
26701                         internal var do_get:Function;                                   //slotID:5
26702
26703                         do_get = null;
26704                         f = hug1;
26705                         error = hug2;
26706                         t = hug3;
26707                         retry = hug4;
26708                         do_get = function():Boolean{    //MethodID:2870, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 57
26709                                 t.threadkey = null;
26710
26711                                 if((retry--) < 1) return false;
26712                                 __keygen.getThreadKey(function(hug1:Boolean, hug2:String, hug3:Boolean):void{   //MethodID:2869, LocalCount= 4 , MaxScope= 0, MaxStack= 5, CodeLength= 50
26713                                         if(!hug1){
26714                                                 error(new CommentStorageError(0, "ThreadKeyの取得に失敗。", true), null);
26715
26716                                                 return;
26717                                         }
26718
26719                                         t.threadkey = new _ThreadKey(hug2, hug3);
26720
26721                                         f();
26722                                 }, t.threadID);
26723
26724                                 return true;
26725                         };
26726
26727                         Assert.assert(retry > 0);
26728
26729                         if(t.threadkey){
26730                                 ObjectUtils.callLater(f);
26731                         }else{
26732                                 do_get();
26733                         }
26734
26735                         return do_get;
26736                 }
26737
26738                 private function __addRequest(hug1:Request):void
26739                 {       //MethodID:2872, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 28
26740                         hug1.parent = this;
26741                         hug1.transactor.client = this.__client;
26742
26743                         this.__requestDispatcher.addRequest(hug1);
26744                 }
26745         }
26746 }
26747
26748 import flash.errors.IllegalOperationError
26749 import flash.utils.Dictionary
26750 import jp.nicovideo.nicoplayer.models.comment.IComment
26751 import jp.nicovideo.nicoplayer.storages.CommentStorage
26752 import jp.nicovideo.nicoplayer.storages.CommentStorageError
26753 import jp.nicovideo.nicoplayer.storages.MessageServerClient
26754 import jp.nicovideo.nicoplayer.storages.commentStorage.Poller
26755 import jp.nicovideo.util.ObjectUtils
26756
26757 //■class(instance)_index:216
26758 //private
26759 class _Thread extends Object
26760 {
26761         //static constructor
26762         public static function _Thread$cinit()
26763         {       //MethodID:2793, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26764         }
26765
26766         //constructor
26767         public function _Thread(hug1:String)
26768         {       //MethodID:2794, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 29
26769                 this.num_click = {};
26770                 this.handles = new Dictionary(true);
26771
26772                 super();
26773
26774                 this.threadID = hug1;
26775         }
26776
26777         //variables/etc.
26778         public var threadID:String;                                     //slotID:0
26779         public var ticket:String;                                       //slotID:0
26780         public var ownerTicket:String;                                  //slotID:0
26781         public var lastRes:int = -1;                                    //slotID:0
26782         public var lastRes_:int = -1;                                   //slotID:0
26783         public var postkey:_PostKey;                                    //slotID:0
26784         public var threadkey:_ThreadKey;                                //slotID:0
26785         public var revision:int = 0;                                    //slotID:0
26786         public var clickRevision:int = 0;                               //slotID:0
26787         public var waybackkey:String;                                   //slotID:0
26788         public var num_click:Object;                                    //slotID:0
26789         public var handles:Dictionary;                                  //slotID:0
26790
26791         public function forEachHandle(hug1:Function):void
26792         {       //MethodID:2795, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 51
26793                 var hug2:* = undefined;
26794
26795                 for(hug2 in this.handles){
26796                         hug1(_Handle(hug2));
26797                 }
26798         }
26799
26800         public function clear():void
26801         {       //MethodID:2796, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 37
26802                 this.ticket = null;
26803                 this.lastRes = -1;
26804                 this.lastRes_ = -1;
26805                 this.postkey = null;
26806                 this.revision = 0;
26807                 this.clickRevision = 0;
26808         }
26809 }
26810
26811 //■class(instance)_index:217
26812 //private
26813 class _PostKey extends Object
26814 {
26815         //static constructor
26816         public static function _PostKey$cinit()
26817         {       //MethodID:2797, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26818         }
26819
26820         //constructor
26821         public function _PostKey()
26822         {       //MethodID:2798, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
26823                 super();
26824         }
26825
26826         //variables/etc.
26827         public var lastRes:int;                                         //slotID:0
26828         public var page:int;                                            //slotID:0
26829         public var value:String;                                        //slotID:0
26830         public var yugi:Boolean;                                        //slotID:0
26831 }
26832
26833 //■class(instance)_index:218
26834 //private
26835 class _ThreadKey extends Object
26836 {
26837         //static constructor
26838         public static function _ThreadKey$cinit()
26839         {       //MethodID:2799, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26840         }
26841
26842         //constructor
26843         public function _ThreadKey(hug1:String, hug2:Boolean)
26844         {       //MethodID:2800, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
26845                 super();
26846
26847                 this.value = hug1;
26848                 this.force184 = hug2;
26849         }
26850
26851         //variables/etc.
26852         public var value:String;                                        //slotID:0
26853         public var force184:Boolean;                                    //slotID:0
26854 }
26855
26856 //■class(instance)_index:220
26857 //private
26858 class _Handle extends Object implements ICommentStorageHandle
26859 {
26860         //static constructor
26861         public static function _Handle$cinit()
26862         {       //MethodID:2873, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
26863         }
26864
26865         //constructor
26866         public function _Handle(hug1:CommentStorage, hug2:_Thread)
26867         {       //MethodID:2874, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 28
26868                 super();
26869
26870                 this._parent = hug1;
26871                 this._t = hug2;
26872                 this._t.handles[this] = true;
26873         }
26874
26875         //variables/etc.
26876         public var _t:_Thread;                                          //slotID:0
26877         public var _isCommunityThread:Boolean = false;                  //slotID:0
26878         public var _onNumberOfClick:Function;                           //slotID:0
26879         protected var _parent:CommentStorage;                           //slotID:0
26880         private var __onComments:Function;                              //slotID:0
26881         private var __autoSyncEnabled:Boolean = true;                   //slotID:0
26882
26883         public function get lastRes():int
26884         {       //MethodID:2875, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
26885                 return this._t.lastRes;
26886         }
26887
26888         public function get autoSyncEnabled():Boolean
26889         {       //MethodID:2876, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
26890                 return this.__autoSyncEnabled;
26891         }
26892
26893         public function set autoSyncEnabled(hug1:Boolean):void
26894         {       //MethodID:2877, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
26895                 this.__autoSyncEnabled = hug1;
26896         }
26897
26898         public function get isCommunityThread():Boolean
26899         {       //MethodID:2878, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
26900                 return this._isCommunityThread;
26901         }
26902
26903         public function set isCommunityThread(hug1:Boolean):void
26904         {       //MethodID:2879, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
26905                 this._isCommunityThread = hug1;
26906         }
26907
26908         public function get onComments():Function
26909         {       //MethodID:2880, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
26910                 return this.__onComments;
26911         }
26912
26913         public function set onComments(hug1:Function):void
26914         {       //MethodID:2881, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
26915                 this.__onComments = hug1;
26916         }
26917
26918         public function get onNumberOfClick():Function
26919         {       //MethodID:2882, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
26920                 return this._onNumberOfClick;
26921         }
26922
26923         public function set onNumberOfClick(hug1:Function):void
26924         {       //MethodID:2883, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
26925                 this._onNumberOfClick = hug1;
26926         }
26927
26928         public function post(hug1:Function, hug2:IComment, hug3:Boolean):void
26929         {       //MethodID:2884, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 15
26930                 this._parent._post(this, hug1, hug2, hug3);
26931         }
26932
26933         public function getThread(hug1:Function, hug2:int, hug3:Boolean=false):void
26934         {       //MethodID:2885, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 15
26935                 this._parent._getThread(this, hug1, hug2, hug3);
26936         }
26937
26938         public function deleteComments(hug1:Function, hug2:Array, hug3:Boolean):void
26939         {       //MethodID:2886, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 15
26940                 this._parent._deleteComments(this, hug1, hug2, hug3);
26941         }
26942
26943         public function getOwnerThread(hug1:Function, hug2:uint):void
26944         {       //MethodID:2887, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 14
26945                 this._parent._getOwnerThread(this, hug1, hug2);
26946         }
26947
26948         public function updateOwnerThread(hug1:Function, hug2:Array, hug3:Boolean):void
26949         {       //MethodID:2888, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 15
26950                 this._parent._updateOwnerThread(this, hug1, hug2, hug3);
26951         }
26952
26953         public function waybackOwnerThread(hug1:Function, hug2:int):void
26954         {       //MethodID:2889, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 23
26955                 this._parent._waybackFork(this, hug1, MessageServerClient.FORK_OWNER, hug2, 1000);
26956         }
26957
26958         public function waybackThread(hug1:Function, hug2:int, hug3:uint, hug4:Boolean=false):void
26959         {       //MethodID:2890, LocalCount= 5 , MaxScope= 1, MaxStack= 7, CodeLength= 23
26960                 this._parent._waybackFork(this, hug1, MessageServerClient.FORK_MAIN, hug2, hug3, hug4);
26961         }
26962
26963         public function click(hug1:Function, hug2:int):void
26964         {       //MethodID:2891, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 14
26965                 this._parent._click(this, hug1, hug2);
26966         }
26967
26968         public function enterThread(hug1:Function, hug2:int, hug3:Boolean=false):void
26969         {       //MethodID:2892, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 13
26970                 throw new IllegalOperationError("未サポートであります。。。");
26971         }
26972
26973         public function leaveThread(hug1:Function):void
26974         {       //MethodID:2893, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
26975                 throw new IllegalOperationError("未サポートっスよ!");
26976         }
26977
26978         public function _onComments(hug1:Array):void
26979         {       //MethodID:2894, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 20
26980                 if(this.__onComments is Function) this.__onComments(hug1);
26981         }
26982 }
26983
26984 //■class(instance)_index:221
26985 //private
26986 class _Handle4HTTP extends _Handle
26987 {
26988         //static constructor
26989         public static function _Handle4HTTP$cinit()
26990         {       //MethodID:2895, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 37
26991                 HTTP_INTERVAL_PREMIUM = 0x1D4C0;
26992                 HTTP_INTERVAL_SHORT_PREMIUM = 30000;
26993                 HTTP_INTERVAL_ECONOMY = 0x2BF20;
26994                 HTTP_INTERVAL_SHORT_ECONOMY = 0xAFC8;
26995         }
26996
26997         //static variables/etc.
26998         private static const HTTP_INTERVAL_PREMIUM:int = 0x1D4C0;       //slotID:1
26999         private static const HTTP_INTERVAL_SHORT_PREMIUM:int = 30000;   //slotID:2
27000         private static const HTTP_INTERVAL_ECONOMY:int = 0x2BF20;       //slotID:3
27001         private static const HTTP_INTERVAL_SHORT_ECONOMY:int = 0xAFC8;  //slotID:4
27002
27003         //constructor
27004         public function _Handle4HTTP(hug1:CommentStorage, hug2:_Thread)
27005         {       //MethodID:2896, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 8
27006                 super(hug1, hug2);
27007         }
27008
27009         //variables/etc.
27010         private var __poller:Poller;                                    //slotID:0
27011         private var __localLastRes:int = 0;                             //slotID:0
27012
27013         override public function set autoSyncEnabled(hug1:Boolean):void
27014         {       //MethodID:2897, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 50
27015                 if(autoSyncEnabled == hug1) return;
27016
27017                 if(this.__poller){
27018                         if(hug1){
27019                                 this.__poller.resume();
27020                         }else{
27021                                 this.__poller.suspend();
27022                         }
27023                 }
27024
27025                 super.autoSyncEnabled = hug1;
27026         }
27027
27028         override public function post(hug1:Function, hug2:IComment, hug3:Boolean):void
27029         {       //MethodID:2900, LocalCount= 5 , MaxScope= 2, MaxStack= 2, CodeLength= 63
27030                 private var f:Function;                                         //slotID:1
27031                 private var comment_:IComment;                                  //slotID:2
27032                 private var yugi:Boolean;                                       //slotID:3
27033                 private var poll_retry:int;                                     //slotID:4
27034                 private var super_post:Function;                                //slotID:5
27035                 private var do_post:Function;                                   //slotID:6
27036
27037                 do_post = null;
27038                 f = hug1;
27039                 comment_ = hug2;
27040                 yugi = hug3;
27041                 do_post = function():void{      //MethodID:2899, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 22
27042                         super_post(function(hug1:CommentStorageError, hug2:int):void{   //MethodID:2898, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 115
27043                                 if(hug1 && !hug1.isInLowerLayer && (hug1.status == MessageServerClient.POST_INVALID_TICKET) && ((poll_retry--) > 0)){
27044                                         __poller.pollImmediately(do_post);
27045
27046                                         return;
27047                                 }
27048
27049                                 if(__poller && !hug1) __poller.pollImmediately();
27050                                 f(hug1, hug2);
27051                         }, comment_, yugi);
27052                 };
27053
27054                 poll_retry = 3;
27055                 super_post = super.post;
27056
27057                 do_post();
27058         }
27059
27060         override public function getThread(hug1:Function, hug2:int, hug3:Boolean=false):void
27061         {       //MethodID:2901, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 27
27062                 if(!this.__poller) throw new IllegalOperationError();
27063                 super.getThread(hug1, hug2, hug3);
27064         }
27065
27066         override public function click(hug1:Function, hug2:int):void
27067         {       //MethodID:2904, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 52
27068                 private var f:Function;                                         //slotID:1
27069                 private var no:int;                                             //slotID:2
27070                 private var after_click:Function;                               //slotID:3
27071
27072                 after_click = null;
27073                 f = hug1;
27074                 no = hug2;
27075                 after_click = function():void{  //MethodID:2902, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
27076                         if(__poller) __poller.pollImmediately();
27077                 };
27078
27079                 _parent._click(this, function(hug1:CommentStorageError):void{   //MethodID:2903, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 10
27080                         f(hug1);
27081                 }, no, after_click);
27082         }
27083
27084         override public function enterThread(hug1:Function, hug2:int, hug3:Boolean=false):void
27085         {       //MethodID:2908, LocalCount= 5 , MaxScope= 2, MaxStack= 5, CodeLength= 61
27086                 private var f:Function;                                         //slotID:1
27087                 private var resFrom:int;                                        //slotID:2
27088                 private var isLeaf:Boolean = false;                             //slotID:3
27089                 private var self:_Handle;                                       //slotID:4
27090
27091                 self = null;
27092                 f = hug1;
27093                 resFrom = hug2;
27094                 isLeaf = hug3;
27095                 self = this;
27096
27097                 _parent._getThread(self, function(hug1:CommentStorageError, hug2:Array):void{   //MethodID:2907, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 153
27098                         private var e:CommentStorageError;                              //slotID:1
27099                         private var comments:Array;                                     //slotID:2
27100                         private var lastResLocal:int;                                   //slotID:3
27101
27102                         lastResLocal = 0;
27103                         e = hug1;
27104                         comments = hug2;
27105
27106                         if(__poller) throw new IllegalOperationError("なんじゃい");
27107
27108                         if(!e){
27109                                 lastResLocal = ((comments.length != 0) ? comments[comments.length - 1].resNo : 0);
27110                                 __poller = new Poller(function(hug1:Function):void{     //MethodID:2906, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 39
27111                                         private var binder:Function;                                    //slotID:1
27112
27113                                         binder = hug1;
27114
27115                                         _parent._getThread(self, binder(function(hug1:CommentStorageError, hug2:Array):void{    //MethodID:2905, LocalCount= 3 , MaxScope= 0, MaxStack= 6, CodeLength= 67
27116                                                 if(hug1) return;
27117
27118                                                 if(hug2.length != 0){
27119                                                         lastResLocal = Math.max(lastResLocal, hug2[hug2.length - 1].resNo);
27120
27121                                                         _onComments(hug2);
27122                                                 }
27123
27124                                                 __poller.interval = __calcPollingInterval(hug2);
27125                                         }), (lastResLocal + 1), isLeaf);
27126                                 });
27127
27128                                 if(autoSyncEnabled) __poller.resume();
27129
27130                                 __poller.interval = __calcPollingInterval(comments);
27131                         }
27132
27133                         f(e, comments);
27134                 }, resFrom, isLeaf);
27135         }
27136
27137         override public function leaveThread(hug1:Function):void
27138         {       //MethodID:2909, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 51
27139                 if(!this.__poller) throw new IllegalOperationError("入室してないす");
27140                 this.__poller.suspend();
27141
27142                 this.__poller = null;
27143
27144                 _t.clear();
27145                 ObjectUtils.callLater(hug1, null);
27146         }
27147
27148         private function __calcPollingInterval(hug1:Array):int
27149         {       //MethodID:2910, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 55
27150                 var hug2:int = HTTP_INTERVAL_ECONOMY;
27151                 var hug3:int = HTTP_INTERVAL_SHORT_ECONOMY;
27152
27153                 if(_parent.__isPremium){
27154                         hug2 = HTTP_INTERVAL_ECONOMY;
27155                         hug3 = HTTP_INTERVAL_SHORT_ECONOMY;
27156                 }
27157
27158                 var hug4:int = ((hug1.length != 0) ? hug3 : hug2);
27159                 return hug4;
27160         }
27161 }
27162
27163 //■script174■
27164
27165 package jp.nicovideo.nicoplayer.models.api{
27166
27167         import jp.nicovideo.util.HTTPUtils
27168
27169         //■class(instance)_index:222
27170         public class GetBGM extends Object
27171         {
27172                 //static constructor
27173                 public static function GetBGM$cinit()
27174                 {       //MethodID:2912, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
27175                 }
27176
27177                 //static variables/etc.
27178                 public static function exec(hug1:Function, hug2:String, hug3:String):void
27179                 {       //dispID:3, MethodID:2914, LocalCount= 5 , MaxScope= 2, MaxStack= 7, CodeLength= 52
27180                         internal var f:Function;                                        //slotID:1
27181                         internal var URL:String;                                        //slotID:2
27182                         internal var threadID:String;                                   //slotID:3
27183
27184                         f = hug1;
27185                         URL = hug2;
27186                         threadID = hug3;
27187
27188                         HTTPUtils.loadXML(function(hug1:XML):void{      //MethodID:2913, LocalCount= 7 , MaxScope= 0, MaxStack= 12, CodeLength= 263
27189                                 var hug3:XML = null;
27190                                 var hug4:BGMVideoInfo = null;
27191
27192                                 if((hug1 === null) || (hug1.@status != "ok")) f(false, null);
27193
27194                                 var hug2:Array = [];
27195
27196                                 for each(hug3 in hug1.bgm){
27197                                         hug4 = new BGMVideoInfo(hug3.id.text()[0], hug3.bgm_type.text()[0], hug3.video_id.text()[0], hug3.url.text()[0], Number(hug3.length.text()[0]), hug3.movie_type.text()[0], (Number(hug3.deleted.text()[0]) != 0), (Number(hug3["private"].text()[0]) != 0), (Number(hug3.as3.text()[0]) == 1));
27198
27199                                         hug2.push(hug4);
27200                                 }
27201
27202                                 f(true, hug2);
27203                         }, URL, {v:threadID, as3:"1"});
27204                 }
27205
27206                 //constructor
27207                 public function GetBGM()
27208                 {       //MethodID:2915, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
27209                         super();
27210                 }
27211         }
27212 }
27213
27214 //■script175■
27215
27216 package jp.nicovideo.nicoscript{
27217
27218         import jp.nicovideo.nicoplayer.models.comment.IComment
27219
27220         //■class(instance)_index:223
27221         public interface INicoSPlayer
27222         {
27223                 //static constructor
27224                 public static function INicoSPlayer$cinit()
27225                 {       //MethodID:2917, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
27226                 }
27227
27228                 //variables/etc.
27229                 function get defaultCommentColor():String;                                  //MethodID:2918, dispID:0
27230
27231                 function get defaultCommentPosition():String;                               //MethodID:2919, dispID:0
27232
27233                 function get defaultCommentSize():String;                                   //MethodID:2920, dispID:0
27234
27235                 function get isCommentInvisible():Boolean;                                  //MethodID:2921, dispID:0
27236
27237                 function replaceComment(hug1:String, hug2:IComment):IComment;               //MethodID:2922, dispID:0
27238
27239                 function resolveListName(hug1:IComment):String;                             //MethodID:2923, dispID:0
27240
27241                 function get BGMVideoIDs():Array;                                           //MethodID:2924, dispID:0
27242
27243                 function get CMVideoIDs():Array;                                            //MethodID:2925, dispID:0
27244
27245                 function setup(hug1:INicoSClient):void;                                     //MethodID:2926, dispID:0
27246
27247                 function clear():void;                                                      //MethodID:2927, dispID:0
27248
27249                 function commit(hug1:String, hug2:Array, hug3:Array, hug4:Boolean):Array;   //MethodID:2928, dispID:0
27250
27251                 function play():void;                                                       //MethodID:2929, dispID:0
27252
27253                 function seek(hug1:int):void;                                               //MethodID:2930, dispID:0
27254
27255                 function pause():void;                                                      //MethodID:2931, dispID:0
27256
27257                 function set volume(hug1:Number):void;                                      //MethodID:2932, dispID:0
27258
27259                 function get isNicosThreadRequired():Boolean;                               //MethodID:2933, dispID:0
27260
27261                 //constructor
27262                 public function INicoSPlayer();                                             //MethodID:2934, dispID:0
27263         }
27264 }
27265
27266 //■script176■
27267
27268 package jp.nicovideo.nicoplayer.models.playlist{
27269
27270         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
27271         import jp.nicovideo.util.Functions
27272         import jp.nicovideo.util.events.event_sender
27273
27274         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
27275
27276         //■class(instance)_index:224
27277         public class VideoInfo extends Object
27278         {
27279                 //static constructor
27280                 public static function VideoInfo$cinit()
27281                 {       //MethodID:2936, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
27282                 }
27283
27284                 //constructor
27285                 public function VideoInfo(hug1:String, hug2:String, hug3:String, hug4:String, hug5:String, hug6:String, hug7:String, hug8:uint, hug9:uint, hug10:uint, hug11:uint, hug12:Date, hug13:Date, hug14:Date, hug15:Number)
27286                 {       //MethodID:2937, LocalCount= 16 , MaxScope= 1, MaxStack= 3, CodeLength= 117
27287                         this.onVideoInfoFlashVarsUpdated = new Functions();
27288
27289                         super();
27290
27291                         this._title = hug1;
27292                         this._description = hug2;
27293                         this._mylistComment = hug3;
27294                         this._threadID = hug4;
27295                         this._videoID = hug4;
27296                         this._watchID = hug6;
27297                         this._thumbnailURL = hug7;
27298                         this._viewCounter = hug8;
27299                         this._numRes = hug9;
27300                         this._mylistCounter = hug10;
27301                         this._deleted = hug11;
27302                         this._itemUpdateTime = new Date(hug12);
27303                         this._firstRetrieve = new Date(hug13);
27304                         this._createTime = new Date(hug14);
27305                         this._lengthSeconds = hug15;
27306                 }
27307
27308                 //variables/etc.
27309                 private var _title:String;                                      //slotID:0
27310                 private var _description:String;                                //slotID:0
27311                 private var _mylistComment:String;                              //slotID:0
27312                 private var _threadID:String;                                   //slotID:0
27313                 private var _videoID:String;                                    //slotID:0
27314                 private var _watchID:String;                                    //slotID:0
27315                 private var _thumbnailURL:String;                               //slotID:0
27316                 private var _viewCounter:uint;                                  //slotID:0
27317                 private var _numRes:uint;                                       //slotID:0
27318                 private var _mylistCounter:uint;                                //slotID:0
27319                 private var _deleted:uint;                                      //slotID:0
27320                 private var _itemUpdateTime:Date;                               //slotID:0
27321                 private var _firstRetrieve:Date;                                //slotID:0
27322                 private var _createTime:Date;                                   //slotID:0
27323                 private var _lengthSeconds:Number;                              //slotID:0
27324                 private var _flashVars:NicoFlashVars;                           //slotID:0
27325                 private var _errorMessage:String;                               //slotID:0
27326                 private var _ownersIndex:int = 0;                               //slotID:0
27327                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onVideoInfoFlashVarsUpdated:Functions;//slotID:0
27328
27329                 public function get title():String
27330                 {       //MethodID:2938, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27331                         return this._title;
27332                 }
27333
27334                 public function get description():String
27335                 {       //MethodID:2939, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27336                         return this._description;
27337                 }
27338
27339                 public function get mylistComment():String
27340                 {       //MethodID:2940, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27341                         return this._mylistComment;
27342                 }
27343
27344                 public function get threadID():String
27345                 {       //MethodID:2941, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27346                         return this._threadID;
27347                 }
27348
27349                 public function get videoID():String
27350                 {       //MethodID:2942, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27351                         return this._videoID;
27352                 }
27353
27354                 public function get watchID():String
27355                 {       //MethodID:2943, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27356                         return this._watchID;
27357                 }
27358
27359                 public function get thumbnailURL():String
27360                 {       //MethodID:2944, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27361                         return this._thumbnailURL;
27362                 }
27363
27364                 public function get viewCounter():uint
27365                 {       //MethodID:2945, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27366                         return this._viewCounter;
27367                 }
27368
27369                 public function get numRes():uint
27370                 {       //MethodID:2946, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27371                         return this._numRes;
27372                 }
27373
27374                 public function get mylistCounter():uint
27375                 {       //MethodID:2947, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27376                         return this._mylistCounter;
27377                 }
27378
27379                 public function get deleted():uint
27380                 {       //MethodID:2948, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27381                         return this._deleted;
27382                 }
27383
27384                 public function get itemUpdateTime():Date
27385                 {       //MethodID:2949, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27386                         return this._itemUpdateTime;
27387                 }
27388
27389                 public function get firstRetrieve():Date
27390                 {       //MethodID:2950, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27391                         return this._firstRetrieve;
27392                 }
27393
27394                 public function get createTime():Date
27395                 {       //MethodID:2951, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27396                         return this._createTime;
27397                 }
27398
27399                 public function get lengthSeconds():Number
27400                 {       //MethodID:2952, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27401                         return this._lengthSeconds;
27402                 }
27403
27404                 public function get errorMessage():String
27405                 {       //MethodID:2953, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27406                         return this._errorMessage;
27407                 }
27408
27409                 public function set errorMessage(hug1:String):void
27410                 {       //MethodID:2954, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27411                         this._errorMessage = hug1;
27412                 }
27413
27414                 public function get ownersIndex():int
27415                 {       //MethodID:2955, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27416                         return this._ownersIndex;
27417                 }
27418
27419                 public function set ownersIndex(hug1:int):void
27420                 {       //MethodID:2956, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27421                         this._ownersIndex = hug1;
27422                 }
27423
27424                 public function set flashVars(hug1:NicoFlashVars):void
27425                 {       //MethodID:2957, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 31
27426                         this._flashVars = hug1;
27427
27428                         onVideoInfoFlashVarsUpdated.apply(this);
27429                 }
27430
27431                 public function get flashVars():NicoFlashVars
27432                 {       //MethodID:2958, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27433                         return this._flashVars;
27434                 }
27435         }
27436 }
27437
27438 //■script177■
27439
27440 package jp.nicovideo.nicoplayer.config{
27441
27442         //■class(instance)_index:225
27443         public class NicoConfig extends Object
27444         {
27445                 //static constructor
27446                 public static function NicoConfig$cinit()
27447                 {       //MethodID:2960, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
27448                 }
27449
27450                 //variables/etc.
27451                 private var _SMILEVIDEO_URL:String;                             //slotID:0
27452                 private var _HOWTOUSE_URL:String;                               //slotID:0
27453                 private var _RECOMMEND_ENV_URL:String;                          //slotID:0
27454                 private var _DIC_NICOVIDEO_URL:String;                          //slotID:0
27455                 private var _DELETE_COMMENT_URL:String;                         //slotID:0
27456                 private var _ENTRY_HANDBOOK_URL:String;                         //slotID:0
27457                 private var _BASE_URL:String;                                   //slotID:0
27458                 private var _MOBILE_BASE_URL:String;                            //slotID:0
27459                 private var _MOBILE_WATCH_URL:String;                           //slotID:0
27460                 private var _FLAPI_BASE_URL:String;                             //slotID:0
27461                 private var _RES_URL:String;                                    //slotID:0
27462                 private var _CHANNEL_URL:String;                                //slotID:0
27463                 private var _TEMPLATE_PATH:String;                              //slotID:0
27464                 private var _NICOVIDEO_ACCOUNT_SETTING_URL:String;              //slotID:0
27465                 private var _NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL:String;      //slotID:0
27466                 private var _GETFLV_URL:String;                                 //slotID:0
27467                 private var _GETPOSTKEY_URL:String;                             //slotID:0
27468                 private var _GETRELATION_URL:String;                            //slotID:0
27469                 private var _GETTHUMBINFO_URL:String;                           //slotID:0
27470                 private var _GETGAMERANKING_URL:String;                         //slotID:0
27471                 private var _GETENQUESTERESULT_URL:String;                      //slotID:0
27472                 private var _GETCONFIGURENGCLIENT_URL:String;                   //slotID:0
27473                 private var _THUMBWATCH_URL:String;                             //slotID:0
27474                 private var _GET_CONFIGURE_NGWORD:String;                       //slotID:0
27475                 private var _GET_CLICKKEY_URL:String;                           //slotID:0
27476                 private var _RULES_URL:String;                                  //slotID:0
27477                 private var _NOSO_URL:String;                                   //slotID:0
27478                 private var _NOSO_BANNER_URL:String;                            //slotID:0
27479                 private var _GET_WAYBACKKEY_URL:String;                         //slotID:0
27480                 private var _GET_DELETEKEY_URL:String;                          //slotID:0
27481                 private var _GET_UPDATEKEY_URL:String;                          //slotID:0
27482                 private var _GET_THREADKEY_URL:String;                          //slotID:0
27483                 private var _REDIRECTOR_URL:String;                             //slotID:0
27484                 private var _adAPI_URL:String;                                  //slotID:0
27485                 private var _REGISTERBGM_API_URL:String;                        //slotID:0
27486                 private var _GETBGM_API_URL:String;                             //slotID:0
27487                 private var _GETSPONSOR_API_URL:String;                         //slotID:0
27488                 private var _OTHERSPONSOR_URL:String;                           //slotID:0
27489                 private var _LOGGER_API_URL:String;                             //slotID:0
27490                 private var _PLAYLEN_API_URL:String;                            //slotID:0
27491                 private var _PIZZA_URL:String;                                  //slotID:0
27492                 private var _PLAYERVERSION_XML_URL:String;                      //slotID:0
27493                 private var _PLAYERINFO_XML_URL:String;                         //slotID:0
27494                 private var _CROSSSHAREDOBJECT_SWF_URL:String;                  //slotID:0
27495                 private var _CROSSSHAREDOBJECT_NONIMG_SWF_URL:String;           //slotID:0
27496                 private var _VIEWCONTROLLER_SWF_URL:String;                     //slotID:0
27497                 private var _VIEW_SWF_URL:String;                               //slotID:0
27498                 private var _MARQUEE_PLAYER_URL:String;                         //slotID:0
27499                 private var _NICOSPLAYER_URL:String;                            //slotID:0
27500                 private var _THUMBPLAYER_CONTROLLER_URL:String;                 //slotID:0
27501                 private var _THUMBPLAYER_VIEW_URL:String;                       //slotID:0
27502                 private var _HIROBA_MOVIE_URL:String;                           //slotID:0
27503                 private var _PARADE_MAP_URL:String;                             //slotID:0
27504                 private var _USERSPONSOR_MOVIE_URL:String;                      //slotID:0
27505                 private var _HIROBA_GETPOSTKEY_URL:String;                      //slotID:0
27506                 private var _PREMIUMLEAD_ON_SLIDER_LINK_URL:String;             //slotID:0
27507                 private var _GET_CHECKLIST_URL:String;                          //slotID:0
27508                 private var _HIROBACONNECTOR_SWF_URL:String;                    //slotID:0
27509                 private var _VIDEO_MENU_URL:String;                             //slotID:0
27510                 private var _VIDEO_ENDER_URL:String;                            //slotID:0
27511                 private var _MYLIST_ADD_API_URL:String;                         //slotID:0
27512                 private var _FEED_ADD_API_URL:String;                           //slotID:0
27513                 private var _FEED_DEL_API_URL:String;                           //slotID:0
27514                 private var _FEED_LIST_API_URL:String;                          //slotID:0
27515                 private var _MYLIST_PAGE_URL:String;                            //slotID:0
27516                 private var _OPEN_MYLIST_URL:String;                            //slotID:0
27517                 private var _PLUGINLOADER_SWF_URL:String;                       //slotID:0
27518                 private var _GET_NSKEY_URL:String;                              //slotID:0
27519                 private var _MYLIST_COMMENT_URL:String;                         //slotID:0
27520                 private var _APPLIBAR_URL:String;                               //slotID:0
27521                 private var _JSCONNECTOR_SWF_URL:String;                        //slotID:0
27522                 private var _GET_PLAYLIST_URL:String;                           //slotID:0
27523                 private var _WATCH_API_URL:String;                              //slotID:0
27524                 private var _PLAYLIST_PAGE_BASE_URL:String;                     //slotID:0
27525                 private var _LEAD_MOBILE_WATCH_API_URL:String;                  //slotID:0
27526                 private var _REMOCON_ALERT_SWF_URL:String;                      //slotID:0
27527                 private var _CLICK_COUNTER_BASE_URL:String;                     //slotID:0
27528
27529                 public function get CHANNEL_URL():String
27530                 {       //MethodID:2961, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27531                         return this._CHANNEL_URL;
27532                 }
27533
27534                 internal function set CHANNEL_URL(hug1:String):void
27535                 {       //MethodID:2962, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27536                         this._CHANNEL_URL = hug1;
27537                 }
27538
27539                 public function get VIEW_SWF_URL():String
27540                 {       //MethodID:2963, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27541                         return this._VIEW_SWF_URL;
27542                 }
27543
27544                 internal function set VIEW_SWF_URL(hug1:String):void
27545                 {       //MethodID:2964, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27546                         this._VIEW_SWF_URL = hug1;
27547                 }
27548
27549                 public function get VIEWCONTROLLER_SWF_URL():String
27550                 {       //MethodID:2965, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27551                         return this._VIEWCONTROLLER_SWF_URL;
27552                 }
27553
27554                 internal function set VIEWCONTROLLER_SWF_URL(hug1:String):void
27555                 {       //MethodID:2966, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27556                         this._VIEWCONTROLLER_SWF_URL = hug1;
27557                 }
27558
27559                 public function get MARQUEE_PLAYER_URL():String
27560                 {       //MethodID:2967, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27561                         return this._MARQUEE_PLAYER_URL;
27562                 }
27563
27564                 internal function set MARQUEE_PLAYER_URL(hug1:String):void
27565                 {       //MethodID:2968, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27566                         this._MARQUEE_PLAYER_URL = hug1;
27567                 }
27568
27569                 public function get PLAYERVERSION_XML_URL():String
27570                 {       //MethodID:2969, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27571                         return this._PLAYERVERSION_XML_URL;
27572                 }
27573
27574                 internal function set PLAYERVERSION_XML_URL(hug1:String):void
27575                 {       //MethodID:2970, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27576                         this._PLAYERVERSION_XML_URL = hug1;
27577                 }
27578
27579                 public function get PLAYERINFO_XML_URL():String
27580                 {       //MethodID:2971, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27581                         return this._PLAYERINFO_XML_URL;
27582                 }
27583
27584                 internal function set PLAYERINFO_XML_URL(hug1:String):void
27585                 {       //MethodID:2972, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27586                         this._PLAYERINFO_XML_URL = hug1;
27587                 }
27588
27589                 public function get CROSSSHAREDOBJECT_SWF_URL():String
27590                 {       //MethodID:2973, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27591                         return this._CROSSSHAREDOBJECT_SWF_URL;
27592                 }
27593
27594                 internal function set CROSSSHAREDOBJECT_SWF_URL(hug1:String):void
27595                 {       //MethodID:2974, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27596                         this._CROSSSHAREDOBJECT_SWF_URL = hug1;
27597                 }
27598
27599                 public function get CROSSSHAREDOBJECT_NONIMG_SWF_URL():String
27600                 {       //MethodID:2975, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27601                         return this._CROSSSHAREDOBJECT_NONIMG_SWF_URL;
27602                 }
27603
27604                 internal function set CROSSSHAREDOBJECT_NONIMG_SWF_URL(hug1:String):void
27605                 {       //MethodID:2976, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27606                         this._CROSSSHAREDOBJECT_NONIMG_SWF_URL = hug1;
27607                 }
27608
27609                 public function get NICOSPLAYER_URL():String
27610                 {       //MethodID:2977, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27611                         return this._NICOSPLAYER_URL;
27612                 }
27613
27614                 internal function set NICOSPLAYER_URL(hug1:String):void
27615                 {       //MethodID:2978, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27616                         this._NICOSPLAYER_URL = hug1;
27617                 }
27618
27619                 public function get HIROBA_MOVIE_URL():String
27620                 {       //MethodID:2979, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27621                         return this._HIROBA_MOVIE_URL;
27622                 }
27623
27624                 internal function set HIROBA_MOVIE_URL(hug1:String):void
27625                 {       //MethodID:2980, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27626                         this._HIROBA_MOVIE_URL = hug1;
27627                 }
27628
27629                 public function get PARADE_MAP_URL():String
27630                 {       //MethodID:2981, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27631                         return this._PARADE_MAP_URL;
27632                 }
27633
27634                 internal function set PARADE_MAP_URL(hug1:String):void
27635                 {       //MethodID:2982, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27636                         this._PARADE_MAP_URL = hug1;
27637                 }
27638
27639                 public function get USERSPONSOR_MOVIE_URL():String
27640                 {       //MethodID:2983, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27641                         return this._USERSPONSOR_MOVIE_URL;
27642                 }
27643
27644                 internal function set USERSPONSOR_MOVIE_URL(hug1:String):void
27645                 {       //MethodID:2984, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27646                         this._USERSPONSOR_MOVIE_URL = hug1;
27647                 }
27648
27649                 public function get THUMBPLAYER_VIEW_URL():String
27650                 {       //MethodID:2985, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27651                         return this._THUMBPLAYER_VIEW_URL;
27652                 }
27653
27654                 internal function set THUMBPLAYER_VIEW_URL(hug1:String):void
27655                 {       //MethodID:2986, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27656                         this._THUMBPLAYER_VIEW_URL = hug1;
27657                 }
27658
27659                 public function get THUMBPLAYER_CONTROLLER_URL():String
27660                 {       //MethodID:2987, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27661                         return this._THUMBPLAYER_CONTROLLER_URL;
27662                 }
27663
27664                 internal function set THUMBPLAYER_CONTROLLER_URL(hug1:String):void
27665                 {       //MethodID:2988, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27666                         this._THUMBPLAYER_CONTROLLER_URL = hug1;
27667                 }
27668
27669                 public function get SMILEVIDEO_URL():String
27670                 {       //MethodID:2989, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27671                         return this._SMILEVIDEO_URL;
27672                 }
27673
27674                 internal function set SMILEVIDEO_URL(hug1:String):void
27675                 {       //MethodID:2990, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27676                         this._SMILEVIDEO_URL = hug1;
27677                 }
27678
27679                 public function get HOWTOUSE_URL():String
27680                 {       //MethodID:2991, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27681                         return this._HOWTOUSE_URL;
27682                 }
27683
27684                 internal function set HOWTOUSE_URL(hug1:String):void
27685                 {       //MethodID:2992, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27686                         this._HOWTOUSE_URL = hug1;
27687                 }
27688
27689                 public function get RECOMMEND_ENV_URL():String
27690                 {       //MethodID:2993, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27691                         return this._RECOMMEND_ENV_URL;
27692                 }
27693
27694                 internal function set RECOMMEND_ENV_URL(hug1:String):void
27695                 {       //MethodID:2994, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27696                         this._RECOMMEND_ENV_URL = hug1;
27697                 }
27698
27699                 public function get DIC_NICOVIDEO_URL():String
27700                 {       //MethodID:2995, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27701                         return this._DIC_NICOVIDEO_URL;
27702                 }
27703
27704                 internal function set DIC_NICOVIDEO_URL(hug1:String):void
27705                 {       //MethodID:2996, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27706                         this._DIC_NICOVIDEO_URL = hug1;
27707                 }
27708
27709                 public function get DELETE_COMMENT_URL():String
27710                 {       //MethodID:2997, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27711                         return this._DELETE_COMMENT_URL;
27712                 }
27713
27714                 internal function set DELETE_COMMENT_URL(hug1:String):void
27715                 {       //MethodID:2998, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27716                         this._DELETE_COMMENT_URL = hug1;
27717                 }
27718
27719                 public function get ENTRY_HANDBOOK_URL():String
27720                 {       //MethodID:2999, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27721                         return this._ENTRY_HANDBOOK_URL;
27722                 }
27723
27724                 internal function set ENTRY_HANDBOOK_URL(hug1:String):void
27725                 {       //MethodID:3000, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27726                         this._ENTRY_HANDBOOK_URL = hug1;
27727                 }
27728
27729                 public function get BASE_URL():String
27730                 {       //MethodID:3001, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27731                         return this._BASE_URL;
27732                 }
27733
27734                 internal function set BASE_URL(hug1:String):void
27735                 {       //MethodID:3002, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27736                         this._BASE_URL = hug1;
27737                 }
27738
27739                 public function get MOBILE_BASE_URL():String
27740                 {       //MethodID:3003, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27741                         return this._MOBILE_BASE_URL;
27742                 }
27743
27744                 internal function set MOBILE_BASE_URL(hug1:String):void
27745                 {       //MethodID:3004, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27746                         this._MOBILE_BASE_URL = hug1;
27747                 }
27748
27749                 public function get MOBILE_WATCH_URL():String
27750                 {       //MethodID:3005, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27751                         return this._MOBILE_WATCH_URL;
27752                 }
27753
27754                 internal function set MOBILE_WATCH_URL(hug1:String):void
27755                 {       //MethodID:3006, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27756                         this._MOBILE_WATCH_URL = hug1;
27757                 }
27758
27759                 public function get FLAPI_BASE_URL():String
27760                 {       //MethodID:3007, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27761                         return this._FLAPI_BASE_URL;
27762                 }
27763
27764                 internal function set FLAPI_BASE_URL(hug1:String):void
27765                 {       //MethodID:3008, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27766                         this._FLAPI_BASE_URL = hug1;
27767                 }
27768
27769                 public function get RES_URL():String
27770                 {       //MethodID:3009, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27771                         return this._RES_URL;
27772                 }
27773
27774                 internal function set RES_URL(hug1:String):void
27775                 {       //MethodID:3010, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27776                         this._RES_URL = hug1;
27777                 }
27778
27779                 public function get NICOVIDEO_ACCOUNT_SETTING_URL():String
27780                 {       //MethodID:3011, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27781                         return this._NICOVIDEO_ACCOUNT_SETTING_URL;
27782                 }
27783
27784                 internal function set NICOVIDEO_ACCOUNT_SETTING_URL(hug1:String):void
27785                 {       //MethodID:3012, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27786                         this._NICOVIDEO_ACCOUNT_SETTING_URL = hug1;
27787                 }
27788
27789                 public function get NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL():String
27790                 {       //MethodID:3013, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27791                         return this._NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL;
27792                 }
27793
27794                 internal function set NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL(hug1:String):void
27795                 {       //MethodID:3014, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27796                         this._NICOVIDEO_ACCOUNT_REGISTER_COMMON_URL = hug1;
27797                 }
27798
27799                 public function get GETFLV_URL():String
27800                 {       //MethodID:3015, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27801                         return this._GETFLV_URL;
27802                 }
27803
27804                 internal function set GETFLV_URL(hug1:String):void
27805                 {       //MethodID:3016, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27806                         this._GETFLV_URL = hug1;
27807                 }
27808
27809                 public function get GETPOSTKEY_URL():String
27810                 {       //MethodID:3017, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27811                         return this._GETPOSTKEY_URL;
27812                 }
27813
27814                 internal function set GETPOSTKEY_URL(hug1:String):void
27815                 {       //MethodID:3018, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27816                         this._GETPOSTKEY_URL = hug1;
27817                 }
27818
27819                 public function get GETRELATION_URL():String
27820                 {       //MethodID:3019, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27821                         return this._GETRELATION_URL;
27822                 }
27823
27824                 internal function set GETRELATION_URL(hug1:String):void
27825                 {       //MethodID:3020, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27826                         this._GETRELATION_URL = hug1;
27827                 }
27828
27829                 public function get GETTHUMBINFO_URL():String
27830                 {       //MethodID:3021, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27831                         return this._GETTHUMBINFO_URL;
27832                 }
27833
27834                 internal function set GETTHUMBINFO_URL(hug1:String):void
27835                 {       //MethodID:3022, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27836                         this._GETTHUMBINFO_URL = hug1;
27837                 }
27838
27839                 public function get GETGAMERANKING_URL():String
27840                 {       //MethodID:3023, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27841                         return this._GETGAMERANKING_URL;
27842                 }
27843
27844                 internal function set GETGAMERANKING_URL(hug1:String):void
27845                 {       //MethodID:3024, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27846                         this._GETGAMERANKING_URL = hug1;
27847                 }
27848
27849                 public function get GETENQUESTERESULT_URL():String
27850                 {       //MethodID:3025, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27851                         return this._GETENQUESTERESULT_URL;
27852                 }
27853
27854                 internal function set GETENQUESTERESULT_URL(hug1:String):void
27855                 {       //MethodID:3026, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27856                         this._GETENQUESTERESULT_URL = hug1;
27857                 }
27858
27859                 public function get GETCONFIGURENGCLIENT_URL():String
27860                 {       //MethodID:3027, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27861                         return this._GETCONFIGURENGCLIENT_URL;
27862                 }
27863
27864                 internal function set GETCONFIGURENGCLIENT_URL(hug1:String):void
27865                 {       //MethodID:3028, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27866                         this._GETCONFIGURENGCLIENT_URL = hug1;
27867                 }
27868
27869                 public function get THUMBWATCH_URL():String
27870                 {       //MethodID:3029, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27871                         return this._THUMBWATCH_URL;
27872                 }
27873
27874                 internal function set THUMBWATCH_URL(hug1:String):void
27875                 {       //MethodID:3030, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27876                         this._THUMBWATCH_URL = hug1;
27877                 }
27878
27879                 public function get GET_CONFIGURE_NGWORD():String
27880                 {       //MethodID:3031, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27881                         return this._GET_CONFIGURE_NGWORD;
27882                 }
27883
27884                 internal function set GET_CONFIGURE_NGWORD(hug1:String):void
27885                 {       //MethodID:3032, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27886                         this._GET_CONFIGURE_NGWORD = hug1;
27887                 }
27888
27889                 public function get GET_CLICKKEY_URL():String
27890                 {       //MethodID:3033, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27891                         return this._GET_CLICKKEY_URL;
27892                 }
27893
27894                 internal function set GET_CLICKKEY_URL(hug1:String):void
27895                 {       //MethodID:3034, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27896                         this._GET_CLICKKEY_URL = hug1;
27897                 }
27898
27899                 public function get RULES_URL():String
27900                 {       //MethodID:3035, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27901                         return this._RULES_URL;
27902                 }
27903
27904                 internal function set RULES_URL(hug1:String):void
27905                 {       //MethodID:3036, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27906                         this._RULES_URL = hug1;
27907                 }
27908
27909                 public function get NOSO_URL():String
27910                 {       //MethodID:3037, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27911                         return this._NOSO_URL;
27912                 }
27913
27914                 internal function set NOSO_URL(hug1:String):void
27915                 {       //MethodID:3038, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27916                         this._NOSO_URL = hug1;
27917                 }
27918
27919                 public function get NOSO_BANNER_URL():String
27920                 {       //MethodID:3039, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27921                         return this._NOSO_BANNER_URL;
27922                 }
27923
27924                 internal function set NOSO_BANNER_URL(hug1:String):void
27925                 {       //MethodID:3040, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27926                         this._NOSO_BANNER_URL = hug1;
27927                 }
27928
27929                 public function get GET_WAYBACKKEY_URL():String
27930                 {       //MethodID:3041, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27931                         return this._GET_WAYBACKKEY_URL;
27932                 }
27933
27934                 internal function set GET_WAYBACKKEY_URL(hug1:String):void
27935                 {       //MethodID:3042, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27936                         this._GET_WAYBACKKEY_URL = hug1;
27937                 }
27938
27939                 public function get GET_DELETEKEY_URL():String
27940                 {       //MethodID:3043, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27941                         return this._GET_DELETEKEY_URL;
27942                 }
27943
27944                 internal function set GET_DELETEKEY_URL(hug1:String):void
27945                 {       //MethodID:3044, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27946                         this._GET_DELETEKEY_URL = hug1;
27947                 }
27948
27949                 public function get GET_UPDATEKEY_URL():String
27950                 {       //MethodID:3045, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27951                         return this._GET_UPDATEKEY_URL;
27952                 }
27953
27954                 internal function set GET_UPDATEKEY_URL(hug1:String):void
27955                 {       //MethodID:3046, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27956                         this._GET_UPDATEKEY_URL = hug1;
27957                 }
27958
27959                 public function get GET_THREADKEY_URL():String
27960                 {       //MethodID:3047, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27961                         return this._GET_THREADKEY_URL;
27962                 }
27963
27964                 internal function set GET_THREADKEY_URL(hug1:String):void
27965                 {       //MethodID:3048, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27966                         this._GET_THREADKEY_URL = hug1;
27967                 }
27968
27969                 public function get REDIRECTOR_URL():String
27970                 {       //MethodID:3049, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27971                         return this._REDIRECTOR_URL;
27972                 }
27973
27974                 internal function set REDIRECTOR_URL(hug1:String):void
27975                 {       //MethodID:3050, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27976                         this._REDIRECTOR_URL = hug1;
27977                 }
27978
27979                 public function get adAPI_URL():String
27980                 {       //MethodID:3051, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27981                         return this._adAPI_URL;
27982                 }
27983
27984                 internal function set adAPI_URL(hug1:String):void
27985                 {       //MethodID:3052, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27986                         this._adAPI_URL = hug1;
27987                 }
27988
27989                 public function get REGISTERBGM_API_URL():String
27990                 {       //MethodID:3053, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
27991                         return this._REGISTERBGM_API_URL;
27992                 }
27993
27994                 internal function set REGISTERBGM_API_URL(hug1:String):void
27995                 {       //MethodID:3054, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
27996                         this._REGISTERBGM_API_URL = hug1;
27997                 }
27998
27999                 public function get GETBGM_API_URL():String
28000                 {       //MethodID:3055, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28001                         return this._GETBGM_API_URL;
28002                 }
28003
28004                 internal function set GETBGM_API_URL(hug1:String):void
28005                 {       //MethodID:3056, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28006                         this._GETBGM_API_URL = hug1;
28007                 }
28008
28009                 public function get GETSPONSOR_API_URL():String
28010                 {       //MethodID:3057, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28011                         return this._GETSPONSOR_API_URL;
28012                 }
28013
28014                 internal function set GETSPONSOR_API_URL(hug1:String):void
28015                 {       //MethodID:3058, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28016                         this._GETSPONSOR_API_URL = hug1;
28017                 }
28018
28019                 public function get OTHERSPONSOR_URL():String
28020                 {       //MethodID:3059, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28021                         return this._OTHERSPONSOR_URL;
28022                 }
28023
28024                 internal function set OTHERSPONSOR_URL(hug1:String):void
28025                 {       //MethodID:3060, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28026                         this._OTHERSPONSOR_URL = hug1;
28027                 }
28028
28029                 public function get LOGGER_API_URL():String
28030                 {       //MethodID:3061, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28031                         return this._LOGGER_API_URL;
28032                 }
28033
28034                 internal function set LOGGER_API_URL(hug1:String):void
28035                 {       //MethodID:3062, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28036                         this._LOGGER_API_URL = hug1;
28037                 }
28038
28039                 public function get PLAYLEN_API_URL():String
28040                 {       //MethodID:3063, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28041                         return this._PLAYLEN_API_URL;
28042                 }
28043
28044                 internal function set PLAYLEN_API_URL(hug1:String):void
28045                 {       //MethodID:3064, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28046                         this._PLAYLEN_API_URL = hug1;
28047                 }
28048
28049                 public function get PIZZA_URL():String
28050                 {       //MethodID:3065, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28051                         return this._PIZZA_URL;
28052                 }
28053
28054                 internal function set PIZZA_URL(hug1:String):void
28055                 {       //MethodID:3066, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28056                         this._PIZZA_URL = hug1;
28057                 }
28058
28059                 public function get CLICK_COUNTER_BASE_URL():String
28060                 {       //MethodID:3067, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28061                         return this._CLICK_COUNTER_BASE_URL;
28062                 }
28063
28064                 internal function set CLICK_COUNTER_BASE_URL(hug1:String):void
28065                 {       //MethodID:3068, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28066                         this._CLICK_COUNTER_BASE_URL = hug1;
28067                 }
28068
28069                 public function get HIROBA_GETPOSTKEY_URL():String
28070                 {       //MethodID:3069, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28071                         return this._HIROBA_GETPOSTKEY_URL;
28072                 }
28073
28074                 internal function set HIROBA_GETPOSTKEY_URL(hug1:String):void
28075                 {       //MethodID:3070, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28076                         this._HIROBA_GETPOSTKEY_URL = hug1;
28077                 }
28078
28079                 public function get PREMIUMLEAD_ON_SLIDER_LINK_URL():String
28080                 {       //MethodID:3071, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28081                         return this._PREMIUMLEAD_ON_SLIDER_LINK_URL;
28082                 }
28083
28084                 internal function set PREMIUMLEAD_ON_SLIDER_LINK_URL(hug1:String):void
28085                 {       //MethodID:3072, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28086                         this._PREMIUMLEAD_ON_SLIDER_LINK_URL = hug1;
28087                 }
28088
28089                 public function get GET_CHECKLIST_URL():String
28090                 {       //MethodID:3073, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28091                         return this._GET_CHECKLIST_URL;
28092                 }
28093
28094                 internal function set GET_CHECKLIST_URL(hug1:String):void
28095                 {       //MethodID:3074, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28096                         this._GET_CHECKLIST_URL = hug1;
28097                 }
28098
28099                 public function get HIROBACONNECTOR_SWF_URL():String
28100                 {       //MethodID:3075, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28101                         return this._HIROBACONNECTOR_SWF_URL;
28102                 }
28103
28104                 internal function set HIROBACONNECTOR_SWF_URL(hug1:String):void
28105                 {       //MethodID:3076, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28106                         this._HIROBACONNECTOR_SWF_URL = hug1;
28107                 }
28108
28109                 public function get VIDEO_MENU_URL():String
28110                 {       //MethodID:3077, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28111                         return this._VIDEO_MENU_URL;
28112                 }
28113
28114                 internal function set VIDEO_MENU_URL(hug1:String):void
28115                 {       //MethodID:3078, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28116                         this._VIDEO_MENU_URL = hug1;
28117                 }
28118
28119                 public function get VIDEO_ENDER_URL():String
28120                 {       //MethodID:3079, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28121                         return this._VIDEO_ENDER_URL;
28122                 }
28123
28124                 internal function set VIDEO_ENDER_URL(hug1:String):void
28125                 {       //MethodID:3080, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28126                         this._VIDEO_ENDER_URL = hug1;
28127                 }
28128
28129                 public function get MYLIST_ADD_API_URL():String
28130                 {       //MethodID:3081, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28131                         return this._MYLIST_ADD_API_URL;
28132                 }
28133
28134                 internal function set MYLIST_ADD_API_URL(hug1:String):void
28135                 {       //MethodID:3082, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28136                         this._MYLIST_ADD_API_URL = hug1;
28137                 }
28138
28139                 public function get FEED_ADD_API_URL():String
28140                 {       //MethodID:3083, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28141                         return this._FEED_ADD_API_URL;
28142                 }
28143
28144                 internal function set FEED_ADD_API_URL(hug1:String):void
28145                 {       //MethodID:3084, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28146                         this._FEED_ADD_API_URL = hug1;
28147                 }
28148
28149                 public function get FEED_DEL_API_URL():String
28150                 {       //MethodID:3085, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28151                         return this._FEED_DEL_API_URL;
28152                 }
28153
28154                 internal function set FEED_DEL_API_URL(hug1:String):void
28155                 {       //MethodID:3086, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28156                         this._FEED_DEL_API_URL = hug1;
28157                 }
28158
28159                 public function get FEED_LIST_API_URL():String
28160                 {       //MethodID:3087, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28161                         return this._FEED_LIST_API_URL;
28162                 }
28163
28164                 internal function set FEED_LIST_API_URL(hug1:String):void
28165                 {       //MethodID:3088, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28166                         this._FEED_LIST_API_URL = hug1;
28167                 }
28168
28169                 public function get MYLIST_PAGE_URL():String
28170                 {       //MethodID:3089, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28171                         return this._MYLIST_PAGE_URL;
28172                 }
28173
28174                 internal function set MYLIST_PAGE_URL(hug1:String):void
28175                 {       //MethodID:3090, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28176                         this._MYLIST_PAGE_URL = hug1;
28177                 }
28178
28179                 public function get OPEN_MYLIST_URL():String
28180                 {       //MethodID:3091, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28181                         return this._OPEN_MYLIST_URL;
28182                 }
28183
28184                 internal function set OPEN_MYLIST_URL(hug1:String):void
28185                 {       //MethodID:3092, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28186                         this._OPEN_MYLIST_URL = hug1;
28187                 }
28188
28189                 public function get PLUGINLOADER_SWF_URL():String
28190                 {       //MethodID:3093, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28191                         return this._PLUGINLOADER_SWF_URL;
28192                 }
28193
28194                 internal function set PLUGINLOADER_SWF_URL(hug1:String):void
28195                 {       //MethodID:3094, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28196                         this._PLUGINLOADER_SWF_URL = hug1;
28197                 }
28198
28199                 public function get GET_NSKEY_URL():String
28200                 {       //MethodID:3095, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28201                         return this._GET_NSKEY_URL;
28202                 }
28203
28204                 internal function set GET_NSKEY_URL(hug1:String):void
28205                 {       //MethodID:3096, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28206                         this._GET_NSKEY_URL = hug1;
28207                 }
28208
28209                 public function get MYLIST_COMMENT_URL():String
28210                 {       //MethodID:3097, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28211                         return this._MYLIST_COMMENT_URL;
28212                 }
28213
28214                 internal function set MYLIST_COMMENT_URL(hug1:String):void
28215                 {       //MethodID:3098, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28216                         this._MYLIST_COMMENT_URL = hug1;
28217                 }
28218
28219                 public function get APPLIBAR_URL():String
28220                 {       //MethodID:3099, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28221                         return this._APPLIBAR_URL;
28222                 }
28223
28224                 internal function set APPLIBAR_URL(hug1:*):void
28225                 {       //MethodID:3100, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28226                         this._APPLIBAR_URL = hug1;
28227                 }
28228
28229                 public function get JSCONNECTOR_SWF_URL():String
28230                 {       //MethodID:3101, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28231                         return this._JSCONNECTOR_SWF_URL;
28232                 }
28233
28234                 internal function set JSCONNECTOR_SWF_URL(hug1:String):void
28235                 {       //MethodID:3102, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28236                         this._JSCONNECTOR_SWF_URL = hug1;
28237                 }
28238
28239                 public function get GET_PLAYLIST_URL():String
28240                 {       //MethodID:3103, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28241                         return this._GET_PLAYLIST_URL;
28242                 }
28243
28244                 internal function set GET_PLAYLIST_URL(hug1:String):void
28245                 {       //MethodID:3104, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28246                         this._GET_PLAYLIST_URL = hug1;
28247                 }
28248
28249                 public function get WATCH_API_URL():String
28250                 {       //MethodID:3105, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28251                         return this._WATCH_API_URL;
28252                 }
28253
28254                 internal function set WATCH_API_URL(hug1:String):void
28255                 {       //MethodID:3106, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28256                         this._WATCH_API_URL = hug1;
28257                 }
28258
28259                 public function get PLAYLIST_PAGE_BASE_URL():String
28260                 {       //MethodID:3107, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28261                         return this._PLAYLIST_PAGE_BASE_URL;
28262                 }
28263
28264                 internal function set PLAYLIST_PAGE_BASE_URL(hug1:String):void
28265                 {       //MethodID:3108, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28266                         this._PLAYLIST_PAGE_BASE_URL = hug1;
28267                 }
28268
28269                 public function get LEAD_MOBILE_WATCH_API_URL():String
28270                 {       //MethodID:3109, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28271                         return this._LEAD_MOBILE_WATCH_API_URL;
28272                 }
28273
28274                 internal function set LEAD_MOBILE_WATCH_API_URL(hug1:String):void
28275                 {       //MethodID:3110, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28276                         this._LEAD_MOBILE_WATCH_API_URL = hug1;
28277                 }
28278
28279                 public function get REMOCON_ALERT_SWF_URL():String
28280                 {       //MethodID:3111, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28281                         return this._REMOCON_ALERT_SWF_URL;
28282                 }
28283
28284                 internal function set REMOCON_ALERT_SWF_URL(hug1:String):void
28285                 {       //MethodID:3112, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28286                         this._REMOCON_ALERT_SWF_URL = hug1;
28287                 }
28288
28289                 //constructor
28290                 public function NicoConfig()
28291                 {       //MethodID:3113, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
28292                         super();
28293                 }
28294         }
28295 }
28296
28297 //■script178■
28298
28299 package jp.nicovideo.nicoplayer.remocon{
28300
28301         import jp.nicovideo.nicoplayer.remocon.method.IRemoconMethod
28302
28303         //■class(instance)_index:226
28304         public interface IRemoconReceiver
28305         {
28306                 //static constructor
28307                 public static function IRemoconReceiver$cinit()
28308                 {       //MethodID:3115, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
28309                 }
28310
28311                 //variables/etc.
28312                 function callMethod(hug1:String, hug2:Object):void;                         //MethodID:3116, dispID:0
28313
28314                 function isDefinedMethod(hug1:String):Boolean;                              //MethodID:3117, dispID:0
28315
28316                 function defineMethod(hug1:String, hug2:Function):IRemoconMethod;           //MethodID:3118, dispID:0
28317
28318                 function get environment():Object;                                          //MethodID:3119, dispID:0
28319
28320                 //constructor
28321                 public function IRemoconReceiver();                                         //MethodID:3120, dispID:0
28322         }
28323 }
28324
28325 //■script179■
28326
28327 package jp.nicovideo.nicoplayer.remocon{
28328
28329         import flash.errors.IllegalOperationError
28330         import jp.nicovideo.nicoplayer.remocon.method.IRemoconMethod
28331         import jp.nicovideo.nicoplayer.remocon.method.RemoconMethod
28332
28333         //■class(instance)_index:228
28334         public class RemoconReceiver extends Object implements IRemoconReceiver
28335         {
28336                 //static constructor
28337                 public static function RemoconReceiver$cinit()
28338                 {       //MethodID:3124, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
28339                 }
28340
28341                 //static variables/etc.
28342                 private static var __instance:RemoconReceiver;                  //slotID:1
28343
28344                 public static function initialize(hug1:Object, hug2:Function):void
28345                 {       //dispID:3, MethodID:3125, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 47
28346                         if(__instance != null) throw new IllegalOperationError("RemoconReceiver.initialize: already initialized.");
28347
28348                         __instance = new void(new _Guard(), hug1);
28349
28350                         hug2(instance);
28351                 }
28352
28353                 public static function get hasInitialized():Boolean
28354                 {       //dispID:4, MethodID:3126, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 9
28355                         return (__instance != null);
28356                 }
28357
28358                 public static function get instance():RemoconReceiver
28359                 {       //dispID:5, MethodID:3127, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 25
28360                         if(__instance == null) throw new IllegalOperationError("RemoconReceiver.get instance: has not initialized yet.");
28361
28362                         return __instance;
28363                 }
28364
28365                 //constructor
28366                 public function RemoconReceiver(hug1:_Guard, hug2:Object)
28367                 {       //MethodID:3128, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 40
28368                         this._methods = {};
28369                         this._env = {};
28370
28371                         super();
28372
28373                         if(hug1 == null) throw new ArgumentError("RemoconReceiver.RemoconReceiver: invalid params guard.");
28374
28375                         this._env = hug2;
28376                 }
28377
28378                 //variables/etc.
28379                 private var _methods:Object;                                    //slotID:0
28380                 private var _env:Object;                                        //slotID:0
28381
28382                 public function callMethod(hug1:String, hug2:Object):void
28383                 {       //MethodID:3129, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 50
28384                         if(!this.isDefinedMethod(hug1)) throw new ArgumentError("RemoconReceiver.callMethod: is not defined method name \"" + hug1 + "\"");
28385                         IRemoconMethod(this._methods[hug1]).call(hug2);
28386                 }
28387
28388                 public function isDefinedMethod(hug1:String):Boolean
28389                 {       //MethodID:3130, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
28390                         return this._methods.hasOwnProperty(hug1);
28391                 }
28392
28393                 public function defineMethod(hug1:String, hug2:Function):IRemoconMethod
28394                 {       //MethodID:3131, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 25
28395                         var hug3:IRemoconMethod = new RemoconMethod(hug2);
28396                         this._methods[hug1] = hug3;
28397                         return hug3;
28398                 }
28399
28400                 public function get environment():Object
28401                 {       //MethodID:3132, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28402                         return this._env;
28403                 }
28404         }
28405 }
28406
28407
28408 //■class(instance)_index:227
28409 //private
28410 class _Guard extends Object
28411 {
28412         //static constructor
28413         public static function _Guard$cinit()
28414         {       //MethodID:3122, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
28415         }
28416
28417         //constructor
28418         public function _Guard()
28419         {       //MethodID:3123, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
28420                 super();
28421         }
28422 }
28423
28424 //■script180■
28425
28426 package jp.nicovideo.nicoplayer.models.filter{
28427
28428         import jp.nicovideo.util.Functions
28429
28430         //■class(instance)_index:229
28431         public interface IDeleteFilter
28432         {
28433                 //static constructor
28434                 public static function IDeleteFilter$cinit()
28435                 {       //MethodID:3134, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
28436                 }
28437
28438                 //variables/etc.
28439                 function get onFinishable():Functions;                                      //MethodID:3135, dispID:0
28440
28441                 function finishEdit():void;                                                 //MethodID:3136, dispID:0
28442
28443                 function set onFinishedEdit(hug1:Function):void;                            //MethodID:3137, dispID:0
28444
28445                 function updateDeleteList(hug1:Array, hug2:String):void;                    //MethodID:3138, dispID:0
28446
28447                 //constructor
28448                 public function IDeleteFilter();                                            //MethodID:3139, dispID:0
28449         }
28450 }
28451
28452 //■script181■
28453
28454 package jp.nicovideo.nicoplayer.models.filter{
28455
28456         import jp.nicovideo.nicoplayer.models.comment.CommentDeleteStatus
28457         import jp.nicovideo.nicoplayer.models.comment.IComment
28458         import jp.nicovideo.nicoplayer.models.comment.IEditableCommentList
28459         import jp.nicovideo.util.Functions
28460         import jp.nicovideo.util.events.EventBarrier
28461         import jp.nicovideo.util.events.EventResult
28462
28463         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
28464         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
28465
28466         //■class(instance)_index:230
28467         public class DeleteFilter extends Object implements IDeleteFilter
28468         {
28469                 //static constructor
28470                 public static function DeleteFilter$cinit()
28471                 {       //MethodID:3141, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
28472                 }
28473
28474                 //constructor
28475                 public function DeleteFilter(hug1:Object, hug2:Boolean=false)
28476                 {       //MethodID:3142, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 43
28477                         this.originalDeleteList = {};
28478                         this.newDeleteList = {};
28479                         this.finishedList = [];
28480                         this.__onFinishable = new Functions();
28481
28482                         super();
28483
28484                         this.__commentListContainer = hug1;
28485                         this.__isEditMode = hug2;
28486                 }
28487
28488                 //variables/etc.
28489                 private var __isEditMode:Boolean = false;                       //slotID:0
28490                 private var __onFinishedEdit:Function;                          //slotID:0
28491                 private var __isFinishable:Boolean = false;                     //slotID:0
28492                 private var __commentListContainer:Object;                      //slotID:0
28493                 private var originalDeleteList:Object;                          //slotID:0
28494                 private var newDeleteList:Object;                               //slotID:0
28495                 private var finishedList:Array;                                 //slotID:0
28496                 private var _listName:String;                                   //slotID:0
28497                 private var __onFinishable:Functions;                           //slotID:0
28498                 private var _lockedComment:LockedComment;                       //slotID:0
28499
28500                 public function get onFinishable():Functions
28501                 {       //MethodID:3143, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28502                         return this.__onFinishable;
28503                 }
28504
28505                 public function finishEdit():void
28506                 {       //MethodID:3146, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 572
28507                         internal var barrier:EventBarrier;                              //slotID:1
28508                         internal var allSucceeded:Boolean;                              //slotID:2
28509                         internal var listName:String;                                   //slotID:3
28510                         internal var deleteList:Array;                                  //slotID:4
28511                         internal var undeleteList:Array;                                //slotID:5
28512                         internal var resNo:uint;                                        //slotID:6
28513
28514                         allSucceeded = false;
28515                         listName = null;
28516                         deleteList = null;
28517                         undeleteList = null;
28518                         resNo = 0;
28519
28520                         if(!this.__isEditMode) throw new Error("DeleteFilter.finishEdit: is not edit mode.");
28521
28522                         if(!this.__isFinishable) throw new Error("DeleteFilter.finishEdit: is not able to finish editing.");
28523
28524                         barrier = new EventBarrier();
28525                         allSucceeded = true;
28526
28527                         for(listName in this.__commentListContainer){
28528                                 if(!this.__commentListContainer[listName]) break;
28529
28530                                 deleteList = [];
28531                                 undeleteList = [];
28532
28533                                 if(this.newDeleteList[listName] && (this.newDeleteList[listName].length > 0)){
28534                                         for each(resNo in this.newDeleteList[listName]){
28535                                                 if(this.originalDeleteList[listName]){
28536                                                         if(this.originalDeleteList[listName].indexOf(resNo) == (-1)) deleteList.push(resNo);
28537                                                 }
28538                                         }
28539                                 }
28540
28541                                 if(this.originalDeleteList[listName] && (this.originalDeleteList[listName].length > 0)){
28542                                         for each(resNo in this.originalDeleteList[listName]){
28543                                                 if(this.newDeleteList[listName]){
28544                                                         if(this.newDeleteList[listName].indexOf(resNo) == (-1)) undeleteList.push(resNo);
28545                                                 }
28546                                         }
28547                                 }
28548
28549                                 if((deleteList.length == 0) && (undeleteList.length == 0)){
28550                                 }else{
28551                                         deleteList = this._lockedComment.convertOriginalResNo(listName, deleteList);
28552                                         undeleteList = this._lockedComment.convertOriginalResNo(listName, undeleteList);
28553
28554                                         IEditableCommentList(this.__commentListContainer[listName]).editCommentList(deleteList, undeleteList, barrier.bind(function(hug1:Boolean):void{ //MethodID:3144, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 19
28555                                                 allSucceeded = (allSucceeded && hug1);
28556                                         }));
28557                                 }
28558                         }
28559
28560                         this._lockedComment.saveLockedComment();
28561                         barrier.finish(function():void{ //MethodID:3145, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 14
28562                                 __onFinishedEdit.apply(null, [allSucceeded]);
28563                         });
28564                 }
28565
28566                 public function set onFinishedEdit(hug1:Function):void
28567                 {       //MethodID:3147, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 48
28568                         if(!this.__isEditMode) throw new Error("DeleteFilter.finishEdit: is not edit mode.");
28569
28570                         this.__onFinishedEdit = hug1;
28571
28572                         if(!this.__isFinishable){
28573                                 this.__isFinishable = true;
28574
28575                                 this.onFinishable.apply();
28576                         }
28577                 }
28578
28579                 public function set lockedComment(hug1:LockedComment):void
28580                 {       //MethodID:3148, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28581                         this._lockedComment = hug1;
28582                 }
28583
28584                 public function updateDeleteList(hug1:Array, hug2:String):void
28585                 {       //MethodID:3149, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 79
28586                         if(!this.__isEditMode) throw new Error("DeleteFilter.updateDeleteList: is not edit-mode.");
28587
28588                         if(!this.__commentListContainer.hasOwnProperty(hug2)) throw new Error("DeleteFilter.updateDeleteList: invalid listName.");
28589
28590                         this.newDeleteList[hug2] = (this._lockedComment ? this._lockedComment.filterDeleteComment(hug1, hug2) : hug1);
28591                 }
28592
28593                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdated(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):EventResult
28594                 {       //MethodID:3151, LocalCount= 8 , MaxScope= 2, MaxStack= 5, CodeLength= 397
28595                         internal var addList:Array;                                     //slotID:1
28596                         internal var removeList:Array;                                  //slotID:2
28597                         internal var allClear:Boolean;                                  //slotID:3
28598                         internal var listName:String;                                   //slotID:4
28599                         internal var buf:Array;                                         //slotID:5
28600                         internal var comment:IComment;                                  //slotID:6
28601                         internal var isLockedComment:Function;                          //slotID:7
28602                         internal var locked:Array;                                      //slotID:8
28603                         internal var comment4Search:IComment;                           //slotID:9
28604
28605                         comment = null;
28606                         locked = null;
28607                         comment4Search = null;
28608                         addList = hug1;
28609                         removeList = hug2;
28610                         allClear = hug3;
28611                         listName = hug4;
28612                         isLockedComment = function(hug1:IComment):Boolean{      //MethodID:3150, LocalCount= 6 , MaxScope= 0, MaxStack= 2, CodeLength= 57
28613                                 var hug3:IComment = null;
28614                                 var hug2:Number = hug1.resNo;
28615
28616                                 for each(hug3 in locked){
28617                                         if(hug3.resNo == hug2) return true;
28618                                 }
28619
28620                                 return false;
28621                         };
28622
28623                         if(this.__isEditMode){
28624                                 locked = [];
28625
28626                                 if(this._lockedComment) locked = this._lockedComment.getLockedList(listName);
28627
28628                                 if(!this.originalDeleteList[listName]){
28629                                         this.originalDeleteList[listName] = [];
28630
28631                                         for each(comment4Search in addList){
28632                                                 if((comment4Search.deleted != CommentDeleteStatus.NON) && !isLockedComment(comment4Search)) this.originalDeleteList[listName].push(comment4Search.resNo);
28633                                         }
28634
28635                                         if(this.__onFinishedEdit != null){
28636                                                 this.__isFinishable = true;
28637
28638                                                 this.onFinishable.apply();
28639                                         }
28640                                 }
28641
28642                                 return EventResult.THROUGH;
28643                         }
28644
28645                         buf = [];
28646
28647                         for each(comment in addList){
28648                                 if((comment.deleted == 0) && (comment.isTrunk || !comment.command.patissier)){
28649                                         buf.push(comment);
28650                                 }else{
28651                                         removeList.push(comment);
28652                                 }
28653                         }
28654
28655                         return EventResult.replace([buf, removeList, allClear, listName]);
28656                 }
28657
28658                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get originalDeleteList():Object
28659                 {       //MethodID:3152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28660                         return this.originalDeleteList;
28661                 }
28662
28663                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get newDeleteList():Object
28664                 {       //MethodID:3153, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28665                         return this.newDeleteList;
28666                 }
28667         }
28668 }
28669
28670 //■script182■
28671
28672 package jp.nicovideo.nicoplayer.models.playlist{
28673
28674         //■class(instance)_index:231
28675         public interface IPlaylist
28676         {
28677                 //static constructor
28678                 public static function IPlaylist$cinit()
28679                 {       //MethodID:3155, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
28680                 }
28681
28682                 //variables/etc.
28683                 function getVideoInfo(hug1:String):VideoInfo;                               //MethodID:3156, dispID:0
28684
28685                 function getNextVideoInfo(hug1:String):VideoInfo;                           //MethodID:3157, dispID:0
28686
28687                 function getPrevVideoInfo(hug1:String):VideoInfo;                           //MethodID:3158, dispID:0
28688
28689                 function sort(hug1:uint, hug2:Boolean=false):void;                          //MethodID:3159, dispID:0
28690
28691                 function setErrorInfo(hug1:String, hug2:String):void;                       //MethodID:3160, dispID:0
28692
28693                 function get list():Array;                                                  //MethodID:3161, dispID:0
28694
28695                 function get id():uint;                                                     //MethodID:3162, dispID:0
28696
28697                 function get name():String;                                                 //MethodID:3163, dispID:0
28698
28699                 function get description():String;                                          //MethodID:3164, dispID:0
28700
28701                 function get defaultSort():uint;                                            //MethodID:3165, dispID:0
28702
28703                 function get token():String;                                                //MethodID:3166, dispID:0
28704
28705                 function set token(hug1:String):void;                                       //MethodID:3167, dispID:0
28706
28707                 function get numericSortItems():Array;                                      //MethodID:3168, dispID:0
28708
28709                 function get descendSortItems():Array;                                      //MethodID:3169, dispID:0
28710
28711                 //constructor
28712                 public function IPlaylist();                                                //MethodID:3170, dispID:0
28713         }
28714 }
28715
28716 //■script183■
28717
28718 package jp.nicovideo.nicoplayer.models.playlist{
28719
28720         import com.adobe.serialization.json.JSON
28721         import jp.nicovideo.nicoplayer.models.SystemMessage
28722         import jp.nicovideo.nicoplayer.models.api.InitializeInfo
28723         import jp.nicovideo.util.Functions
28724         import jp.nicovideo.util.HTTPUtils
28725         import jp.nicovideo.util.events.event_sender
28726
28727         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender);
28728
28729         //■class(instance)_index:232
28730         public class Playlist extends Object implements IPlaylist
28731         {
28732                 //static constructor
28733                 public static function Playlist$cinit()
28734                 {       //MethodID:3172, LocalCount= 1 , MaxScope= 1, MaxStack= 15, CodeLength= 157
28735                         _NUMERIC_SORT_ITEMS = [PlaylistSortConstants.CREATE_TIME_ASCEND, PlaylistSortConstants.CREATE_TIME_DESCEND, PlaylistSortConstants.FIRST_RETREVE_ASCEND, PlaylistSortConstants.FIRST_RETREVE_DESCEND, PlaylistSortConstants.VIEW_COUNTER_ASCEND, PlaylistSortConstants.VIEW_COUNTER_DESCEND, PlaylistSortConstants.UPDATE_TIME_ASCEND, PlaylistSortConstants.UPDATE_TIME_DESCEND, PlaylistSortConstants.NUM_RES_ASCEND, PlaylistSortConstants.NUM_RES_DESCEND, PlaylistSortConstants.MYLIST_COUNTER_ASCEND, PlaylistSortConstants.MYLIST_COUNTER_DESCEND, PlaylistSortConstants.LENGTH_SECONDS_ASCEND, PlaylistSortConstants.LENGTH_SECONDS_DESCEND];
28736                         _DESCEND_SORT_ITEMS = [PlaylistSortConstants.CREATE_TIME_DESCEND, PlaylistSortConstants.MYLIST_COMMENT_DESCEND, PlaylistSortConstants.FIRST_RETREVE_DESCEND, PlaylistSortConstants.LENGTH_SECONDS_DESCEND, PlaylistSortConstants.MYLIST_COUNTER_DESCEND, PlaylistSortConstants.NUM_RES_DESCEND, PlaylistSortConstants.TITLE_DESCEND, PlaylistSortConstants.UPDATE_TIME_DESCEND, PlaylistSortConstants.VIEW_COUNTER_DESCEND];
28737                 }
28738
28739                 //static variables/etc.
28740                 private static const _NUMERIC_SORT_ITEMS:Array;                 //slotID:1
28741                 private static const _DESCEND_SORT_ITEMS:Array;                 //slotID:2
28742
28743                 //constructor
28744                 public function Playlist(hug1:String, hug2:Object, hug3:Number, hug4:Function)
28745                 {       //MethodID:3175, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 78
28746                         internal var apiURL:String;                                     //slotID:1
28747                         internal var apiParam:Object;                                   //slotID:2
28748                         internal var defaultSort:Number;                                //slotID:3
28749                         internal var callbackFunc:Function;                             //slotID:4
28750
28751                         apiURL = hug1;
28752                         apiParam = hug2;
28753                         defaultSort = hug3;
28754                         callbackFunc = hug4;
28755                         this.onPlaylistSorted = new Functions();
28756                         this.onPlaylistItemUpdated = new Functions();
28757                         this._systemMessage = SystemMessage.instance;
28758
28759                         super();
28760                         HTTPUtils.loadJSON(function(hug1:Object):void{  //MethodID:3174, LocalCount= 5 , MaxScope= 1, MaxStack= 17, CodeLength= 646
28761                                 internal var obj:Object;                                        //slotID:1
28762                                 internal var playlistInfo:Object;                               //slotID:2
28763                                 internal var items:Object;                                      //slotID:3
28764                                 internal var item:Object;                                       //slotID:4
28765                                 internal var videoInfo:VideoInfo;                               //slotID:5
28766
28767                                 item = null;
28768                                 videoInfo = null;
28769                                 obj = hug1;
28770
28771                                 if(!obj || (obj.status == "ng")){
28772                                         callbackFunc(false);
28773
28774                                         return;
28775                                 }
28776
28777                                 _initializeInfo = InitializeInfo.init(obj.user_id, obj.nickname, (obj.is_premium == "1"), parseInt(obj.ng_rv, 10), (obj.ng_maintenance == "1"), obj.feedrev, ((obj.rpu != null) ? JSON.decode(obj.rpu) : null));
28778                                 playlistInfo = obj.playlist;
28779                                 _id = playlistInfo.id;
28780                                 _name = playlistInfo.name;
28781                                 _description = playlistInfo.description;
28782
28783                                 if(obj.playlist && obj.playlist.default_sort) _ownerSort = uint(obj.playlist.default_sort);
28784
28785                                 if(isNaN(defaultSort)){
28786                                         _defaultSort = _ownerSort;
28787                                 }else if(defaultSort || (defaultSort == 0)){
28788                                         _defaultSort = uint(defaultSort);
28789                                 }
28790
28791                                 _token = obj.playlist_token;
28792                                 items = obj.items;
28793                                 _list = [];
28794
28795                                 for each(item in items){
28796                                         videoInfo = new VideoInfo(item.title, item.description, item.mylist_comment, item.thread_id, item.video_id, item.watch_id, item.thumbnail_url, item.view_counter, item.num_res, item.mylist_counter, item.deleted, new Date(item.item_update_time), new Date(item.first_retrieve), new Date(item.create_time), item.length_seconds);
28797
28798                                         if(videoInfo.deleted == 8){
28799                                                 videoInfo.errorMessage = PlaylistErrorManager.VIDEO_ERROR;
28800                                         }else if(videoInfo.deleted){
28801                                                 videoInfo.errorMessage = PlaylistErrorManager.NO_VIDEO;
28802                                         }
28803
28804                                         if(item.thread_id) list.push(videoInfo);
28805                                 }
28806
28807                                 sort(_ownerSort, true);
28808                                 _list.forEach(function(hug1:VideoInfo, hug2:int, hug3:Array):void{      //MethodID:3173, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 9
28809                                         hug1.ownersIndex = (hug2 + 1);
28810                                 });
28811                                 sort(_defaultSort);
28812                                 callbackFunc(true);
28813                         }, apiURL, apiParam);
28814                 }
28815
28816                 //variables/etc.
28817                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistSorted:Functions;//slotID:0
28818                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_sender) const onPlaylistItemUpdated:Functions;//slotID:0
28819                 private var _list:Array;                                        //slotID:0
28820                 private var _id:uint;                                           //slotID:0
28821                 private var _name:String;                                       //slotID:0
28822                 private var _description:String;                                //slotID:0
28823                 private var _defaultSort:uint = 1;                              //slotID:0
28824                 private var _ownerSort:uint = 1;                                //slotID:0
28825                 private var _token:String;                                      //slotID:0
28826                 private var _initializeInfo:InitializeInfo;                     //slotID:0
28827                 private var _systemMessage:SystemMessage;                       //slotID:0
28828
28829                 public function getVideoInfo(hug1:String):VideoInfo
28830                 {       //MethodID:3177, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 34
28831                         internal var threadID:String;                                   //slotID:1
28832                         internal var videoInfo:VideoInfo;                               //slotID:2
28833
28834                         videoInfo = null;
28835                         threadID = hug1;
28836
28837                         this.list.forEach(function(hug1:VideoInfo, hug2:int, hug3:Array):void{  //MethodID:3176, LocalCount= 4 , MaxScope= 0, MaxStack= 2, CodeLength= 20
28838                                 if(hug1.threadID == threadID){
28839                                         videoInfo = hug1;
28840                                         return;
28841                                 }
28842                         });
28843
28844                         return videoInfo;
28845                 }
28846
28847                 public function getNextVideoInfo(hug1:String):VideoInfo
28848                 {       //MethodID:3178, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 53
28849                         var hug2:VideoInfo = this.getVideoInfo(hug1);
28850                         var hug3:int = (this.list.indexOf(hug2) + 1);
28851
28852                         if(hug3 >= this.list.length) return null;
28853
28854                         return VideoInfo(this.list[hug3]);
28855                 }
28856
28857                 public function getPrevVideoInfo(hug1:String):VideoInfo
28858                 {       //MethodID:3179, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 46
28859                         var hug2:VideoInfo = this.getVideoInfo(hug1);
28860                         var hug3:int = (this.list.indexOf(hug2) - 1);
28861
28862                         if(hug3 < 0) return null;
28863
28864                         return VideoInfo(this.list[hug3]);
28865                 }
28866
28867                 public function setErrorInfo(hug1:String, hug2:String):void
28868                 {       //MethodID:3180, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 43
28869                         var hug3:VideoInfo = this.getVideoInfo(hug1);
28870                         hug3.errorMessage = hug2;
28871
28872                         onPlaylistItemUpdated.apply(this._list);
28873                 }
28874
28875                 public function sort(hug1:uint, hug2:Boolean=false):void
28876                 {       //MethodID:3181, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 604
28877                         var hug3:String = null;
28878                         var hug4:uint = ((_NUMERIC_SORT_ITEMS.indexOf(hug1) != (-1)) ? Array.NUMERIC : 0);
28879                         var hug5:uint = ((_DESCEND_SORT_ITEMS.indexOf(hug1) != (-1)) ? Array.DESCENDING : 0);
28880                         var hug6:uint = hug1;
28881
28882                         switch(hug6){
28883                         case PlaylistSortConstants.CREATE_TIME_ASCEND:
28884                         case PlaylistSortConstants.CREATE_TIME_DESCEND:
28885                                 hug3 = "createTime";
28886                                 break;
28887                         case PlaylistSortConstants.MYLIST_COMMENT_ASCEND:
28888                         case PlaylistSortConstants.MYLIST_COMMENT_DESCEND:
28889                                 hug3 = "mylistComment";
28890                                 break;
28891                         case PlaylistSortConstants.FIRST_RETREVE_ASCEND:
28892                         case PlaylistSortConstants.FIRST_RETREVE_DESCEND:
28893                                 hug3 = "firstRetrieve";
28894                                 break;
28895                         case PlaylistSortConstants.LENGTH_SECONDS_ASCEND:
28896                         case PlaylistSortConstants.LENGTH_SECONDS_DESCEND:
28897                                 hug3 = "lengthSeconds";
28898                                 break;
28899                         case PlaylistSortConstants.MYLIST_COUNTER_ASCEND:
28900                         case PlaylistSortConstants.MYLIST_COUNTER_DESCEND:
28901                                 hug3 = "mylistCounter";
28902                                 break;
28903                         case PlaylistSortConstants.NUM_RES_ASCEND:
28904                         case PlaylistSortConstants.NUM_RES_DESCEND:
28905                                 hug3 = "numRes";
28906                                 break;
28907                         case PlaylistSortConstants.TITLE_ASCEND:
28908                         case PlaylistSortConstants.TITLE_DESCEND:
28909                                 hug3 = "title";
28910                                 break;
28911                         case PlaylistSortConstants.UPDATE_TIME_ASCEND:
28912                         case PlaylistSortConstants.UPDATE_TIME_DESCEND:
28913                                 hug3 = "itemUpdateTime";
28914                                 break;
28915                         case PlaylistSortConstants.VIEW_COUNTER_ASCEND:
28916                         case PlaylistSortConstants.VIEW_COUNTER_DESCEND:
28917                                 hug3 = "viewCounter";
28918                                 break;
28919                         default:
28920                                 break;
28921                         }
28922
28923                         this._list.sortOn(hug3, (hug4 | hug5));
28924
28925                         if(!hug2) onPlaylistSorted.apply(this._list);
28926                 }
28927
28928                 public function get list():Array
28929                 {       //MethodID:3182, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28930                         return this._list;
28931                 }
28932
28933                 public function get id():uint
28934                 {       //MethodID:3183, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28935                         return this._id;
28936                 }
28937
28938                 public function get name():String
28939                 {       //MethodID:3184, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28940                         return this._name;
28941                 }
28942
28943                 public function get description():String
28944                 {       //MethodID:3185, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28945                         return this._description;
28946                 }
28947
28948                 public function get defaultSort():uint
28949                 {       //MethodID:3186, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28950                         return this._defaultSort;
28951                 }
28952
28953                 public function get token():String
28954                 {       //MethodID:3187, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
28955                         return this._token;
28956                 }
28957
28958                 public function set token(hug1:String):void
28959                 {       //MethodID:3188, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
28960                         this._token = hug1;
28961                 }
28962
28963                 public function get numericSortItems():Array
28964                 {       //MethodID:3189, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
28965                         return _NUMERIC_SORT_ITEMS;
28966                 }
28967
28968                 public function get descendSortItems():Array
28969                 {       //MethodID:3190, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
28970                         return _DESCEND_SORT_ITEMS;
28971                 }
28972         }
28973 }
28974
28975 //■script184■
28976
28977 package jp.nicovideo.nicoplayer.tpls.shutter{
28978
28979         //■class(instance)_index:233
28980         public class CommentShutterConstants extends Object
28981         {
28982                 //static constructor
28983                 public static function CommentShutterConstants$cinit()
28984                 {       //MethodID:3192, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 332
28985                         _END_OF_ENUM = 0;
28986                         SHUTTER_INITIALIZING = (_END_OF_ENUM++);
28987                         SHUTTER_COMMENT_LOADING = (_END_OF_ENUM++);
28988                         SHUTTER_NICOS_COMMENT_DISABLED = (_END_OF_ENUM++);
28989                         SHUTTER_NICOS_ATPAUSE = (_END_OF_ENUM++);
28990                         SHUTTER_NICOWARI = (_END_OF_ENUM++);
28991                         SHUTTER_WAYBACK = (_END_OF_ENUM++);
28992                         SHUTTER_MYMEMORY = (_END_OF_ENUM++);
28993                         SHUTTER_CHANNEL_COMMUNITY = (_END_OF_ENUM++);
28994                         SHUTTER_NOCOMMENT = (_END_OF_ENUM++);
28995                         SHUTTER_NOSHAREDOBJECT = (_END_OF_ENUM++);
28996                         SHUTTER_LOCKED = (_END_OF_ENUM++);
28997                         SHUTTER_OTHER = (_END_OF_ENUM++);
28998                         END_OF_ENUM = _END_OF_ENUM;
28999                 }
29000
29001                 //static variables/etc.
29002                 private static var _END_OF_ENUM:int = 0;                        //slotID:1
29003                 public static const SHUTTER_INITIALIZING:int;                   //slotID:2
29004                 public static const SHUTTER_COMMENT_LOADING:int;                //slotID:3
29005                 public static const SHUTTER_NICOS_COMMENT_DISABLED:int;         //slotID:4
29006                 public static const SHUTTER_NICOS_ATPAUSE:int;                  //slotID:5
29007                 public static const SHUTTER_NICOWARI:int;                       //slotID:6
29008                 public static const SHUTTER_WAYBACK:int;                        //slotID:7
29009                 public static const SHUTTER_MYMEMORY:int;                       //slotID:8
29010                 public static const SHUTTER_CHANNEL_COMMUNITY:int;              //slotID:9
29011                 public static const SHUTTER_NOCOMMENT:int;                      //slotID:10
29012                 public static const SHUTTER_NOSHAREDOBJECT:int;                 //slotID:11
29013                 public static const SHUTTER_LOCKED:int;                         //slotID:12
29014                 public static const SHUTTER_OTHER:int;                          //slotID:13
29015                 public static const END_OF_ENUM:int;                            //slotID:14
29016
29017                 //constructor
29018                 public function CommentShutterConstants()
29019                 {       //MethodID:3193, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
29020                         super();
29021                 }
29022         }
29023 }
29024
29025 //■script185■
29026
29027 package jp.nicovideo.nicoplayer.remocon{
29028
29029         import flash.events.Event
29030         import flash.events.EventDispatcher
29031
29032         //■class(instance)_index:234
29033         public class RemoconState extends EventDispatcher
29034         {
29035                 //static constructor
29036                 public static function RemoconState$cinit()
29037                 {       //MethodID:3195, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 120
29038                         MAINTENANCE = "Maintenance";
29039                         INITIALIZE = "Initialize";
29040                         UNEXECUTABLE = "Unexecutable";
29041                         MANY_CONNECTION = "ManyConnection";
29042                         MAX_CONNECTION = "MaxConnection";
29043                         STANBY = "Standby";
29044                         CONNECTION = "Connection";
29045                         RECONNECTION = "Reconnection";
29046                         SEARCH = "Search";
29047                         COMPLETE = "Complete";
29048                         ERROR = "Error";
29049                         CLOSE = "Close";
29050                         _getInstance = function():RemoconState{ //MethodID:3196, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 50
29051                                 internal var obj:RemoconState;                                  //slotID:1
29052
29053                                 obj = null;
29054                                 obj = new RemoconState(new _Guard());
29055                                 _getInstance = function():RemoconState{ //MethodID:3197, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 4
29056                                         return obj;
29057                                 };
29058
29059                                 return _getInstance();
29060                         };
29061                 }
29062
29063                 //static variables/etc.
29064                 public static const MAINTENANCE:String = "Maintenance";         //slotID:1
29065                 public static const INITIALIZE:String = "Initialize";           //slotID:2
29066                 public static const UNEXECUTABLE:String = "Unexecutable";       //slotID:3
29067                 public static const MANY_CONNECTION:String = "ManyConnection";  //slotID:4
29068                 public static const MAX_CONNECTION:String = "MaxConnection";    //slotID:5
29069                 public static const STANBY:String = "Standby";                  //slotID:6
29070                 public static const CONNECTION:String = "Connection";           //slotID:7
29071                 public static const RECONNECTION:String = "Reconnection";       //slotID:8
29072                 public static const SEARCH:String = "Search";                   //slotID:9
29073                 public static const COMPLETE:String = "Complete";               //slotID:10
29074                 public static const ERROR:String = "Error";                     //slotID:11
29075                 public static const CLOSE:String = "Close";                     //slotID:12
29076                 private static var _getInstance:Function;                       //slotID:13
29077
29078                 public static function get instance():RemoconState
29079                 {       //dispID:3, MethodID:3198, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
29080                         return _getInstance();
29081                 }
29082
29083                 //constructor
29084                 public function RemoconState(hug1:_Guard)
29085                 {       //MethodID:3199, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 23
29086                         super();
29087
29088                         if(hug1 == null) throw new ArgumentError("RemoconState.RemoconState: invalid params guard.");
29089                 }
29090
29091                 //variables/etc.
29092                 private var _isConnecting:Boolean = false;                      //slotID:0
29093
29094                 public function updateState(hug1:String):void
29095                 {       //MethodID:3200, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 67
29096                         if(hug1 == COMPLETE){
29097                                 this._isConnecting = true;
29098
29099                                 dispatchEvent(new Event(Event.CONNECT));
29100                         }else if(this._isConnecting){
29101                                 this._isConnecting = false;
29102
29103                                 dispatchEvent(new Event(Event.CLOSE));
29104                         }
29105                 }
29106
29107                 public function get isConnecting():Boolean
29108                 {       //MethodID:3201, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29109                         return this._isConnecting;
29110                 }
29111         }
29112 }
29113
29114
29115 //■class(instance)_index:235
29116 //private
29117 class _Guard extends Object
29118 {
29119         //static constructor
29120         public static function _Guard$cinit()
29121         {       //MethodID:3202, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
29122         }
29123
29124         //constructor
29125         public function _Guard()
29126         {       //MethodID:3203, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
29127                 super();
29128         }
29129 }
29130
29131 //■script186■
29132
29133 package jp.nicovideo.nicoplayer.models.comment{
29134
29135         //■class(instance)_index:236
29136         public class CommentListPublicStatus extends Object
29137         {
29138                 //static constructor
29139                 public static function CommentListPublicStatus$cinit()
29140                 {       //MethodID:3205, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
29141                         ALL_DISABLE = "all_disabled";
29142                         ALL_ENABLE = "all_enabled";
29143                         MEMBER_ONLY = "member_only";
29144                 }
29145
29146                 //static variables/etc.
29147                 public static const ALL_DISABLE:String = "all_disabled";        //slotID:1
29148                 public static const ALL_ENABLE:String = "all_enabled";          //slotID:2
29149                 public static const MEMBER_ONLY:String = "member_only";         //slotID:3
29150
29151                 //constructor
29152                 public function CommentListPublicStatus()
29153                 {       //MethodID:3206, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
29154                         super();
29155                 }
29156         }
29157 }
29158
29159 //■script187■
29160
29161 package jp.nicovideo.nicoplayer.models.relation{
29162
29163         //■class(instance)_index:237
29164         public interface IRecommendListOptions
29165         {
29166                 //static constructor
29167                 public static function IRecommendListOptions$cinit()
29168                 {       //MethodID:3208, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
29169                 }
29170
29171                 //variables/etc.
29172                 function get page():uint;                                                   //MethodID:3209, dispID:0
29173
29174                 function get order():String;                                                //MethodID:3210, dispID:0
29175
29176                 function get sort():String;                                                 //MethodID:3211, dispID:0
29177
29178                 //constructor
29179                 public function IRecommendListOptions();                                    //MethodID:3212, dispID:0
29180         }
29181 }
29182
29183 //■script188■
29184
29185 package jp.nicovideo.nicoplayer.models{
29186
29187         import jp.nicovideo.nicoplayer.models.relation.IVideoenderInfo
29188         import jp.nicovideo.util.Functions
29189
29190         //■class(instance)_index:238
29191         public interface IRelatedVideoList
29192         {
29193                 //static constructor
29194                 public static function IRelatedVideoList$cinit()
29195                 {       //MethodID:3214, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
29196                 }
29197
29198                 //variables/etc.
29199                 function loadRecommendedList(hug1:String=null, hug2:String=null, hug3:uint=1):void;//MethodID:3215, dispID:0
29200
29201                 function loadVideoenderInfo():void;                                         //MethodID:3216, dispID:0
29202
29203                 function loadWhole():void;                                                  //MethodID:3217, dispID:0
29204
29205                 function get hasRecommendedListTotaled():Boolean;                           //MethodID:3218, dispID:0
29206
29207                 function get onRecommendedListLoaded():Functions;                           //MethodID:3219, dispID:0
29208
29209                 function get isRecommendeListLoading():Boolean;                             //MethodID:3220, dispID:0
29210
29211                 function get isVideoenderInfoLoading():Boolean;                             //MethodID:3221, dispID:0
29212
29213                 function get onVideoenderInfoLoaded():Functions;                            //MethodID:3222, dispID:0
29214
29215                 function get videoenderInfo():IVideoenderInfo;                              //MethodID:3223, dispID:0
29216
29217                 //constructor
29218                 public function IRelatedVideoList();                                        //MethodID:3224, dispID:0
29219         }
29220 }
29221
29222 //■script189■
29223
29224 package jp.nicovideo.nicoplayer.models{
29225
29226         import __AS3__.vec.Vector
29227         import flash.errors.IllegalOperationError
29228         import jp.nicovideo.nicoplayer.models.api.IGetRelation
29229         import jp.nicovideo.nicoplayer.models.api.relation.GetRelationTarget
29230         import jp.nicovideo.nicoplayer.models.api.relation.IGetRelationResult
29231         import jp.nicovideo.nicoplayer.models.api.relation.IOwnerOtherVideo
29232         import jp.nicovideo.nicoplayer.models.relation.IVideoenderInfo
29233         import jp.nicovideo.nicoplayer.models.relation.VideoenderInfo
29234         import jp.nicovideo.util.Functions
29235
29236         //■class(instance)_index:239
29237         public class RelatedVideoList extends Object implements IRelatedVideoList
29238         {
29239                 //static constructor
29240                 public static function RelatedVideoList$cinit()
29241                 {       //MethodID:3226, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
29242                 }
29243
29244                 //constructor
29245                 public function RelatedVideoList(hug1:IGetRelation, hug2:Boolean)
29246                 {       //MethodID:3227, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 35
29247                         this._ON_RECOMMENDED_LIST_LOADED = new Functions();
29248                         this._ON_VIDEOENDER_INFO_LOADED = new Functions();
29249
29250                         super();
29251
29252                         this._getRelation = hug1;
29253                         this._hasRecommendedListTotaled = !hug2;
29254                 }
29255
29256                 //variables/etc.
29257                 private const _ON_RECOMMENDED_LIST_LOADED:Functions;            //slotID:0
29258                 private const _ON_VIDEOENDER_INFO_LOADED:Functions;             //slotID:0
29259                 private var _hasRecommendedListTotaled:Boolean;                 //slotID:0
29260                 private var _isRecommendedListLoading:Boolean = false;          //slotID:0
29261                 private var _isVideoenderInfoLoading:Boolean = false;           //slotID:0
29262                 private var _nextRecommendedListParameters:_RequestParameters;  //slotID:0
29263                 private var _getRelation:IGetRelation;                          //slotID:0
29264                 private var _videoInfo:VideoenderInfo;                          //slotID:0
29265                 private var _hasRecommendedListLoadCalled:Boolean;              //slotID:0
29266
29267                 public function loadRecommendedList(hug1:String=null, hug2:String=null, hug3:uint=1):void
29268                 {       //MethodID:3229, LocalCount= 5 , MaxScope= 2, MaxStack= 8, CodeLength= 156
29269                         internal var sort:String = null;                                //slotID:1
29270                         internal var order:String = null;                               //slotID:2
29271                         internal var page:uint = 1;                                     //slotID:3
29272                         internal var params:_RequestParameters;                         //slotID:4
29273
29274                         params = null;
29275                         sort = hug1;
29276                         order = hug2;
29277                         page = hug3;
29278
29279                         if(!this._hasRecommendedListTotaled) throw new Error("RelatedVideoList.load: has not totaled related videos.");
29280
29281                         params = new _RequestParameters(sort, order, page);
29282
29283                         if(this._isRecommendedListLoading){
29284                                 this._nextRecommendedListParameters = params;
29285                                 return;
29286                         }
29287
29288                         this._isRecommendedListLoading = true;
29289                         this._hasRecommendedListLoadCalled = true;
29290
29291                         this._getRelation.load(function(hug1:Boolean, hug2:IGetRelationResult):void{    //MethodID:3228, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 81
29292                                 var hug3:_RequestParameters = null;
29293                                 _isRecommendedListLoading = false;
29294
29295                                 onRecommendedListLoaded.apply(hug1, (hug1 ? hug2.recommendedVideoList : null), params);
29296
29297                                 if(_nextRecommendedListParameters != null){
29298                                         hug3 = _nextRecommendedListParameters;
29299                                         _nextRecommendedListParameters = null;
29300
29301                                         loadRecommendedList(hug3.sort, hug3.order, hug3.page);
29302                                 }
29303                         }, Vector.<String>([GetRelationTarget.RELATED_VIDEO]), null, 0, params.sort, params.order, params.page);
29304                 }
29305
29306                 public function loadVideoenderInfo():void
29307                 {       //MethodID:3231, LocalCount= 2 , MaxScope= 2, MaxStack= 8, CodeLength= 100
29308                         if(this._isVideoenderInfoLoading) throw new IllegalOperationError("RelatedVideoList.loadVideoenderInfo: now loading.");
29309
29310                         this._isVideoenderInfoLoading = true;
29311
29312                         this._getRelation.load(function(hug1:Boolean, hug2:IGetRelationResult):void{    //MethodID:3230, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 29
29313                                 if(hug1) _setVideoenderInfo(hug2);
29314
29315                                 _isVideoenderInfoLoading = false;
29316
29317                                 onVideoenderInfoLoaded.apply(hug1);
29318                         }, Vector.<String>([GetRelationTarget.LIVE_DJ]), Vector.<String>([GetRelationTarget.OWNER_VIDEO, GetRelationTarget.RELATED_VIDEO]), 1, RelatedConstants.SORT_RELATEDPOINT, RelatedConstants.ORDER_DOWN, 1);
29319                 }
29320
29321                 public function loadWhole():void
29322                 {       //MethodID:3233, LocalCount= 3 , MaxScope= 2, MaxStack= 8, CodeLength= 221
29323                         internal var targets:Vector.<String>;                           //slotID:1
29324                         internal var params:_RequestParameters;                         //slotID:2
29325
29326                         targets = null;
29327                         params = null;
29328                         targets = Vector.<String>([]);
29329
29330                         if(this._hasRecommendedListTotaled && !this._hasRecommendedListLoadCalled && !this._isRecommendedListLoading) targets.push(GetRelationTarget.RELATED_VIDEO);
29331
29332                         if((this._videoInfo == null) && !this._isVideoenderInfoLoading) targets.push(GetRelationTarget.LIVE_DJ, GetRelationTarget.OWNER_VIDEO);
29333
29334                         if(targets.length == 0) return;
29335
29336                         this._isRecommendedListLoading = this._isVideoenderInfoLoading = true;
29337                         params = new _RequestParameters(RelatedConstants.SORT_RELATEDPOINT, RelatedConstants.ORDER_DOWN, 1);
29338
29339                         this._getRelation.load(function(hug1:Boolean, hug2:IGetRelationResult):void{    //MethodID:3232, LocalCount= 5 , MaxScope= 3, MaxStack= 4, CodeLength= 169
29340                                 internal var succeeded:Boolean;                                 //slotID:1
29341                                 internal var result:IGetRelationResult;                         //slotID:2
29342
29343                                 succeeded = hug1;
29344                                 result = hug2;
29345                                 _isRecommendedListLoading = _isVideoenderInfoLoading = false;
29346
29347                                 if(succeeded){
29348                                         try{
29349                                                 if((targets.indexOf(GetRelationTarget.OWNER_VIDEO) != (-1)) && (targets.indexOf(GetRelationTarget.LIVE_DJ) != (-1))) _setVideoenderInfo(result);
29350                                         }
29351                                         catch(error:ArgumentError){
29352                                                 succeeded = false;
29353                                         }
29354                                 }
29355
29356                                 onVideoenderInfoLoaded.apply(succeeded);
29357                                 onRecommendedListLoaded.apply(succeeded, (succeeded ? result.recommendedVideoList : null), params);
29358                         }, targets, null, 0, params.sort, params.order, params.page);
29359                 }
29360
29361                 private function _setVideoenderInfo(hug1:IGetRelationResult):void
29362                 {       //MethodID:3234, LocalCount= 9 , MaxScope= 1, MaxStack= 9, CodeLength= 229
29363                         var hug2:Vector.<IOwnerOtherVideo> = null;
29364                         var hug3:String = null;
29365                         var hug4:String = null;
29366                         var hug5:String = null;
29367                         var hug6:String = null;
29368                         var hug7:String = null;
29369                         var hug8:String = null;
29370
29371                         if(hug1 == null) throw new ArgumentError("RelatedVideoList._setVideoenderInfo: invalid result.");
29372
29373                         if((hug1.ownerOtherVideoList != null) && (hug1.ownerOtherVideoList.length > 0)){
29374                                 hug2 = hug1.ownerOtherVideoList;
29375                                 hug3 = GetRelationTarget.OWNER_VIDEO;
29376                                 hug4 = hug1.ownerOtherVideoURL;
29377                         }else{
29378                                 if(hug1.recommendedVideoList != null){
29379                                         hug2 = Vector.<IOwnerOtherVideo>(hug1.recommendedVideoList);
29380                                 }else{
29381                                         hug2 = new Vector.<IOwnerOtherVideo>([]);
29382                                 }
29383
29384                                 hug3 = GetRelationTarget.RELATED_VIDEO;
29385                         }
29386
29387                         if(hug1.liveDJInfo){
29388                                 hug5 = hug1.liveDJInfo.catategoryName;
29389                                 hug6 = hug1.liveDJInfo.linkURL;
29390                                 hug7 = hug1.liveDJInfo.videoTitle;
29391                                 hug8 = hug1.liveDJInfo.thumbnailURL;
29392                         }
29393
29394                         this._videoInfo = new VideoenderInfo(hug2, hug3, hug4, hug5, hug6, hug7, hug8);
29395                 }
29396
29397                 public function get onVideoenderInfoLoaded():Functions
29398                 {       //MethodID:3235, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29399                         return this._ON_VIDEOENDER_INFO_LOADED;
29400                 }
29401
29402                 public function get videoenderInfo():IVideoenderInfo
29403                 {       //MethodID:3236, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29404                         return this._videoInfo;
29405                 }
29406
29407                 public function get onRecommendedListLoaded():Functions
29408                 {       //MethodID:3237, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29409                         return this._ON_RECOMMENDED_LIST_LOADED;
29410                 }
29411
29412                 public function get hasRecommendedListTotaled():Boolean
29413                 {       //MethodID:3238, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29414                         return this._hasRecommendedListTotaled;
29415                 }
29416
29417                 public function get isRecommendeListLoading():Boolean
29418                 {       //MethodID:3239, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29419                         return this._isRecommendedListLoading;
29420                 }
29421
29422                 public function get isVideoenderInfoLoading():Boolean
29423                 {       //MethodID:3240, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29424                         return this._isVideoenderInfoLoading;
29425                 }
29426         }
29427 }
29428
29429
29430 //■class(instance)_index:240
29431 //private
29432 class _RequestParameters extends Object implements IRecommendListOptions
29433 {
29434         //static constructor
29435         public static function _RequestParameters$cinit()
29436         {       //MethodID:3241, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
29437         }
29438
29439         //constructor
29440         public function _RequestParameters(hug1:String=null, hug2:String=null, hug3:uint=1)
29441         {       //MethodID:3242, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
29442                 super();
29443
29444                 this._sort = hug1;
29445                 this._order = hug2;
29446                 this._page = hug3;
29447         }
29448
29449         //variables/etc.
29450         private var _sort:String;                                       //slotID:0
29451         private var _order:String;                                      //slotID:0
29452         private var _page:uint;                                         //slotID:0
29453
29454         public function get page():uint
29455         {       //MethodID:3243, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29456                 return this._page;
29457         }
29458
29459         public function get order():String
29460         {       //MethodID:3244, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29461                 return this._order;
29462         }
29463
29464         public function get sort():String
29465         {       //MethodID:3245, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29466                 return this._sort;
29467         }
29468 }
29469
29470 //■script190■
29471
29472 package jp.nicovideo.nicoplayer.models.flashvars{
29473
29474         //■class(instance)_index:241
29475         public class ThumbFlashVars extends Object
29476         {
29477                 //static constructor
29478                 public static function ThumbFlashVars$cinit()
29479                 {       //MethodID:3247, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
29480                 }
29481
29482                 //variables/etc.
29483                 private var _isThumbWatch:Boolean;                              //slotID:0
29484                 private var _playerTimestamp:String;                            //slotID:0
29485                 private var _thumbImage:String;                                 //slotID:0
29486                 private var _thumbWidth:Number;                                 //slotID:0
29487                 private var _thumbHeight:Number;                                //slotID:0
29488                 private var _thumbPlayKey:String;                               //slotID:0
29489                 private var _openNewWindow:Boolean;                             //slotID:0
29490                 private var _transparent:uint;                                  //slotID:0
29491                 private var _isAutoPlay:Boolean;                                //slotID:0
29492                 private var _noLogo:Boolean;                                    //slotID:0
29493                 private var _noJumpMessage:Boolean;                             //slotID:0
29494                 private var _noComment:Boolean;                                 //slotID:0
29495                 private var _noCommentButton:Boolean;                           //slotID:0
29496                 private var _noLink:Boolean;                                    //slotID:0
29497                 private var _noSound:Boolean;                                   //slotID:0
29498                 private var _watchRef:String;                                   //slotID:0
29499                 private var _isP4Mode:Boolean;                                  //slotID:0
29500                 private var _noController:Boolean;                              //slotID:0
29501                 private var _thumbComment:Boolean;                              //slotID:0
29502                 private var _bySwf:Boolean;                                     //slotID:0
29503                 private var _noAdSense:Boolean;                                 //slotID:0
29504                 private var _isNoLogin:Boolean;                                 //slotID:0
29505                 private var _via:String;                                        //slotID:0
29506
29507                 public function get isThumbWatch():Boolean
29508                 {       //MethodID:3248, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29509                         return this._isThumbWatch;
29510                 }
29511
29512                 internal function set isThumbWatch(hug1:Boolean):void
29513                 {       //MethodID:3249, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29514                         this._isThumbWatch = hug1;
29515                 }
29516
29517                 public function get playerTimestamp():String
29518                 {       //MethodID:3250, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29519                         return this._playerTimestamp;
29520                 }
29521
29522                 internal function set playerTimestamp(hug1:String):void
29523                 {       //MethodID:3251, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29524                         this._playerTimestamp = hug1;
29525                 }
29526
29527                 public function get thumbImage():String
29528                 {       //MethodID:3252, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29529                         return this._thumbImage;
29530                 }
29531
29532                 internal function set thumbImage(hug1:String):void
29533                 {       //MethodID:3253, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29534                         this._thumbImage = hug1;
29535                 }
29536
29537                 public function get thumbWidth():Number
29538                 {       //MethodID:3254, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29539                         return this._thumbWidth;
29540                 }
29541
29542                 internal function set thumbWidth(hug1:Number):void
29543                 {       //MethodID:3255, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29544                         this._thumbWidth = hug1;
29545                 }
29546
29547                 public function get thumbHeight():Number
29548                 {       //MethodID:3256, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29549                         return this._thumbHeight;
29550                 }
29551
29552                 internal function set thumbHeight(hug1:Number):void
29553                 {       //MethodID:3257, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29554                         this._thumbHeight = hug1;
29555                 }
29556
29557                 public function get thumbPlayKey():String
29558                 {       //MethodID:3258, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29559                         return this._thumbPlayKey;
29560                 }
29561
29562                 internal function set thumbPlayKey(hug1:String):void
29563                 {       //MethodID:3259, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29564                         this._thumbPlayKey = hug1;
29565                 }
29566
29567                 public function get openNewWindow():Boolean
29568                 {       //MethodID:3260, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29569                         return this._openNewWindow;
29570                 }
29571
29572                 internal function set openNewWindow(hug1:Boolean):void
29573                 {       //MethodID:3261, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29574                         this._openNewWindow = hug1;
29575                 }
29576
29577                 public function get transparent():uint
29578                 {       //MethodID:3262, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29579                         return this._transparent;
29580                 }
29581
29582                 internal function set transparent(hug1:uint):void
29583                 {       //MethodID:3263, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29584                         this._transparent = hug1;
29585                 }
29586
29587                 public function get isAutoPlay():Boolean
29588                 {       //MethodID:3264, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29589                         return this._isAutoPlay;
29590                 }
29591
29592                 internal function set isAutoPlay(hug1:Boolean):void
29593                 {       //MethodID:3265, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29594                         this._isAutoPlay = hug1;
29595                 }
29596
29597                 public function get noLogo():Boolean
29598                 {       //MethodID:3266, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29599                         return this._noLogo;
29600                 }
29601
29602                 internal function set noLogo(hug1:Boolean):void
29603                 {       //MethodID:3267, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29604                         this._noLogo = hug1;
29605                 }
29606
29607                 public function get noJumpMessage():Boolean
29608                 {       //MethodID:3268, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29609                         return this._noJumpMessage;
29610                 }
29611
29612                 internal function set noJumpMessage(hug1:Boolean):void
29613                 {       //MethodID:3269, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29614                         this._noJumpMessage = hug1;
29615                 }
29616
29617                 public function get noComment():Boolean
29618                 {       //MethodID:3270, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29619                         return this._noComment;
29620                 }
29621
29622                 internal function set noComment(hug1:Boolean):void
29623                 {       //MethodID:3271, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29624                         this._noComment = hug1;
29625                 }
29626
29627                 public function get noCommentButton():Boolean
29628                 {       //MethodID:3272, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29629                         return this._noCommentButton;
29630                 }
29631
29632                 internal function set noCommentButton(hug1:Boolean):void
29633                 {       //MethodID:3273, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29634                         this._noCommentButton = hug1;
29635                 }
29636
29637                 public function get noLink():Boolean
29638                 {       //MethodID:3274, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29639                         return this._noLink;
29640                 }
29641
29642                 internal function set noLink(hug1:Boolean):void
29643                 {       //MethodID:3275, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29644                         this._noLink = hug1;
29645                 }
29646
29647                 public function get noSound():Boolean
29648                 {       //MethodID:3276, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29649                         return this._noSound;
29650                 }
29651
29652                 internal function set noSound(hug1:Boolean):void
29653                 {       //MethodID:3277, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29654                         this._noSound = hug1;
29655                 }
29656
29657                 public function get watchRef():String
29658                 {       //MethodID:3278, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29659                         return this._watchRef;
29660                 }
29661
29662                 internal function set watchRef(hug1:String):void
29663                 {       //MethodID:3279, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29664                         this._watchRef = hug1;
29665                 }
29666
29667                 public function get isP4Mode():Boolean
29668                 {       //MethodID:3280, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29669                         return this._isP4Mode;
29670                 }
29671
29672                 internal function set isP4Mode(hug1:Boolean):void
29673                 {       //MethodID:3281, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29674                         this._isP4Mode = hug1;
29675                 }
29676
29677                 public function get noController():Boolean
29678                 {       //MethodID:3282, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29679                         return this._noController;
29680                 }
29681
29682                 internal function set noController(hug1:Boolean):void
29683                 {       //MethodID:3283, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29684                         this._noController = hug1;
29685                 }
29686
29687                 public function get thumbComment():Boolean
29688                 {       //MethodID:3284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29689                         return this._thumbComment;
29690                 }
29691
29692                 internal function set thumbComment(hug1:Boolean):void
29693                 {       //MethodID:3285, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29694                         this._thumbComment = hug1;
29695                 }
29696
29697                 public function get bySwf():Boolean
29698                 {       //MethodID:3286, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29699                         return this._bySwf;
29700                 }
29701
29702                 internal function set bySwf(hug1:Boolean):void
29703                 {       //MethodID:3287, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29704                         this._bySwf = hug1;
29705                 }
29706
29707                 public function get noAdSense():Boolean
29708                 {       //MethodID:3288, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29709                         return this._noAdSense;
29710                 }
29711
29712                 internal function set noAdSense(hug1:Boolean):void
29713                 {       //MethodID:3289, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29714                         this._noAdSense = hug1;
29715                 }
29716
29717                 public function get isNoLogin():Boolean
29718                 {       //MethodID:3290, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29719                         return this._isNoLogin;
29720                 }
29721
29722                 internal function set isNoLogin(hug1:Boolean):void
29723                 {       //MethodID:3291, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29724                         this._isNoLogin = hug1;
29725                 }
29726
29727                 public function get via():String
29728                 {       //MethodID:3292, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29729                         return this._via;
29730                 }
29731
29732                 internal function set via(hug1:String):void
29733                 {       //MethodID:3293, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29734                         this._via = hug1;
29735                 }
29736
29737                 //constructor
29738                 public function ThumbFlashVars()
29739                 {       //MethodID:3294, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
29740                         super();
29741                 }
29742         }
29743 }
29744
29745 //■script191■
29746
29747 package jp.nicovideo.nicoplayer.models.flashvars{
29748
29749         //■class(instance)_index:242
29750         public class WatchFlashVars extends Object
29751         {
29752                 //static constructor
29753                 public static function WatchFlashVars$cinit()
29754                 {       //MethodID:3296, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
29755                         USER_SEX_MALE = "0";
29756                         USER_SEX_FEMALE = "1";
29757                         USER_SEX_NON = "-1";
29758                 }
29759
29760                 //static variables/etc.
29761                 public static const USER_SEX_MALE:String = 0;                   //slotID:1
29762                 public static const USER_SEX_FEMALE:String = 1;                 //slotID:2
29763                 public static const USER_SEX_NON:String = -1;                   //slotID:3
29764
29765                 //variables/etc.
29766                 private var _isEditMode:Boolean;                                //slotID:0
29767                 private var _isReadOnly:Boolean;                                //slotID:0
29768                 private var _isOwnerThreadAvailable:Boolean;                    //slotID:0
29769                 private var _isOwnerThreadEditMode:Boolean;                     //slotID:0
29770                 private var _userStatus:uint;                                   //slotID:0
29771                 private var _isPostLocked:Boolean;                              //slotID:0
29772                 private var _isVideoOwner:Boolean;                              //slotID:0
29773                 private var _hasEconomyMode:Boolean;                            //slotID:0
29774                 private var _noPostPlayStats:Boolean;                           //slotID:0
29775                 private var _noNicotic:Boolean;                                 //slotID:0
29776                 private var _noAtPizza:Boolean;                                 //slotID:0
29777                 private var _noHiroba:Boolean;                                  //slotID:0
29778                 private var _noNicomesse:Boolean;                               //slotID:0
29779                 private var _forceNicowariOff:Boolean;                          //slotID:0
29780                 private var _watchVideoID:String;                               //slotID:0
29781                 private var _gameKey:String;                                    //slotID:0
29782                 private var _gameTime:String;                                   //slotID:0
29783                 private var _buttonThreshold:uint;                              //slotID:0
29784                 private var _jumpVPosPlayFrom:int;                              //slotID:0
29785                 private var _jumpPlayLength:int;                                //slotID:0
29786                 private var _jumpReturnVideoID:String;                          //slotID:0
29787                 private var _jumpVPosReturnTo:int;                              //slotID:0
29788                 private var _jumpReturnMessage:String;                          //slotID:0
29789                 private var _isNoBanner:Boolean;                                //slotID:0
29790                 private var _isNoMarquee:Boolean;                               //slotID:0
29791                 private var _isNoGetMarquee:Boolean;                            //slotID:0
29792                 private var _commentListPublicStatus:String;                    //slotID:0
29793                 private var _isMonetized:Boolean;                               //slotID:0
29794                 private var _userSex:String;                                    //slotID:0
29795                 private var _userAge:String;                                    //slotID:0
29796                 private var _userPrefecture:String;                             //slotID:0
29797                 private var _marqueeUrl:String;                                 //slotID:0
29798                 private var _originalThreadId:String;                           //slotID:0
29799                 private var _channelID:String;                                  //slotID:0
29800                 private var _channelTopURL:String;                              //slotID:0
29801                 private var _channelVideoURL:String;                            //slotID:0
29802                 private var _channelName:String;                                //slotID:0
29803                 private var _dicArticleURL:String;                              //slotID:0
29804                 private var _blogEmbedURL:String;                               //slotID:0
29805                 private var _uadAdvertiseURL:String;                            //slotID:0
29806                 private var _communityPostURL:String;                           //slotID:0
29807                 private var _csrfToken:String;                                  //slotID:0
29808                 private var _useChecklistCache:Boolean;                         //slotID:0
29809                 private var _isNoMovie:Boolean;                                 //slotID:0
29810                 private var _thumbImage:String;                                 //slotID:0
29811                 private var _noDeflistAdd:Boolean;                              //slotID:0
29812                 private var _isCommentShuttered:Boolean;                        //slotID:0
29813                 private var _videoUserID:String;                                //slotID:0
29814                 private var _appliInstalled:Number;                             //slotID:0
29815                 private var _liveKick:String;                                   //slotID:0
29816                 private var _liveKickId:String;                                 //slotID:0
29817                 private var _hoihoiTitle:String;                                //slotID:0
29818                 private var _hoihoiButton:String;                               //slotID:0
29819                 private var _hoihoiURL:String;                                  //slotID:0
29820                 private var _noColor:Boolean;                                   //slotID:0
29821                 private var _isNoVideoMenu:Boolean;                             //slotID:0
29822                 private var _isNoAppli:Boolean;                                 //slotID:0
29823                 private var _bootApp:String;                                    //slotID:0
29824                 private var _isAppliPromotion:Boolean;                          //slotID:0
29825                 private var _isOfficialAnime:Boolean;                           //slotID:0
29826                 private var _useVideoEnder:Boolean = false;                     //slotID:0
29827
29828                 public function get isEditMode():Boolean
29829                 {       //MethodID:3297, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29830                         return this._isEditMode;
29831                 }
29832
29833                 internal function set isEditMode(hug1:Boolean):void
29834                 {       //MethodID:3298, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29835                         this._isEditMode = hug1;
29836                 }
29837
29838                 public function get isReadOnly():Boolean
29839                 {       //MethodID:3299, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29840                         return this._isReadOnly;
29841                 }
29842
29843                 internal function set isReadOnly(hug1:Boolean):void
29844                 {       //MethodID:3300, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29845                         this._isReadOnly = hug1;
29846                 }
29847
29848                 public function get isOwnerThreadAvailable():Boolean
29849                 {       //MethodID:3301, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29850                         return this._isOwnerThreadAvailable;
29851                 }
29852
29853                 internal function set isOwnerThreadAvailable(hug1:Boolean):void
29854                 {       //MethodID:3302, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29855                         this._isOwnerThreadAvailable = hug1;
29856                 }
29857
29858                 public function get isOwnerThreadEditMode():Boolean
29859                 {       //MethodID:3303, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29860                         return this._isOwnerThreadEditMode;
29861                 }
29862
29863                 internal function set isOwnerThreadEditMode(hug1:Boolean):void
29864                 {       //MethodID:3304, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29865                         this._isOwnerThreadEditMode = hug1;
29866                 }
29867
29868                 public function get userStatus():uint
29869                 {       //MethodID:3305, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29870                         return this._userStatus;
29871                 }
29872
29873                 internal function set userStatus(hug1:uint):void
29874                 {       //MethodID:3306, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29875                         this._userStatus = hug1;
29876                 }
29877
29878                 public function get isPostLocked():Boolean
29879                 {       //MethodID:3307, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29880                         return this._isPostLocked;
29881                 }
29882
29883                 internal function set isPostLocked(hug1:Boolean):void
29884                 {       //MethodID:3308, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29885                         this._isPostLocked = hug1;
29886                 }
29887
29888                 public function get isCommentShuttered():Boolean
29889                 {       //MethodID:3309, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29890                         return this._isCommentShuttered;
29891                 }
29892
29893                 internal function set isCommentShuttered(hug1:Boolean):void
29894                 {       //MethodID:3310, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29895                         this._isCommentShuttered = hug1;
29896                 }
29897
29898                 public function get isVideoOwner():Boolean
29899                 {       //MethodID:3311, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29900                         return this._isVideoOwner;
29901                 }
29902
29903                 internal function set isVideoOwner(hug1:Boolean):void
29904                 {       //MethodID:3312, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29905                         this._isVideoOwner = hug1;
29906                 }
29907
29908                 public function get hasEconomyMode():Boolean
29909                 {       //MethodID:3313, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29910                         return this._hasEconomyMode;
29911                 }
29912
29913                 internal function set hasEconomyMode(hug1:Boolean):void
29914                 {       //MethodID:3314, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29915                         this._hasEconomyMode = hug1;
29916                 }
29917
29918                 public function get noPostPlayStats():Boolean
29919                 {       //MethodID:3315, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29920                         return this._noPostPlayStats;
29921                 }
29922
29923                 internal function set noPostPlayStats(hug1:Boolean):void
29924                 {       //MethodID:3316, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29925                         this._noPostPlayStats = hug1;
29926                 }
29927
29928                 public function get noNicotic():Boolean
29929                 {       //MethodID:3317, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29930                         return this._noNicotic;
29931                 }
29932
29933                 internal function set noNicotic(hug1:Boolean):void
29934                 {       //MethodID:3318, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29935                         this._noNicotic = hug1;
29936                 }
29937
29938                 public function get noAtPizza():Boolean
29939                 {       //MethodID:3319, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29940                         return this._noAtPizza;
29941                 }
29942
29943                 internal function set noAtPizza(hug1:Boolean):void
29944                 {       //MethodID:3320, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29945                         this._noAtPizza = hug1;
29946                 }
29947
29948                 public function get noHiroba():Boolean
29949                 {       //MethodID:3321, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29950                         return this._noHiroba;
29951                 }
29952
29953                 internal function set noHiroba(hug1:Boolean):void
29954                 {       //MethodID:3322, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29955                         this._noHiroba = hug1;
29956                 }
29957
29958                 public function get forceNicowariOff():Boolean
29959                 {       //MethodID:3323, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29960                         return this._forceNicowariOff;
29961                 }
29962
29963                 internal function set forceNicowariOff(hug1:Boolean):void
29964                 {       //MethodID:3324, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29965                         this._forceNicowariOff = hug1;
29966                 }
29967
29968                 public function get watchVideoID():String
29969                 {       //MethodID:3325, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29970                         return this._watchVideoID;
29971                 }
29972
29973                 internal function set watchVideoID(hug1:String):void
29974                 {       //MethodID:3326, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29975                         this._watchVideoID = hug1;
29976                 }
29977
29978                 public function get gameKey():String
29979                 {       //MethodID:3327, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29980                         return this._gameKey;
29981                 }
29982
29983                 internal function set gameKey(hug1:String):void
29984                 {       //MethodID:3328, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29985                         this._gameKey = hug1;
29986                 }
29987
29988                 public function get gameTime():String
29989                 {       //MethodID:3329, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
29990                         return this._gameTime;
29991                 }
29992
29993                 internal function set gameTime(hug1:String):void
29994                 {       //MethodID:3330, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
29995                         this._gameTime = hug1;
29996                 }
29997
29998                 public function get buttonThreshold():uint
29999                 {       //MethodID:3331, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30000                         return this._buttonThreshold;
30001                 }
30002
30003                 internal function set buttonThreshold(hug1:uint):void
30004                 {       //MethodID:3332, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30005                         this._buttonThreshold = hug1;
30006                 }
30007
30008                 public function get jumpVPosPlayFrom():int
30009                 {       //MethodID:3333, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30010                         return this._jumpVPosPlayFrom;
30011                 }
30012
30013                 internal function set jumpVPosPlayFrom(hug1:int):void
30014                 {       //MethodID:3334, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30015                         this._jumpVPosPlayFrom = hug1;
30016                 }
30017
30018                 public function get jumpPlayLength():int
30019                 {       //MethodID:3335, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30020                         return this._jumpPlayLength;
30021                 }
30022
30023                 internal function set jumpPlayLength(hug1:int):void
30024                 {       //MethodID:3336, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30025                         this._jumpPlayLength = hug1;
30026                 }
30027
30028                 public function get jumpReturnVideoID():String
30029                 {       //MethodID:3337, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30030                         return this._jumpReturnVideoID;
30031                 }
30032
30033                 internal function set jumpReturnVideoID(hug1:String):void
30034                 {       //MethodID:3338, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30035                         this._jumpReturnVideoID = hug1;
30036                 }
30037
30038                 public function get jumpVPosReturnTo():int
30039                 {       //MethodID:3339, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30040                         return this._jumpVPosReturnTo;
30041                 }
30042
30043                 internal function set jumpVPosReturnTo(hug1:int):void
30044                 {       //MethodID:3340, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30045                         this._jumpVPosReturnTo = hug1;
30046                 }
30047
30048                 public function get jumpReturnMessage():String
30049                 {       //MethodID:3341, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30050                         return this._jumpReturnMessage;
30051                 }
30052
30053                 internal function set jumpReturnMessage(hug1:String):void
30054                 {       //MethodID:3342, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30055                         this._jumpReturnMessage = hug1;
30056                 }
30057
30058                 public function get isNoBanner():Boolean
30059                 {       //MethodID:3343, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30060                         return this._isNoBanner;
30061                 }
30062
30063                 internal function set isNoBanner(hug1:Boolean):void
30064                 {       //MethodID:3344, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30065                         this._isNoBanner = hug1;
30066                 }
30067
30068                 public function get isNoMarquee():Boolean
30069                 {       //MethodID:3345, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30070                         return this._isNoMarquee;
30071                 }
30072
30073                 internal function set isNoMarquee(hug1:Boolean):void
30074                 {       //MethodID:3346, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30075                         this._isNoMarquee = hug1;
30076                 }
30077
30078                 public function get isNoGetMarquee():Boolean
30079                 {       //MethodID:3347, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30080                         return this._isNoGetMarquee;
30081                 }
30082
30083                 internal function set isNoGetMarquee(hug1:Boolean):void
30084                 {       //MethodID:3348, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30085                         this._isNoGetMarquee = hug1;
30086                 }
30087
30088                 public function get isNoNicomesse():Boolean
30089                 {       //MethodID:3349, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30090                         return this._noNicomesse;
30091                 }
30092
30093                 internal function set isNoNicomesse(hug1:Boolean):void
30094                 {       //MethodID:3350, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30095                         this._noNicomesse = hug1;
30096                 }
30097
30098                 public function get commentListPublicStatus():String
30099                 {       //MethodID:3351, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30100                         return this._commentListPublicStatus;
30101                 }
30102
30103                 internal function set commentListPublicStatus(hug1:String):void
30104                 {       //MethodID:3352, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30105                         this._commentListPublicStatus = hug1;
30106                 }
30107
30108                 public function get isMonetized():Boolean
30109                 {       //MethodID:3353, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30110                         return this._isMonetized;
30111                 }
30112
30113                 internal function set isMonetized(hug1:Boolean):void
30114                 {       //MethodID:3354, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30115                         this._isMonetized = hug1;
30116                 }
30117
30118                 public function get userSex():String
30119                 {       //MethodID:3355, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30120                         return this._userSex;
30121                 }
30122
30123                 internal function set userSex(hug1:String):void
30124                 {       //MethodID:3356, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30125                         this._userSex = hug1;
30126                 }
30127
30128                 public function get userAge():String
30129                 {       //MethodID:3357, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30130                         return this._userAge;
30131                 }
30132
30133                 internal function set userAge(hug1:String):void
30134                 {       //MethodID:3358, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30135                         this._userAge = hug1;
30136                 }
30137
30138                 public function get userPrefecture():String
30139                 {       //MethodID:3359, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30140                         return this._userPrefecture;
30141                 }
30142
30143                 internal function set userPrefecture(hug1:String):void
30144                 {       //MethodID:3360, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30145                         this._userPrefecture = hug1;
30146                 }
30147
30148                 public function get marqueeUrl():String
30149                 {       //MethodID:3361, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30150                         return this._marqueeUrl;
30151                 }
30152
30153                 internal function set marqueeUrl(hug1:String):void
30154                 {       //MethodID:3362, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30155                         this._marqueeUrl = hug1;
30156                 }
30157
30158                 public function get originalThreadId():String
30159                 {       //MethodID:3363, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30160                         return this._originalThreadId;
30161                 }
30162
30163                 internal function set originalThreadId(hug1:String):void
30164                 {       //MethodID:3364, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30165                         this._originalThreadId = hug1;
30166                 }
30167
30168                 public function get channelID():String
30169                 {       //MethodID:3365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30170                         return this._channelID;
30171                 }
30172
30173                 internal function set channelID(hug1:String):void
30174                 {       //MethodID:3366, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30175                         this._channelID = hug1;
30176                 }
30177
30178                 public function get channelName():String
30179                 {       //MethodID:3367, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30180                         return this._channelName;
30181                 }
30182
30183                 internal function set channelName(hug1:String):void
30184                 {       //MethodID:3368, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30185                         this._channelName = hug1;
30186                 }
30187
30188                 public function get channelTopURL():String
30189                 {       //MethodID:3369, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30190                         return this._channelTopURL;
30191                 }
30192
30193                 internal function set channelTopURL(hug1:String):void
30194                 {       //MethodID:3370, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30195                         this._channelTopURL = hug1;
30196                 }
30197
30198                 public function get channelVideoURL():String
30199                 {       //MethodID:3371, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30200                         return this._channelVideoURL;
30201                 }
30202
30203                 internal function set channelVideoURL(hug1:String):void
30204                 {       //MethodID:3372, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30205                         this._channelVideoURL = hug1;
30206                 }
30207
30208                 public function get uadAdvertiseURL():String
30209                 {       //MethodID:3373, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30210                         return this._uadAdvertiseURL;
30211                 }
30212
30213                 internal function set uadAdvertiseURL(hug1:String):void
30214                 {       //MethodID:3374, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30215                         this._uadAdvertiseURL = hug1;
30216                 }
30217
30218                 public function get blogEmbedURL():String
30219                 {       //MethodID:3375, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30220                         return this._blogEmbedURL;
30221                 }
30222
30223                 internal function set blogEmbedURL(hug1:String):void
30224                 {       //MethodID:3376, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30225                         this._blogEmbedURL = hug1;
30226                 }
30227
30228                 public function get dicArticleURL():String
30229                 {       //MethodID:3377, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30230                         return this._dicArticleURL;
30231                 }
30232
30233                 internal function set dicArticleURL(hug1:String):void
30234                 {       //MethodID:3378, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30235                         this._dicArticleURL = hug1;
30236                 }
30237
30238                 public function get communityPostURL():String
30239                 {       //MethodID:3379, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30240                         return this._communityPostURL;
30241                 }
30242
30243                 internal function set communityPostURL(hug1:String):void
30244                 {       //MethodID:3380, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30245                         this._communityPostURL = hug1;
30246                 }
30247
30248                 public function get csrfToken():String
30249                 {       //MethodID:3381, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30250                         return this._csrfToken;
30251                 }
30252
30253                 internal function set csrfToken(hug1:String):void
30254                 {       //MethodID:3382, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30255                         this._csrfToken = hug1;
30256                 }
30257
30258                 public function get useChecklistCache():Boolean
30259                 {       //MethodID:3383, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30260                         return this._useChecklistCache;
30261                 }
30262
30263                 internal function set useChecklistCache(hug1:Boolean):void
30264                 {       //MethodID:3384, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30265                         this._useChecklistCache = hug1;
30266                 }
30267
30268                 public function get noColor():Boolean
30269                 {       //MethodID:3385, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30270                         return this._noColor;
30271                 }
30272
30273                 internal function set noColor(hug1:Boolean):void
30274                 {       //MethodID:3386, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30275                         this._noColor = hug1;
30276                 }
30277
30278                 public function get isNoMovie():Boolean
30279                 {       //MethodID:3387, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30280                         return this._isNoMovie;
30281                 }
30282
30283                 internal function set isNoMovie(hug1:Boolean):void
30284                 {       //MethodID:3388, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30285                         this._isNoMovie = hug1;
30286                 }
30287
30288                 public function get thumbImage():String
30289                 {       //MethodID:3389, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30290                         return this._thumbImage;
30291                 }
30292
30293                 internal function set thumbImage(hug1:String):void
30294                 {       //MethodID:3390, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30295                         this._thumbImage = hug1;
30296                 }
30297
30298                 public function get noDeflistAdd():Boolean
30299                 {       //MethodID:3391, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30300                         return this._noDeflistAdd;
30301                 }
30302
30303                 internal function set noDeflistAdd(hug1:Boolean):void
30304                 {       //MethodID:3392, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30305                         this._noDeflistAdd = hug1;
30306                 }
30307
30308                 public function get liveKick():String
30309                 {       //MethodID:3393, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30310                         return this._liveKick;
30311                 }
30312
30313                 internal function set liveKick(hug1:String):void
30314                 {       //MethodID:3394, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30315                         this._liveKick = hug1;
30316                 }
30317
30318                 public function get liveKickId():String
30319                 {       //MethodID:3395, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30320                         return this._liveKickId;
30321                 }
30322
30323                 internal function set liveKickId(hug1:String):void
30324                 {       //MethodID:3396, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30325                         this._liveKickId = hug1;
30326                 }
30327
30328                 public function get hoihoiTitle():String
30329                 {       //MethodID:3397, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30330                         return this._hoihoiTitle;
30331                 }
30332
30333                 internal function set hoihoiTitle(hug1:String):void
30334                 {       //MethodID:3398, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30335                         this._hoihoiTitle = hug1;
30336                 }
30337
30338                 public function get hoihoiButton():String
30339                 {       //MethodID:3399, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30340                         return this._hoihoiButton;
30341                 }
30342
30343                 internal function set hoihoiButton(hug1:String):void
30344                 {       //MethodID:3400, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30345                         this._hoihoiButton = hug1;
30346                 }
30347
30348                 public function get hoihoiURL():String
30349                 {       //MethodID:3401, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30350                         return this._hoihoiURL;
30351                 }
30352
30353                 internal function set hoihoiURL(hug1:String):void
30354                 {       //MethodID:3402, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30355                         this._hoihoiURL = hug1;
30356                 }
30357
30358                 public function get isNoVideoMenu():Boolean
30359                 {       //MethodID:3403, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30360                         return this._isNoVideoMenu;
30361                 }
30362
30363                 internal function set isNoVideoMenu(hug1:Boolean):void
30364                 {       //MethodID:3404, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30365                         this._isNoVideoMenu = hug1;
30366                 }
30367
30368                 public function get isNoAppli():Boolean
30369                 {       //MethodID:3405, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30370                         return this._isNoAppli;
30371                 }
30372
30373                 internal function set isNoAppli(hug1:Boolean):void
30374                 {       //MethodID:3406, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30375                         this._isNoAppli = hug1;
30376                 }
30377
30378                 public function get bootApp():String
30379                 {       //MethodID:3407, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30380                         return this._bootApp;
30381                 }
30382
30383                 internal function set bootApp(hug1:String):void
30384                 {       //MethodID:3408, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30385                         this._bootApp = hug1;
30386                 }
30387
30388                 public function get videoUserID():String
30389                 {       //MethodID:3409, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30390                         return this._videoUserID;
30391                 }
30392
30393                 internal function set videoUserID(hug1:String):void
30394                 {       //MethodID:3410, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30395                         this._videoUserID = hug1;
30396                 }
30397
30398                 public function get isOfficialAnime():Boolean
30399                 {       //MethodID:3411, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30400                         return this._isOfficialAnime;
30401                 }
30402
30403                 internal function set isOfficialAnime(hug1:Boolean):void
30404                 {       //MethodID:3412, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30405                         this._isOfficialAnime = hug1;
30406                 }
30407
30408                 public function get appliInstalled():Number
30409                 {       //MethodID:3413, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30410                         return this._appliInstalled;
30411                 }
30412
30413                 internal function set appliInstalled(hug1:Number):void
30414                 {       //MethodID:3414, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30415                         this._appliInstalled = hug1;
30416                 }
30417
30418                 public function get isAppliPromotion():Boolean
30419                 {       //MethodID:3415, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30420                         return this._isAppliPromotion;
30421                 }
30422
30423                 internal function set isAppliPromotion(hug1:Boolean):void
30424                 {       //MethodID:3416, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30425                         this._isAppliPromotion = hug1;
30426                 }
30427
30428                 public function get useVideoEnder():Boolean
30429                 {       //MethodID:3417, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30430                         return this._useVideoEnder;
30431                 }
30432
30433                 internal function set useVideoEnder(hug1:Boolean):void
30434                 {       //MethodID:3418, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30435                         this._useVideoEnder = hug1;
30436                 }
30437
30438                 //constructor
30439                 public function WatchFlashVars()
30440                 {       //MethodID:3419, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
30441                         super();
30442                 }
30443         }
30444 }
30445
30446 //■script192■
30447
30448 package jp.nicovideo.nicoplayer.models.flashvars{
30449
30450
30451         public const nico_flashvars:* = "jp.nicovideo.nicoplayer.models.flashvars:nico_flashvars";//slotID:0
30452
30453 }
30454
30455 //■script193■
30456
30457 package jp.nicovideo.util{
30458
30459         import flash.utils.Proxy
30460         import flash.utils.flash_proxy
30461
30462         use namespace flash_proxy;
30463
30464         //■class(instance)_index:243
30465         public class ArraySet extends Proxy
30466         {
30467                 //static constructor
30468                 public static function ArraySet$cinit()
30469                 {       //MethodID:3422, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
30470                 }
30471
30472                 //constructor
30473                 public function ArraySet()
30474                 {       //MethodID:3423, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
30475                         this.__a = [];
30476
30477                         super();
30478                 }
30479
30480                 //variables/etc.
30481                 private var __a:Array;                                          //slotID:0
30482
30483                 public function add(hug1:*):void
30484                 {       //MethodID:3424, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
30485                         this.__a.push(hug1);
30486                 }
30487
30488                 public function remove(hug1:*):Boolean
30489                 {       //MethodID:3425, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 53
30490                         var hug2:Number = 0;
30491                         var hug3:Boolean = false;
30492                         hug2 = this.__a.indexOf(hug1, hug2);
30493
30494                         while(this.__a.indexOf(hug1, hug2) != (-1)){
30495                                 this.__a.splice(hug2, 1);
30496
30497                                 hug3 = true;
30498                         }
30499
30500                         return hug3;
30501                 }
30502
30503                 public function contains(hug1:*):Boolean
30504                 {       //MethodID:3426, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
30505                         return (this.__a.indexOf(hug1) != (-1));
30506                 }
30507
30508                 public function clear():void
30509                 {       //MethodID:3427, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
30510                         this.__a.splice(0);
30511                 }
30512
30513                 override flash_proxy function nextNameIndex(hug1:int):int
30514                 {       //MethodID:3428, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
30515                         return ((hug1 < this.__a.length) ? (hug1 + 1) : 0);
30516                 }
30517
30518                 override flash_proxy function nextValue(hug1:int):*
30519                 {       //MethodID:3429, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
30520                         return this.__a[hug1 - 1];
30521                 }
30522         }
30523 }
30524
30525 //■script194■
30526
30527 package jp.nicovideo.util{
30528
30529         //■class(instance)_index:244
30530         public class Functions extends ArraySet
30531         {
30532                 //static constructor
30533                 public static function Functions$cinit()
30534                 {       //MethodID:3431, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
30535                 }
30536
30537                 //constructor
30538                 public function Functions()
30539                 {       //MethodID:3432, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
30540                         super();
30541                 }
30542
30543                 //variables/etc.
30544                 public function apply(... rest):void
30545                 {       //MethodID:3433, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 44
30546                         var hug2:Function = null;
30547
30548                         for each(hug2 in this){
30549                                 hug2.apply(null, rest);
30550                         }
30551                 }
30552
30553                 public function collect(... rest):Array
30554                 {       //MethodID:3434, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 57
30555                         var hug3:Function = null;
30556                         var hug2:Array = [];
30557
30558                         for each(hug3 in this){
30559                                 hug2.push(hug3.apply(null, rest));
30560                         }
30561
30562                         return hug2;
30563                 }
30564         }
30565 }
30566
30567 //■script195■
30568
30569 package jp.nicovideo.nicoplayer.models.video.swf{
30570
30571         //■class(instance)_index:245
30572         public class SWFVideoType extends Object
30573         {
30574                 //static constructor
30575                 public static function SWFVideoType$cinit()
30576                 {       //MethodID:3436, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
30577                         INTERRUPT_GAME_RANKING = "interrupt_game_ranking";
30578                         INTERRUPT_ENQUETE_RESULT = "interrupt_enquete_result";
30579                 }
30580
30581                 //static variables/etc.
30582                 public static const INTERRUPT_GAME_RANKING:String = "interrupt_game_ranking";//slotID:1
30583                 public static const INTERRUPT_ENQUETE_RESULT:String = "interrupt_enquete_result";//slotID:2
30584
30585                 //constructor
30586                 public function SWFVideoType()
30587                 {       //MethodID:3437, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
30588                         super();
30589                 }
30590         }
30591 }
30592
30593 //■script196■
30594
30595 package jp.nicovideo.util{
30596
30597
30598         public const test:* = "http://www.nicovideo.jp/as3_ns/nicoplayer/util.test";//slotID:0
30599
30600 }
30601
30602 //■script197■
30603
30604 package jp.nicovideo.nicoplayer.models.video.swf{
30605
30606         //■class(instance)_index:246
30607         public interface ISWFVideoContent
30608         {
30609                 //static constructor
30610                 public static function ISWFVideoContent$cinit()
30611                 {       //MethodID:3440, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
30612                 }
30613
30614                 //variables/etc.
30615                 function get videoType():String;                                            //MethodID:3441, dispID:0
30616
30617                 function initialize(hug1:*, hug2:Function):void;                            //MethodID:3442, dispID:0
30618
30619                 //constructor
30620                 public function ISWFVideoContent();                                         //MethodID:3443, dispID:0
30621         }
30622 }
30623
30624 //■script198■
30625
30626 package jp.nicovideo.nicoplayer.models.video{
30627
30628         //■class(instance)_index:247
30629         public class VideoPlayerStatus extends Object
30630         {
30631                 //static constructor
30632                 public static function VideoPlayerStatus$cinit()
30633                 {       //MethodID:3445, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 57
30634                         END = "end";
30635                         LOADING = "load";
30636                         PAUSED = "paused";
30637                         PLAYING = "playing";
30638                         SEEKING = "seeking";
30639                         STOPPED = "stopped";
30640                 }
30641
30642                 //static variables/etc.
30643                 public static const END:String = "end";                         //slotID:1
30644                 public static const LOADING:String = "load";                    //slotID:2
30645                 public static const PAUSED:String = "paused";                   //slotID:3
30646                 public static const PLAYING:String = "playing";                 //slotID:4
30647                 public static const SEEKING:String = "seeking";                 //slotID:5
30648                 public static const STOPPED:String = "stopped";                 //slotID:6
30649
30650                 //constructor
30651                 public function VideoPlayerStatus()
30652                 {       //MethodID:3446, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
30653                         super();
30654                 }
30655         }
30656 }
30657
30658 //■script199■
30659
30660 package org.libspark.utils{
30661
30662         import flash.display.Loader
30663         import flash.events.Event
30664         import flash.events.IEventDispatcher
30665         import flash.events.IOErrorEvent
30666         import flash.events.SecurityErrorEvent
30667         import flash.net.URLRequest
30668         import flash.net.URLStream
30669         import flash.utils.ByteArray
30670         import flash.utils.Endian
30671
30672         //■class(instance)_index:248
30673         public class ForcibleLoader extends Object
30674         {
30675                 //static constructor
30676                 public static function ForcibleLoader$cinit()
30677                 {       //MethodID:3448, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
30678                 }
30679
30680                 //constructor
30681                 public function ForcibleLoader(hug1:Loader, hug2:IEventDispatcher)
30682                 {       //MethodID:3449, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 78
30683                         super();
30684
30685                         this.loader = hug1;
30686                         this._eventDispatcher = hug2;
30687                         this._stream = new URLStream();
30688
30689                         this._stream.addEventListener(Event.COMPLETE, this.completeHandler);
30690                         this._stream.addEventListener(IOErrorEvent.IO_ERROR, this.ioErrorHandler);
30691                         this._stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.securityErrorHandler);
30692                 }
30693
30694                 //variables/etc.
30695                 private var _loader:Loader;                                     //slotID:0
30696                 private var _stream:URLStream;                                  //slotID:0
30697                 private var _eventDispatcher:IEventDispatcher;                  //slotID:0
30698
30699                 public function get loader():Loader
30700                 {       //MethodID:3450, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
30701                         return this._loader;
30702                 }
30703
30704                 public function set loader(hug1:Loader):void
30705                 {       //MethodID:3451, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
30706                         this._loader = hug1;
30707                 }
30708
30709                 public function load(hug1:URLRequest):void
30710                 {       //MethodID:3452, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
30711                         this._stream.load(hug1);
30712                 }
30713
30714                 private function completeHandler(hug1:Event):void
30715                 {       //MethodID:3453, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 117
30716                         var hug2:ByteArray = new ByteArray();
30717
30718                         this._stream.readBytes(hug2);
30719                         this._stream.close();
30720
30721                         hug2.endian = Endian.LITTLE_ENDIAN;
30722
30723                         if(this.isCompressed(hug2)) this.uncompress(hug2);
30724
30725                         var hug3:Number = this.findFileAttributesPosition(this.getBodyPosition(hug2), hug2);
30726
30727                         if(!isNaN(hug3)){
30728                                 this.flagSWF9Bit(hug2, hug3);
30729                         }else{
30730                                 this.insertFileAttributesTag(hug2);
30731                         }
30732
30733                         this.updateVersion(hug2, 9);
30734                         this.loader.loadBytes(hug2);
30735                 }
30736
30737                 private function isCompressed(hug1:ByteArray):Boolean
30738                 {       //MethodID:3454, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
30739                         return (hug1[0] == 67);
30740                 }
30741
30742                 private function uncompress(hug1:ByteArray):void
30743                 {       //MethodID:3455, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 59
30744                         var hug2:ByteArray = new ByteArray();
30745
30746                         hug2.writeBytes(hug1, 8);
30747
30748                         hug1.length = 8;
30749                         hug1.position = 8;
30750
30751                         hug2.uncompress();
30752                         hug1.writeBytes(hug2);
30753
30754                         hug1[0] = 70;
30755                         hug2.length = 0;
30756                 }
30757
30758                 private function getBodyPosition(hug1:ByteArray):uint
30759                 {       //MethodID:3456, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 68
30760                         var hug2:uint = 0;
30761                         hug2 += 3;
30762                         hug2 += 1;
30763                         hug2 += 4;
30764                         var hug3:uint = (hug1[hug2] >> (3 & 0x1F));
30765                         hug2 += ((5 + (hug3 * 4)) / 8);
30766                         hug2 += 2;
30767                         hug2 += 1;
30768                         hug2 += 2;
30769                         return hug2;
30770                 }
30771
30772                 private function findFileAttributesPosition(hug1:uint, hug2:ByteArray):Number
30773                 {       //MethodID:3457, LocalCount= 5 , MaxScope= 5, MaxStack= 3, CodeLength= 182
30774                         internal var offset:uint;                                       //slotID:1
30775                         internal var bytes:ByteArray;                                   //slotID:2
30776                         internal var byte:uint;                                         //slotID:3
30777                         internal var tag:uint;                                          //slotID:4
30778                         internal var length:uint;                                       //slotID:5
30779
30780                         byte = 0;
30781                         tag = 0;
30782                         length = 0;
30783                         offset = hug1;
30784                         bytes = hug2;
30785                         bytes.position = offset;
30786
30787                         try{
30788                                 while(true){
30789                                         byte = bytes.readShort();
30790                                         tag = (byte >> (6 & 0x1F));
30791
30792                                         if(tag == 69) return (bytes.position - 2);
30793
30794                                         length = (byte & 63);
30795
30796                                         if(length == 63) length = bytes.readInt();
30797
30798                                         bytes.position += length;
30799                                 }
30800                         }
30801                         catch(e:EOFError){
30802                         }
30803
30804                         return NaN;
30805                 }
30806
30807                 private function flagSWF9Bit(hug1:ByteArray, hug2:uint):void
30808                 {       //MethodID:3458, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 22
30809                         hug1[hug2 + 2] |= 8;
30810                 }
30811
30812                 private function insertFileAttributesTag(hug1:ByteArray):void
30813                 {       //MethodID:3459, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 93
30814                         var hug2:uint = this.getBodyPosition(hug1);
30815                         var hug3:ByteArray = new ByteArray();
30816
30817                         hug3.writeBytes(hug1, hug2);
30818
30819                         hug1.length = hug2;
30820                         hug1.position = hug2;
30821
30822                         hug1.writeByte(68);
30823                         hug1.writeByte(17);
30824                         hug1.writeByte(8);
30825                         hug1.writeByte(0);
30826                         hug1.writeByte(0);
30827                         hug1.writeByte(0);
30828                         hug1.writeBytes(hug3);
30829
30830                         hug3.length = 0;
30831                 }
30832
30833                 private function updateVersion(hug1:ByteArray, hug2:uint):void
30834                 {       //MethodID:3460, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 10
30835                         hug1[3] = hug2;
30836                 }
30837
30838                 private function ioErrorHandler(hug1:IOErrorEvent):void
30839                 {       //MethodID:3461, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 21
30840                         this._eventDispatcher.dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR));
30841                 }
30842
30843                 private function securityErrorHandler(hug1:SecurityErrorEvent):void
30844                 {       //MethodID:3462, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 21
30845                         this._eventDispatcher.dispatchEvent(new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR));
30846                 }
30847         }
30848 }
30849
30850 //■script200■
30851
30852 package jp.nicovideo.util{
30853
30854         import flash.utils.getTimer
30855
30856         //■class(instance)_index:249
30857         public final class TimeUtils extends Object
30858         {
30859                 //static constructor
30860                 public static function TimeUtils$cinit()
30861                 {       //MethodID:3464, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
30862                         __baseTimer = 0;
30863                 }
30864
30865                 //static variables/etc.
30866                 private static var __baseTimer:Number = 0.0;                    //slotID:1
30867
30868                 public static function set time(hug1:Number):void
30869                 {       //dispID:3, MethodID:3465, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 18
30870                         __baseTimer = (hug1 - getTimer());
30871                 }
30872
30873                 public static function get time():Number
30874                 {       //dispID:4, MethodID:3466, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 33
30875                         if(__baseTimer <= 0) return new Date().getTime();
30876
30877                         return (__baseTimer + getTimer());
30878                 }
30879
30880                 public static function now():Date
30881                 {       //dispID:5, MethodID:3467, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 20
30882                         var hug1:Date = new Date();
30883
30884                         hug1.setTime(time);
30885
30886                         return hug1;
30887                 }
30888
30889                 //constructor
30890                 public function TimeUtils()
30891                 {       //MethodID:3468, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
30892                         super();
30893                 }
30894         }
30895 }
30896
30897 //■script201■
30898
30899 package jp.nicovideo.util.storage{
30900
30901         import flash.events.EventDispatcher
30902         import flash.net.SharedObject
30903         import flash.net.SharedObjectFlushStatus
30904
30905         //■class(instance)_index:250
30906         public class LocalStorage extends EventDispatcher
30907         {
30908                 //static constructor
30909                 public static function LocalStorage$cinit()
30910                 {       //MethodID:3470, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
30911                 }
30912
30913                 //constructor
30914                 public function LocalStorage(hug1:SharedObject=null)
30915                 {       //MethodID:3471, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
30916                         this._data = {};
30917
30918                         super();
30919
30920                         this._so = hug1;
30921                 }
30922
30923                 //variables/etc.
30924                 private var _so:SharedObject;                                   //slotID:0
30925                 private var _data:Object;                                       //slotID:0
30926
30927                 public function flush(hug1:int=0):String
30928                 {       //MethodID:3472, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 32
30929                         return (this._so ? this._so.flush(hug1) : SharedObjectFlushStatus.FLUSHED);
30930                 }
30931
30932                 public function get data():Object
30933                 {       //MethodID:3473, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 30
30934                         return (this._so ? this._so.data : this._data);
30935                 }
30936
30937                 public function clear():void
30938                 {       //MethodID:3474, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 19
30939                         if(this._so) this._so.clear();
30940                 }
30941
30942                 public function close():void
30943                 {       //MethodID:3475, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 19
30944                         if(this._so) this._so.close();
30945                 }
30946
30947                 public function setDirty(hug1:String):void
30948                 {       //MethodID:3476, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 20
30949                         if(this._so) this._so.setDirty(hug1);
30950                 }
30951
30952                 override public function addEventListener(hug1:String, hug2:Function, hug3:Boolean=false, hug4:int=0, hug5:Boolean=false):void
30953                 {       //MethodID:3477, LocalCount= 6 , MaxScope= 1, MaxStack= 6, CodeLength= 26
30954                         if(this._so) this._so.addEventListener(hug1, hug2, hug3, hug4, hug5);
30955                 }
30956         }
30957 }
30958
30959 //■script202■
30960
30961 package jp.nicovideo.util.events{
30962
30963
30964         public const event_receiver:* = "http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver";//slotID:0
30965
30966 }
30967
30968 //■script203■
30969 //skip components :com.adobe.serialization.json
30970 //as filename :JSON.as
30971
30972 //■script204■
30973
30974 package jp.nicovideo.nicoplayer.models.comment{
30975
30976         //■class(instance)_index:252
30977         public interface IComment
30978         {
30979                 //static constructor
30980                 public static function IComment$cinit()
30981                 {       //MethodID:3485, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
30982                 }
30983
30984                 //variables/etc.
30985                 function get message():String;                                              //MethodID:3486, dispID:0
30986
30987                 function get resNo():uint;                                                  //MethodID:3487, dispID:0
30988
30989                 function get vpos():Number;                                                 //MethodID:3488, dispID:0
30990
30991                 function get date():Date;                                                   //MethodID:3489, dispID:0
30992
30993                 function get userID():String;                                               //MethodID:3490, dispID:0
30994
30995                 function get userName():String;                                             //MethodID:3491, dispID:0
30996
30997                 function get isOwner():Boolean;                                             //MethodID:3492, dispID:0
30998
30999                 function get deleted():uint;                                                //MethodID:3493, dispID:0
31000
31001                 function get isPremium():Boolean;                                           //MethodID:3494, dispID:0
31002
31003                 function get anonymity():uint;                                              //MethodID:3495, dispID:0
31004
31005                 function get fromLive():uint;                                               //MethodID:3496, dispID:0
31006
31007                 function get fork():uint;                                                   //MethodID:3497, dispID:0
31008
31009                 function get justPosted():Boolean;                                          //MethodID:3498, dispID:0
31010
31011                 function get ng():uint;                                                     //MethodID:3499, dispID:0
31012
31013                 function get command():ICommand;                                            //MethodID:3500, dispID:0
31014
31015                 function get buttonComment():String;                                        //MethodID:3501, dispID:0
31016
31017                 function get clickCount():uint;                                             //MethodID:3502, dispID:0
31018
31019                 function get commentList():ICommentList;                                    //MethodID:3503, dispID:0
31020
31021                 function get isClickable():Boolean;                                         //MethodID:3504, dispID:0
31022
31023                 function get leafID():uint;                                                 //MethodID:3505, dispID:0
31024
31025                 function get isTrunk():Boolean;                                             //MethodID:3506, dispID:0
31026
31027                 //constructor
31028                 public function IComment();                                                 //MethodID:3507, dispID:0
31029         }
31030 }
31031
31032 //■script205■
31033
31034 package jp.nicovideo.marquee.events{
31035
31036         import flash.events.Event
31037
31038         //■class(instance)_index:253
31039         public class MarqueeEvent extends Event
31040         {
31041                 //static constructor
31042                 public static function MarqueeEvent$cinit()
31043                 {       //MethodID:3509, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 165
31044                         COMPLETE_PLAYER = "completed_player";
31045                         COMPLETE_SOURCE_MANAGER = "complete_source_manager";
31046                         COMPLETE_MARQUEE_SOURCE = "completed_marquee_source";
31047                         ERROR_MARQUEE_SOURCE = "error_marquee_source";
31048                         ERROR_VIDEO_SOURCE = "error_video_source";
31049                         STARTED_MARQUEE = "started_marquee";
31050                         ENDED_MARQUEE = "ended_marquee";
31051                         SENDED_DATA = "sended_data";
31052                         PLAYED_SOURCE = "played_source";
31053                         READY_PARADE = "ready_parade";
31054                         STARTED_PARADE = "started_parade";
31055                         ENDED_PARADE = "ended_parade";
31056                         SEND_LOG = "send_log";
31057                         CLICK_PLAY_BUTTON = "click_play_button";
31058                         TEMPLATE_VERSION_DISAGREEMENT = "template_version_disagreement";
31059                         STARTMARQUEE_SCHEDULE = "startmarquee_schedule";
31060                         ENDMARQUEE_SCHEDULE = "endmarquee_schedule";
31061                         CHANGE_PRIORITY = "change_priority";
31062                 }
31063
31064                 //static variables/etc.
31065                 public static const COMPLETE_PLAYER:String = "completed_player";//slotID:1
31066                 public static const COMPLETE_SOURCE_MANAGER:String = "complete_source_manager";//slotID:2
31067                 public static const COMPLETE_MARQUEE_SOURCE:String = "completed_marquee_source";//slotID:3
31068                 public static const ERROR_MARQUEE_SOURCE:String = "error_marquee_source";//slotID:4
31069                 public static const ERROR_VIDEO_SOURCE:String = "error_video_source";//slotID:5
31070                 public static const STARTED_MARQUEE:String = "started_marquee"; //slotID:6
31071                 public static const ENDED_MARQUEE:String = "ended_marquee";     //slotID:7
31072                 public static const SENDED_DATA:String = "sended_data";         //slotID:8
31073                 public static const PLAYED_SOURCE:String = "played_source";     //slotID:9
31074                 public static const READY_PARADE:String = "ready_parade";       //slotID:10
31075                 public static const STARTED_PARADE:String = "started_parade";   //slotID:11
31076                 public static const ENDED_PARADE:String = "ended_parade";       //slotID:12
31077                 public static const SEND_LOG:String = "send_log";               //slotID:13
31078                 public static const CLICK_PLAY_BUTTON:String = "click_play_button";//slotID:14
31079                 public static const TEMPLATE_VERSION_DISAGREEMENT:String = "template_version_disagreement";//slotID:15
31080                 public static const STARTMARQUEE_SCHEDULE:String = "startmarquee_schedule";//slotID:16
31081                 public static const ENDMARQUEE_SCHEDULE:String = "endmarquee_schedule";//slotID:17
31082                 public static const CHANGE_PRIORITY:String = "change_priority"; //slotID:18
31083
31084                 //constructor
31085                 public function MarqueeEvent(hug1:String, hug2:*, hug3:Boolean=false, hug4:Boolean=false)
31086                 {       //MethodID:3510, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
31087                         super(hug1, hug3, hug4);
31088
31089                         this._origin = hug2;
31090                 }
31091
31092                 //variables/etc.
31093                 private var _origin:*;                                          //slotID:0
31094
31095                 public function get origin():*
31096                 {       //MethodID:3511, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
31097                         return this._origin;
31098                 }
31099
31100                 override public function clone():Event
31101                 {       //MethodID:3512, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 21
31102                         return new MarqueeEvent(type, this.origin, bubbles, cancelable);
31103                 }
31104         }
31105 }
31106
31107 //■script206■
31108
31109 package jp.nicovideo.marquee.events{
31110
31111         import flash.events.Event
31112
31113         //■class(instance)_index:254
31114         public class MarqueeFullEvent extends MarqueeEvent
31115         {
31116                 //static constructor
31117                 public static function MarqueeFullEvent$cinit()
31118                 {       //MethodID:3514, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
31119                         PLAY_VIDEO = "MarqueeFullEvent.play_video";
31120                         PAUSE_VIDEO = "MarqueeFullEvent.pause_video";
31121                         CLICK_NICOWARI_PLAY_BUTTON = "click_nicowari_play_button";
31122                         CLICK_VIDEO_PLAY_BUTTON = "click_video_play_button";
31123                 }
31124
31125                 //static variables/etc.
31126                 public static const PLAY_VIDEO:String = "MarqueeFullEvent.play_video";//slotID:1
31127                 public static const PAUSE_VIDEO:String = "MarqueeFullEvent.pause_video";//slotID:2
31128                 public static const CLICK_NICOWARI_PLAY_BUTTON:String = "click_nicowari_play_button";//slotID:3
31129                 public static const CLICK_VIDEO_PLAY_BUTTON:String = "click_video_play_button";//slotID:4
31130
31131                 //constructor
31132                 public function MarqueeFullEvent(hug1:String, hug2:*, hug3:Boolean=false, hug4:Boolean=false)
31133                 {       //MethodID:3515, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 11
31134                         super(hug1, hug2, hug3, hug4);
31135                 }
31136
31137                 //variables/etc.
31138                 override public function clone():Event
31139                 {       //MethodID:3516, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 22
31140                         return new MarqueeFullEvent(type, origin, bubbles, cancelable);
31141                 }
31142         }
31143 }
31144
31145 //■script207■
31146
31147 package jp.nicovideo.nicoplayer.models{
31148
31149         //■class(instance)_index:255
31150         public class ScreenMode extends Object
31151         {
31152                 //static constructor
31153                 public static function ScreenMode$cinit()
31154                 {       //MethodID:3518, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
31155                         NORMAL = 0;
31156                         BROWSER_FULL = 1;
31157                         DISPLAY_FULL = 2;
31158                 }
31159
31160                 //static variables/etc.
31161                 public static const NORMAL:uint = 0;                            //slotID:1
31162                 public static const BROWSER_FULL:uint = 1;                      //slotID:2
31163                 public static const DISPLAY_FULL:uint = 2;                      //slotID:3
31164
31165                 //constructor
31166                 public function ScreenMode()
31167                 {       //MethodID:3519, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31168                         super();
31169                 }
31170         }
31171 }
31172
31173 //■script208■
31174
31175 package jp.nicovideo.marquee.events{
31176
31177         import flash.events.ErrorEvent
31178         import flash.events.Event
31179
31180         //■class(instance)_index:256
31181         public class MarqueeErrorEvent extends ErrorEvent
31182         {
31183                 //static constructor
31184                 public static function MarqueeErrorEvent$cinit()
31185                 {       //MethodID:3521, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 65
31186                         ERROR = "error";
31187                         SENDED_NOAUTH = 100;
31188                         SENDED_FAIL = 200;
31189                         SENDED_ERROR = 300;
31190                         INITIALIZE_XML_FAIL = 400;
31191                         INITIALIZE_DOWNLOAD_ERROR = 500;
31192                         SENDED_LOG_ERROR = 600;
31193                 }
31194
31195                 //static variables/etc.
31196                 public static const ERROR:String = "error";                     //slotID:1
31197                 public static const SENDED_NOAUTH:int = 100;                    //slotID:2
31198                 public static const SENDED_FAIL:int = 200;                      //slotID:3
31199                 public static const SENDED_ERROR:int = 300;                     //slotID:4
31200                 public static const INITIALIZE_XML_FAIL:int = 400;              //slotID:5
31201                 public static const INITIALIZE_DOWNLOAD_ERROR:int = 500;        //slotID:6
31202                 public static const SENDED_LOG_ERROR:int = 600;                 //slotID:7
31203
31204                 //constructor
31205                 public function MarqueeErrorEvent(hug1:String, hug2:String, hug3:int=0, hug4:Boolean=false, hug5:Boolean=false)
31206                 {       //MethodID:3522, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 17
31207                         super(hug1, hug4, hug5, hug2);
31208
31209                         this._errorId = hug3;
31210                 }
31211
31212                 //variables/etc.
31213                 private var _errorId:int;                                       //slotID:0
31214
31215                 public function get errorId():int
31216                 {       //MethodID:3523, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
31217                         return this._errorId;
31218                 }
31219
31220                 override public function clone():Event
31221                 {       //MethodID:3524, LocalCount= 1 , MaxScope= 1, MaxStack= 6, CodeLength= 24
31222                         return new MarqueeErrorEvent(type, text, this.errorId, bubbles, cancelable);
31223                 }
31224         }
31225 }
31226
31227 //■script209■
31228
31229 package jp.nicovideo.marquee.models.info{
31230
31231         //■class(instance)_index:257
31232         public interface IMarqueeInfo
31233         {
31234                 //static constructor
31235                 public static function IMarqueeInfo$cinit()
31236                 {       //MethodID:3526, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31237                 }
31238
31239                 //variables/etc.
31240                 function end(hug1:Boolean=false):void;                                      //MethodID:3527, dispID:0
31241
31242                 function get priority():uint;                                               //MethodID:3528, dispID:0
31243
31244                 function get pauseVideo():Boolean;                                          //MethodID:3529, dispID:0
31245
31246                 function get jumpToHirobaEnabled():Boolean;                                 //MethodID:3530, dispID:0
31247
31248                 function get enabled():Boolean;                                             //MethodID:3531, dispID:0
31249
31250                 function get isCommentDist():Boolean;                                       //MethodID:3532, dispID:0
31251
31252                 function get isForceEnded():Boolean;                                        //MethodID:3533, dispID:0
31253
31254                 function get hasForceEnd():Boolean;                                         //MethodID:3534, dispID:0
31255
31256                 //constructor
31257                 public function IMarqueeInfo();                                             //MethodID:3535, dispID:0
31258         }
31259 }
31260
31261 //■script210■
31262
31263 package jp.nicovideo.marquee.models{
31264
31265         //■class(instance)_index:258
31266         public class MarqueeAspectRatio extends Object
31267         {
31268                 //static constructor
31269                 public static function MarqueeAspectRatio$cinit()
31270                 {       //MethodID:3537, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 45
31271                         NORMAL = 0;
31272                         NORMAL_WIDTH = 544;
31273                         WIDE = 1;
31274                         WIDE_WIDTH = 672;
31275                         HEIGHT = 56;
31276                 }
31277
31278                 //static variables/etc.
31279                 public static const NORMAL:uint = 0;                            //slotID:1
31280                 public static const NORMAL_WIDTH:uint = 544;                    //slotID:2
31281                 public static const WIDE:uint = 1;                              //slotID:3
31282                 public static const WIDE_WIDTH:uint = 672;                      //slotID:4
31283                 public static const HEIGHT:uint = 56;                           //slotID:5
31284
31285                 //constructor
31286                 public function MarqueeAspectRatio()
31287                 {       //MethodID:3538, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31288                         super();
31289                 }
31290         }
31291 }
31292
31293 //■script211■
31294
31295 package jp.nicovideo.marquee{
31296
31297         //■class(instance)_index:259
31298         public interface IMarqueePlayer implements IEventDispatcher
31299         {
31300                 //static constructor
31301                 public static function IMarqueePlayer$cinit()
31302                 {       //MethodID:3540, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31303                 }
31304
31305                 //variables/etc.
31306                 function initialize(hug1:IMarqueeClient):void;                              //MethodID:3541, dispID:0
31307
31308                 function load(hug1:String):void;                                            //MethodID:3542, dispID:0
31309
31310                 function start():void;                                                      //MethodID:3543, dispID:0
31311
31312                 function setVolume(hug1:Number):void;                                       //MethodID:3544, dispID:0
31313
31314                 function get isCommentDist():Boolean;                                       //MethodID:3545, dispID:0
31315
31316                 function get version():String;                                              //MethodID:3546, dispID:0
31317
31318                 //constructor
31319                 public function IMarqueePlayer();                                           //MethodID:3547, dispID:0
31320         }
31321 }
31322
31323 //■script212■
31324
31325 package jp.nicovideo.nicoplayer.remocon{
31326
31327         //■class(instance)_index:260
31328         public class RemoconPostCommentErrorStatus extends Object
31329         {
31330                 //static constructor
31331                 public static function RemoconPostCommentErrorStatus$cinit()
31332                 {       //MethodID:3549, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
31333                         SAME_MESSAGE = "sameMessage";
31334                         OTHER = "failure";
31335                 }
31336
31337                 //static variables/etc.
31338                 public static const SAME_MESSAGE:String = "sameMessage";        //slotID:1
31339                 public static const OTHER:String = "failure";                   //slotID:2
31340
31341                 //constructor
31342                 public function RemoconPostCommentErrorStatus()
31343                 {       //MethodID:3550, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31344                         super();
31345                 }
31346         }
31347 }
31348
31349 //■script213■
31350
31351 package jp.nicovideo.nicoplayer.storages{
31352
31353         import __AS3__.vec.Vector
31354
31355         //■class(instance)_index:261
31356         public class CommentPostResultStatus extends Object
31357         {
31358                 //static constructor
31359                 public static function CommentPostResultStatus$cinit()
31360                 {       //MethodID:3552, LocalCount= 1 , MaxScope= 1, MaxStack= 11, CodeLength= 125
31361                         SERVER_RESPONSE_MAP = Vector.<String>([this.SUCCESS, this.FAILURE, this.INVALID_THREAD, this.INVALID_TICKET, this.INVALID_POSTKEY, this.LOCKED, this.READONLY, this.NOT_IMPLEMENTED]);
31362                         SUCCESS = "success";
31363                         FAILURE = "failure";
31364                         INVALID_THREAD = "invalidThread";
31365                         INVALID_TICKET = "invalidTicket";
31366                         INVALID_POSTKEY = "invalidPostkey";
31367                         LOCKED = "locked";
31368                         READONLY = "readonly";
31369                         NOT_IMPLEMENTED = "notImplemented";
31370                 }
31371
31372                 //static variables/etc.
31373                 public static const SERVER_RESPONSE_MAP:Vector.<String>;        //slotID:1
31374                 public static const SUCCESS:String = "success";                 //slotID:2
31375                 public static const FAILURE:String = "failure";                 //slotID:3
31376                 public static const INVALID_THREAD:String = "invalidThread";    //slotID:4
31377                 public static const INVALID_TICKET:String = "invalidTicket";    //slotID:5
31378                 public static const INVALID_POSTKEY:String = "invalidPostkey";  //slotID:6
31379                 public static const LOCKED:String = "locked";                   //slotID:7
31380                 public static const READONLY:String = "readonly";               //slotID:8
31381                 public static const NOT_IMPLEMENTED:String = "notImplemented";  //slotID:9
31382
31383                 //constructor
31384                 public function CommentPostResultStatus()
31385                 {       //MethodID:3553, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31386                         super();
31387                 }
31388         }
31389 }
31390
31391 //■script214■
31392
31393 package jp.nicovideo.nicoplayer.models.comment{
31394
31395         import jp.nicovideo.util.ArrayUtils
31396
31397         //■class(instance)_index:262
31398         public class CommentListUtils extends Object
31399         {
31400                 //static constructor
31401                 public static function CommentListUtils$cinit()
31402                 {       //MethodID:3555, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
31403                 }
31404
31405                 //static variables/etc.
31406                 public static function update(hug1:Array, hug2:Array, hug3:Array, hug4:Boolean):Array
31407                 {       //dispID:3, MethodID:3556, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 53
31408                         if(hug4) return hug2.concat();
31409
31410                         var hug5:Array = hug1.concat();
31411
31412                         ArrayUtils.subtract(commentAscComparator, hug5, hug3);
31413                         ArrayUtils.add(commentAscComparator, hug5, hug2, true);
31414
31415                         return hug5;
31416                 }
31417
31418                 public static function add(hug1:Array, hug2:Array):Array
31419                 {       //dispID:4, MethodID:3557, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 25
31420                         var hug3:Array = hug1.concat();
31421
31422                         ArrayUtils.add(commentAscComparator, hug3, hug2, true);
31423
31424                         return hug3;
31425                 }
31426
31427                 public static function remove(hug1:Array, hug2:Array):Array
31428                 {       //dispID:5, MethodID:3558, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 24
31429                         var hug3:Array = hug1.concat();
31430
31431                         ArrayUtils.subtract(commentAscComparator, hug3, hug2);
31432
31433                         return hug3;
31434                 }
31435
31436                 private static function commentAscComparator(hug1:IComment, hug2:IComment):int
31437                 {       //dispID:6, MethodID:3559, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 12
31438                         return (hug1.resNo - hug2.resNo);
31439                 }
31440
31441                 //constructor
31442                 public function CommentListUtils()
31443                 {       //MethodID:3560, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31444                         super();
31445                 }
31446         }
31447 }
31448
31449 //■script215■
31450
31451 package jp.nicovideo.ext.models{
31452
31453         //■class(instance)_index:263
31454         public class ThumbWatchViaName extends Object
31455         {
31456                 //static constructor
31457                 public static function ThumbWatchViaName$cinit()
31458                 {       //MethodID:3562, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
31459                         YAHOO_TOPICS = "yahoo_topics";
31460                 }
31461
31462                 //static variables/etc.
31463                 public static const YAHOO_TOPICS:String = "yahoo_topics";       //slotID:1
31464
31465                 public static function contains(hug1:String):Boolean
31466                 {       //dispID:3, MethodID:3563, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 27
31467                         return (Vector.<String>([YAHOO_TOPICS]).indexOf(hug1) != (-1));
31468                 }
31469
31470                 //constructor
31471                 public function ThumbWatchViaName()
31472                 {       //MethodID:3564, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31473                         super();
31474                 }
31475         }
31476 }
31477
31478 //■script216■
31479
31480 package jp.nicovideo.util{
31481
31482         //■class(instance)_index:264
31483         public final class Assert extends Object
31484         {
31485                 //static constructor
31486                 public static function Assert$cinit()
31487                 {       //MethodID:3566, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
31488                 }
31489
31490                 //static variables/etc.
31491                 public static function assert(hug1:*, hug2:String):void
31492                 {       //dispID:3, MethodID:3567, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 21
31493                         if(!hug1) throw new Error("Assert: " + hug2);
31494                 }
31495
31496                 //constructor
31497                 public function Assert()
31498                 {       //MethodID:3568, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31499                         super();
31500                 }
31501         }
31502 }
31503
31504 //■script217■
31505
31506 package jp.nicovideo.nicoplayer.models.comment{
31507
31508         import jp.nicovideo.nicoplayer.models.filter.NGStatus
31509
31510         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
31511
31512         //■class(instance)_index:265
31513         public class CommentBuilder extends Object
31514         {
31515                 //static constructor
31516                 public static function CommentBuilder$cinit()
31517                 {       //MethodID:3570, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
31518                 }
31519
31520                 //static variables/etc.
31521                 public static function copyComment(hug1:IComment):IComment
31522                 {       //dispID:3, MethodID:3571, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 280
31523                         var hug2:IComment = new Comment();
31524                         comment_builder.anonymity = hug1.anonymity;
31525                         comment_builder.fromLive = hug1.fromLive;
31526                         comment_builder.command = hug1.command;
31527                         comment_builder.message = hug1.message;
31528                         comment_builder.date = hug1.date;
31529                         comment_builder.deleted = hug1.deleted;
31530                         comment_builder.fork = hug1.fork;
31531                         comment_builder.isOwner = hug1.isOwner;
31532                         comment_builder.isPremium = hug1.isPremium;
31533                         comment_builder.justPosted = hug1.justPosted;
31534                         comment_builder.ng = hug1.ng;
31535                         comment_builder.resNo = hug1.resNo;
31536                         comment_builder.userID = hug1.userID;
31537                         comment_builder.userName = hug1.userName;
31538                         comment_builder.vpos = hug1.vpos;
31539                         comment_builder.clickCount = hug1.clickCount;
31540                         comment_builder.commentList = hug1.commentList;
31541                         comment_builder.leafID = hug1.leafID;
31542                         comment_builder.isTrunk = hug1.isTrunk;
31543                         return hug2;
31544                 }
31545
31546                 public static function simplify(hug1:IComment):Object
31547                 {       //dispID:4, MethodID:3572, LocalCount= 2 , MaxScope= 1, MaxStack= 36, CodeLength= 154
31548                         return {message:hug1.message, no:hug1.resNo, vpos:hug1.vpos, date:(hug1.date ? hug1.date.getTime() : 0), userID:hug1.userID, userName:hug1.userName, isOwner:hug1.isOwner, deleted:hug1.deleted, isPremium:hug1.isPremium, anonymity:hug1.anonymity, fromLive:hug1.fromLive, fork:hug1.fork, mail:hug1.command.command, justPosted:hug1.justPosted, ng:hug1.ng, clickCount:hug1.clickCount, leafID:hug1.leafID, isTrunk:hug1.isTrunk};
31549                 }
31550
31551                 public static function unsimplify(hug1:Object):IComment
31552                 {       //dispID:5, MethodID:3573, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 175
31553                         var hug2:CommentBuilder = new IComment();
31554                         hug2.message = hug1.message;
31555                         hug2.resNo = hug1.no;
31556                         hug2.vpos = hug1.vpos;
31557                         hug2.date = new Date(hug1.date);
31558                         hug2.userID = hug1.userID;
31559                         hug2.userName = hug1.userName;
31560                         hug2.isOwner = hug1.isOwner;
31561                         hug2.deleted = hug1.deleted;
31562                         hug2.isPremium = hug1.isPremium;
31563                         hug2.anonymity = hug1.anonymity;
31564                         hug2.fromLive = hug1.fromLive;
31565                         hug2.fork = hug1.fork;
31566                         hug2.command = new Command(hug1.mail, hug1.isPremium);
31567                         hug2.justPosted = hug1.justPosted;
31568                         hug2.ng = hug1.ng;
31569                         hug2.clickCount = hug1.clickCount;
31570                         hug2.leafID = hug1.leafID;
31571                         hug2.isTrunk = hug1.isTrunk;
31572                         return hug2.make();
31573                 }
31574
31575                 //constructor
31576                 public function CommentBuilder(hug1:IComment)
31577                 {       //MethodID:3574, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 32
31578                         super();
31579
31580                         if(hug1){
31581                                 this._commentBuffer = copyComment(hug1);
31582                         }else{
31583                                 this.reset();
31584                         }
31585                 }
31586
31587                 //variables/etc.
31588                 private var _commentBuffer:IComment;                            //slotID:0
31589
31590                 public function make():IComment
31591                 {       //MethodID:3575, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 14
31592                         return copyComment(this._commentBuffer);
31593                 }
31594
31595                 public function reset():void
31596                 {       //MethodID:3577, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 41
31597                         this._commentBuffer = new Comment();
31598                         this._commentBuffer.command = new Command(function(hug1:ICommand):void{ //MethodID:3576, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31599                         });
31600                 }
31601
31602                 public function set message(hug1:String):void
31603                 {       //MethodID:3578, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31604                         comment_builder.message = hug1;
31605                 }
31606
31607                 public function set resNo(hug1:uint):void
31608                 {       //MethodID:3579, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31609                         comment_builder.resNo = hug1;
31610                 }
31611
31612                 public function set vpos(hug1:Number):void
31613                 {       //MethodID:3580, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 30
31614                         comment_builder.vpos = (Math.floor(hug1 / 10) * 10);
31615                 }
31616
31617                 public function set date(hug1:Date):void
31618                 {       //MethodID:3581, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31619                         comment_builder.date = hug1;
31620                 }
31621
31622                 public function set command(hug1:ICommand):void
31623                 {       //MethodID:3582, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31624                         comment_builder.command = hug1;
31625                 }
31626
31627                 public function set userID(hug1:String):void
31628                 {       //MethodID:3583, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31629                         comment_builder.userID = hug1;
31630                 }
31631
31632                 public function set userName(hug1:String):void
31633                 {       //MethodID:3584, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31634                         comment_builder.userName = hug1;
31635                 }
31636
31637                 public function set isOwner(hug1:Boolean):void
31638                 {       //MethodID:3585, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31639                         comment_builder.isOwner = hug1;
31640                 }
31641
31642                 public function set deleted(hug1:uint):void
31643                 {       //MethodID:3586, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31644                         comment_builder.deleted = hug1;
31645                 }
31646
31647                 public function set isPremium(hug1:Boolean):void
31648                 {       //MethodID:3587, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31649                         comment_builder.isPremium = hug1;
31650                 }
31651
31652                 public function set anonymity(hug1:Boolean):void
31653                 {       //MethodID:3588, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31654                         comment_builder.anonymity = hug1;
31655                 }
31656
31657                 public function set fromLive(hug1:Boolean):void
31658                 {       //MethodID:3589, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31659                         comment_builder.fromLive = hug1;
31660                 }
31661
31662                 public function set fork(hug1:uint):void
31663                 {       //MethodID:3590, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31664                         comment_builder.fork = hug1;
31665                 }
31666
31667                 public function set justPosted(hug1:Boolean):void
31668                 {       //MethodID:3591, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31669                         comment_builder.justPosted = hug1;
31670                 }
31671
31672                 public function set ng(hug1:uint):void
31673                 {       //MethodID:3592, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 72
31674                         if((hug1 == NGStatus.NONE) || (hug1 == NGStatus.INVISIBLE) || (hug1 == NGStatus.REJECT_COMMAND)){
31675                                 comment_builder.ng = hug1;
31676                         }else{
31677                                 throw new Error("CommentBuilder.set ng: invalid status.");
31678                         }
31679                 }
31680
31681                 public function set commentList(hug1:ICommentList):void
31682                 {       //MethodID:3593, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31683                         comment_builder.commentList = hug1;
31684                 }
31685
31686                 public function set clickCount(hug1:uint):void
31687                 {       //MethodID:3594, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31688                         comment_builder.clickCount = hug1;
31689                 }
31690
31691                 public function set leafID(hug1:uint):void
31692                 {       //MethodID:3595, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31693                         comment_builder.leafID = hug1;
31694                 }
31695
31696                 public function set isTrunk(hug1:Boolean):void
31697                 {       //MethodID:3596, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 17
31698                         comment_builder.isTrunk = hug1;
31699                 }
31700
31701                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get command():ICommand
31702                 {       //MethodID:3597, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
31703                         return this._commentBuffer.command;
31704                 }
31705         }
31706 }
31707
31708 //■script218■
31709
31710 package jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowChildren{
31711
31712         //■class(instance)_index:266
31713         public class TabContentName extends Object
31714         {
31715                 //static constructor
31716                 public static function TabContentName$cinit()
31717                 {       //MethodID:3599, LocalCount= 1 , MaxScope= 1, MaxStack= 7, CodeLength= 83
31718                         COMMENT = "comment";
31719                         NG = "ng";
31720                         RELATION = "relation";
31721                         PLAYLIST = "playlist";
31722                         OWNERCOMMENT_EDITOR = "ownercomment_editor";
31723                         REPLACER = "replacer";
31724                         TAB_NAMES = [COMMENT, NG, RELATION, PLAYLIST, OWNERCOMMENT_EDITOR, REPLACER];
31725                 }
31726
31727                 //static variables/etc.
31728                 public static const COMMENT:String = "comment";                 //slotID:1
31729                 public static const NG:String = "ng";                           //slotID:2
31730                 public static const RELATION:String = "relation";               //slotID:3
31731                 public static const PLAYLIST:String = "playlist";               //slotID:4
31732                 public static const OWNERCOMMENT_EDITOR:String = "ownercomment_editor";//slotID:5
31733                 public static const REPLACER:String = "replacer";               //slotID:6
31734                 public static const TAB_NAMES:Array;                            //slotID:7
31735
31736                 public static function getIndex(hug1:String):int
31737                 {       //dispID:3, MethodID:3600, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 14
31738                         return TabContentName.TAB_NAMES.indexOf(hug1);
31739                 }
31740
31741                 public static function getNameByIndex(hug1:int):String
31742                 {       //dispID:4, MethodID:3601, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 13
31743                         return TabContentName.TAB_NAMES[hug1];
31744                 }
31745
31746                 //constructor
31747                 public function TabContentName()
31748                 {       //MethodID:3602, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31749                         super();
31750                 }
31751         }
31752 }
31753
31754 //■script219■
31755
31756 package jp.nicovideo.hiroba.events{
31757
31758
31759         public const hiroba_setter:* = "http://www.nicovideo.jp/as3_ns/hiroba/events/hiroba_setter";//slotID:0
31760
31761 }
31762
31763 //■script220■
31764
31765 package jp.nicovideo.hiroba.models{
31766
31767         //■class(instance)_index:267
31768         public interface IHirobaComment
31769         {
31770                 //static constructor
31771                 public static function IHirobaComment$cinit()
31772                 {       //MethodID:3605, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31773                 }
31774
31775                 //variables/etc.
31776                 function get message():String;                                              //MethodID:3606, dispID:0
31777
31778                 function get mail():String;                                                 //MethodID:3607, dispID:0
31779
31780                 function get isPremium():Boolean;                                           //MethodID:3608, dispID:0
31781
31782                 function get date():Date;                                                   //MethodID:3609, dispID:0
31783
31784                 function get yourpost():Boolean;                                            //MethodID:3610, dispID:0
31785
31786                 //constructor
31787                 public function IHirobaComment();                                           //MethodID:3611, dispID:0
31788         }
31789 }
31790
31791 //■script221■
31792
31793 package jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren{
31794
31795         import jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowChildren.ITabContent
31796         import jp.nicovideo.util.Functions
31797
31798         //■class(instance)_index:268
31799         public interface ITabManager
31800         {
31801                 //static constructor
31802                 public static function ITabManager$cinit()
31803                 {       //MethodID:3613, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31804                 }
31805
31806                 //variables/etc.
31807                 function register(hug1:String, hug2:ITabContent):Boolean;                   //MethodID:3614, dispID:0
31808
31809                 function append(hug1:String, hug2:Boolean=true):Boolean;                    //MethodID:3615, dispID:0
31810
31811                 function remove(hug1:String):Boolean;                                       //MethodID:3616, dispID:0
31812
31813                 function show(hug1:String):Boolean;                                         //MethodID:3617, dispID:0
31814
31815                 function isRegistered(hug1:String):Boolean;                                 //MethodID:3618, dispID:0
31816
31817                 function isAppended(hug1:String):Boolean;                                   //MethodID:3619, dispID:0
31818
31819                 function isActive(hug1:String):Boolean;                                     //MethodID:3620, dispID:0
31820
31821                 function showMessage(hug1:String, hug2:Boolean=false, hug3:int=-1, hug4:Boolean=true, hug5:Function=null):void;//MethodID:3621, dispID:0
31822
31823                 function hideMessage():void;                                                //MethodID:3622, dispID:0
31824
31825                 function get baseContentWidth():Number;                                     //MethodID:3623, dispID:0
31826
31827                 function get baseContentHeight():Number;                                    //MethodID:3624, dispID:0
31828
31829                 function get onActiveContentUpdated():Functions;                            //MethodID:3625, dispID:0
31830
31831                 function updateWindowHeight(hug1:int):void;                                 //MethodID:3626, dispID:0
31832
31833                 //constructor
31834                 public function ITabManager();                                              //MethodID:3627, dispID:0
31835         }
31836 }
31837
31838 //■script222■
31839
31840 package jp.nicovideo.nicoplayer.views{
31841
31842         //■class(instance)_index:269
31843         public class SponsorVideoBGType extends Object
31844         {
31845                 //static constructor
31846                 public static function SponsorVideoBGType$cinit()
31847                 {       //MethodID:3629, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
31848                         DEFAULT = "default";
31849                         CAPTURE = "capture";
31850                         COLOR = "color";
31851                 }
31852
31853                 //static variables/etc.
31854                 public static const DEFAULT:String = "default";                 //slotID:1
31855                 public static const CAPTURE:String = "capture";                 //slotID:2
31856                 public static const COLOR:String = "color";                     //slotID:3
31857
31858                 //constructor
31859                 public function SponsorVideoBGType()
31860                 {       //MethodID:3630, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31861                         super();
31862                 }
31863         }
31864 }
31865
31866 //■script223■
31867
31868 package jp.nicovideo.nicoplayer.views.framerate{
31869
31870         //■class(instance)_index:270
31871         public class FrameRateMode extends Object
31872         {
31873                 //static constructor
31874                 public static function FrameRateMode$cinit()
31875                 {       //MethodID:3632, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
31876                         HIGH = 60;
31877                         NORMAL = 25;
31878                 }
31879
31880                 //static variables/etc.
31881                 public static const HIGH:uint = 60;                             //slotID:1
31882                 public static const NORMAL:uint = 25;                           //slotID:2
31883
31884                 //constructor
31885                 public function FrameRateMode()
31886                 {       //MethodID:3633, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
31887                         super();
31888                 }
31889         }
31890 }
31891
31892 //■script224■
31893
31894 package jp.nicovideo.nicoplayer.app.view{
31895
31896         import flash.display.DisplayObjectContainer
31897         import jp.nicovideo.app.applibar.IApplibar
31898         import jp.nicovideo.util.Functions
31899
31900         //■class(instance)_index:271
31901         public interface IApplibarContainer
31902         {
31903                 //static constructor
31904                 public static function IApplibarContainer$cinit()
31905                 {       //MethodID:3635, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31906                 }
31907
31908                 //variables/etc.
31909                 function get container():DisplayObjectContainer;                            //MethodID:3636, dispID:0
31910
31911                 function get screen():DisplayObjectContainer;                               //MethodID:3637, dispID:0
31912
31913                 function get iconAreaWidth():Number;                                        //MethodID:3638, dispID:0
31914
31915                 function get onResized():Functions;                                         //MethodID:3639, dispID:0
31916
31917                 function onInitApplibar(hug1:IApplibar):void;                               //MethodID:3640, dispID:0
31918
31919                 function onBarBaseSizeUpdate():void;                                        //MethodID:3641, dispID:0
31920
31921                 //constructor
31922                 public function IApplibarContainer();                                       //MethodID:3642, dispID:0
31923         }
31924 }
31925
31926 //■script225■
31927
31928 package jp.nicovideo.app.applibar.externals{
31929
31930         import flash.display.DisplayObjectContainer
31931         import jp.nicovideo.app.api.IAPIObjectProvider
31932
31933         //■class(instance)_index:272
31934         public interface IApplibarClient implements IEventDispatcher
31935         {
31936                 //static constructor
31937                 public static function IApplibarClient$cinit()
31938                 {       //MethodID:3644, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31939                 }
31940
31941                 //variables/etc.
31942                 function get containerName():String;                                        //MethodID:3645, dispID:0
31943
31944                 function get userID():String;                                               //MethodID:3646, dispID:0
31945
31946                 function get iconAreaWidth():Number;                                        //MethodID:3647, dispID:0
31947
31948                 function get screen():DisplayObjectContainer;                               //MethodID:3648, dispID:0
31949
31950                 function getAPIProvider(hug1:uint):IAPIObjectProvider;                      //MethodID:3649, dispID:0
31951
31952                 function get applibarVisible():Boolean;                                     //MethodID:3650, dispID:0
31953
31954                 function showDialog(hug1:String, hug2:String=null, hug3:String=null, hug4:Function=null, hug5:String=null, hug6:Function=null):void;//MethodID:3651, dispID:0
31955
31956                 //constructor
31957                 public function IApplibarClient();                                          //MethodID:3652, dispID:0
31958         }
31959 }
31960
31961 //■script226■
31962
31963 package jp.nicovideo.app.applibar.externals{
31964
31965         //■class(instance)_index:273
31966         public interface IVideoApplibarClient implements IApplibarClient
31967         {
31968                 //static constructor
31969                 public static function IVideoApplibarClient$cinit()
31970                 {       //MethodID:3654, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
31971                 }
31972
31973                 //variables/etc.
31974                 function get installedCount():Number;                                       //MethodID:3655, dispID:0
31975
31976                 function get isAppliPromotion():Boolean;                                    //MethodID:3656, dispID:0
31977
31978                 //constructor
31979                 public function IVideoApplibarClient();                                     //MethodID:3657, dispID:0
31980         }
31981 }
31982
31983 //■script227■
31984
31985 package jp.nicovideo.nicoplayer.app{
31986
31987         import flash.display.DisplayObjectContainer
31988         import flash.events.EventDispatcher
31989         import jp.nicovideo.app.api.IAPIObjectProvider
31990         import jp.nicovideo.app.applibar.externals.ContainerName
31991         import jp.nicovideo.app.applibar.externals.events.ApplibarClientEvent
31992         import jp.nicovideo.nicoplayer.app.api.APIObjectProviderSwitcher
31993         import jp.nicovideo.nicoplayer.app.view.IApplibarContainer
31994         import jp.nicovideo.nicoplayer.models.SystemMessage
31995
31996         //■class(instance)_index:274
31997         public class ApplibarClient extends EventDispatcher implements IVideoApplibarClient
31998         {
31999                 //static constructor
32000                 public static function ApplibarClient$cinit()
32001                 {       //MethodID:3659, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
32002                 }
32003
32004                 //constructor
32005                 public function ApplibarClient(hug1:IApplibarContainer, hug2:APIObjectProviderSwitcher, hug3:String, hug4:Number, hug5:Boolean)
32006                 {       //MethodID:3660, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 48
32007                         super();
32008
32009                         this._container = hug1;
32010
32011                         this._container.onResized.add(this._onResized);
32012
32013                         this._providerSwitcher = hug2;
32014                         this._userID = hug3;
32015                         this._appliInstalled = hug4;
32016                         this._isAppliPromotion = hug5;
32017                 }
32018
32019                 //variables/etc.
32020                 private var _container:IApplibarContainer;                      //slotID:0
32021                 private var _providerSwitcher:APIObjectProviderSwitcher;        //slotID:0
32022                 private var _userID:String;                                     //slotID:0
32023                 private var _appliInstalled:Number;                             //slotID:0
32024                 private var _isAppliPromotion:Boolean;                          //slotID:0
32025
32026                 private function _onResized():void
32027                 {       //MethodID:3661, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 45
32028                         dispatchEvent(new ApplibarClientEvent(ApplibarClientEvent.CONTAINER_RESIZE, this));
32029                         dispatchEvent(new ApplibarClientEvent(ApplibarClientEvent.SCREEN_RESIZE, this));
32030                 }
32031
32032                 public function get containerName():String
32033                 {       //MethodID:3662, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
32034                         return ContainerName.NICO_PLAYER;
32035                 }
32036
32037                 public function get userID():String
32038                 {       //MethodID:3663, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32039                         return this._userID;
32040                 }
32041
32042                 public function get iconAreaWidth():Number
32043                 {       //MethodID:3664, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32044                         return this._container.iconAreaWidth;
32045                 }
32046
32047                 public function get screen():DisplayObjectContainer
32048                 {       //MethodID:3665, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32049                         return this._container.screen;
32050                 }
32051
32052                 public function get applibarVisible():Boolean
32053                 {       //MethodID:3666, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
32054                         return true;
32055                 }
32056
32057                 public function getAPIProvider(hug1:uint):IAPIObjectProvider
32058                 {       //MethodID:3667, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
32059                         return this._providerSwitcher.getAPIProvider(hug1);
32060                 }
32061
32062                 public function showDialog(hug1:String, hug2:String=null, hug3:String=null, hug4:Function=null, hug5:String=null, hug6:Function=null, ...args):void
32063                 {       //MethodID:3668, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 24
32064                         SystemMessage.instance.alert.apply(SystemMessage.instance, args);
32065                 }
32066
32067                 public function get installedCount():Number
32068                 {       //MethodID:3669, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32069                         return this._appliInstalled;
32070                 }
32071
32072                 public function get isAppliPromotion():Boolean
32073                 {       //MethodID:3670, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32074                         return this._isAppliPromotion;
32075                 }
32076         }
32077 }
32078
32079 //■script228■
32080
32081 package jp.nicovideo.app.applibar.externals.events{
32082
32083         import flash.events.Event
32084
32085         //■class(instance)_index:275
32086         public class ApplibarEvent extends Event
32087         {
32088                 //static constructor
32089                 public static function ApplibarEvent$cinit()
32090                 {       //MethodID:3672, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
32091                         PAGE_OPEN = "pageOpen";
32092                 }
32093
32094                 //static variables/etc.
32095                 public static const PAGE_OPEN:String = "pageOpen";              //slotID:1
32096
32097                 //constructor
32098                 public function ApplibarEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
32099                 {       //MethodID:3673, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 9
32100                         super(hug1, hug2, hug3);
32101                 }
32102         }
32103 }
32104
32105 //■script229■
32106
32107 package jp.nicovideo.nicoplayer.app.api{
32108
32109         import jp.nicovideo.app.api.APIObjectProvider
32110         import jp.nicovideo.app.api.IAPIObjectProvider
32111         import jp.nicovideo.nicoplayer.app.api.v1.getPools
32112         import jp.nicovideo.nicoplayer.plugin.IPluginClient
32113
32114         //■class(instance)_index:276
32115         public class APIObjectProviderSwitcher extends Object
32116         {
32117                 //static constructor
32118                 public static function APIObjectProviderSwitcher$cinit()
32119                 {       //MethodID:3675, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
32120                 }
32121
32122                 //constructor
32123                 public function APIObjectProviderSwitcher(hug1:IPluginClient)
32124                 {       //MethodID:3676, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 38
32125                         this._providers = [null];
32126
32127                         super();
32128                         this._providers.push(new APIObjectProvider(1, getPools(hug1)));
32129                 }
32130
32131                 //variables/etc.
32132                 private var _providers:Array;                                   //slotID:0
32133
32134                 public function getAPIProvider(hug1:uint):IAPIObjectProvider
32135                 {       //MethodID:3677, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
32136                         return this._providers[hug1];
32137                 }
32138         }
32139 }
32140
32141 //■script230■
32142
32143 package jp.nicovideo.app.applibar{
32144
32145         import jp.nicovideo.app.applibar.externals.IApplibarClient
32146         import jp.nicovideo.app.applibar.externals.IBalloonController
32147
32148         //■class(instance)_index:277
32149         public interface IApplibar implements IEventDispatcher
32150         {
32151                 //static constructor
32152                 public static function IApplibar$cinit()
32153                 {       //MethodID:3679, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
32154                 }
32155
32156                 //variables/etc.
32157                 function start(hug1:IApplibarClient, hug2:String=null):void;                //MethodID:3680, dispID:0
32158
32159                 function get balloonController():IBalloonController;                        //MethodID:3681, dispID:0
32160
32161                 function get isOpen():Boolean;                                              //MethodID:3682, dispID:0
32162
32163                 function get baseHeight():Number;                                           //MethodID:3683, dispID:0
32164
32165                 function get baseWidth():Number;                                            //MethodID:3684, dispID:0
32166
32167                 //constructor
32168                 public function IApplibar();                                                //MethodID:3685, dispID:0
32169         }
32170 }
32171
32172 //■script231■
32173
32174 package jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren{
32175
32176         //■class(instance)_index:278
32177         public class WindowViewConstants extends Object
32178         {
32179                 //static constructor
32180                 public static function WindowViewConstants$cinit()
32181                 {       //MethodID:3687, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 58
32182                         FRAME_MARGIN = 8;
32183                         ELEMENT_MARGIN = 4;
32184                         CONTENT_HD_WIDTH = 288;
32185                         CONTENT_SD_WIDTH = 416;
32186                         CONTENT_HEIGHT_FULL = 424;
32187                         CONTENT_LINE_HEIGHT = (22 + ELEMENT_MARGIN);
32188                 }
32189
32190                 //static variables/etc.
32191                 public static const FRAME_MARGIN:int = 8;                       //slotID:1
32192                 public static const ELEMENT_MARGIN:int = 4;                     //slotID:2
32193                 public static const CONTENT_HD_WIDTH:int = 288;                 //slotID:3
32194                 public static const CONTENT_SD_WIDTH:int = 416;                 //slotID:4
32195                 public static const CONTENT_HEIGHT_FULL:int = 424;              //slotID:5
32196                 public static const CONTENT_LINE_HEIGHT:int = 26;               //slotID:6
32197
32198                 //constructor
32199                 public function WindowViewConstants()
32200                 {       //MethodID:3688, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
32201                         super();
32202                 }
32203         }
32204 }
32205
32206 //■script232■
32207
32208 package jp.nicovideo.nicoplayer.storages.transmitter{
32209
32210         import jp.nicovideo.util.Functions
32211
32212         //■class(instance)_index:279
32213         public interface ITransmitter
32214         {
32215                 //static constructor
32216                 public static function ITransmitter$cinit()
32217                 {       //MethodID:3690, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
32218                 }
32219
32220                 //variables/etc.
32221                 function connect(hug1:Function):void;                                       //MethodID:3691, dispID:0
32222
32223                 function send(hug1:XML):void;                                               //MethodID:3692, dispID:0
32224
32225                 function disconnect():void;                                                 //MethodID:3693, dispID:0
32226
32227                 function get type():String;                                                 //MethodID:3694, dispID:0
32228
32229                 function get isConnecting():Boolean;                                        //MethodID:3695, dispID:0
32230
32231                 function get connected():Functions;                                         //MethodID:3696, dispID:0
32232
32233                 function get xmlReceived():Functions;                                       //MethodID:3697, dispID:0
32234
32235                 function get errorOccured():Functions;                                      //MethodID:3698, dispID:0
32236
32237                 //constructor
32238                 public function ITransmitter();                                             //MethodID:3699, dispID:0
32239         }
32240 }
32241
32242 //■script233■
32243
32244 package jp.nicovideo.nicoplayer.storages.transmitter{
32245
32246         import flash.events.Event
32247         import flash.events.IOErrorEvent
32248         import flash.events.SecurityErrorEvent
32249         import flash.net.URLLoader
32250         import flash.net.URLRequest
32251         import jp.nicovideo.util.Functions
32252         import jp.nicovideo.util.ObjectUtils
32253
32254         //■class(instance)_index:280
32255         public class HTTPTransmitter extends Object implements ITransmitter
32256         {
32257                 //static constructor
32258                 public static function HTTPTransmitter$cinit()
32259                 {       //MethodID:3701, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
32260                 }
32261
32262                 //constructor
32263                 public function HTTPTransmitter(hug1:String)
32264                 {       //MethodID:3702, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 38
32265                         this._connected = new Functions();
32266                         this._xmlReceived = new Functions();
32267                         this._errorOccured = new Functions();
32268
32269                         super();
32270
32271                         this._serverURL = hug1;
32272                 }
32273
32274                 //variables/etc.
32275                 private const _connected:Functions;                             //slotID:0
32276                 private const _xmlReceived:Functions;                           //slotID:0
32277                 private const _errorOccured:Functions;                          //slotID:0
32278                 private var _serverURL:String = null;                           //slotID:0
32279
32280                 public function get type():String
32281                 {       //MethodID:3703, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
32282                         return TransmitterType.HTTP;
32283                 }
32284
32285                 public function connect(hug1:Function):void
32286                 {       //MethodID:3705, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 22
32287                         internal var callbackFunc:Function;                             //slotID:1
32288
32289                         callbackFunc = hug1;
32290
32291                         ObjectUtils.callLater(function():void{  //MethodID:3704, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 17
32292                                 connected.apply();
32293                                 callbackFunc(true);
32294                         });
32295                 }
32296
32297                 public function send(hug1:XML):void
32298                 {       //MethodID:3711, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 146
32299                         internal var xml:XML;                                           //slotID:1
32300                         internal var request:URLRequest;                                //slotID:2
32301                         internal var loader:URLLoader;                                  //slotID:3
32302
32303                         request = null;
32304                         loader = null;
32305                         xml = hug1;
32306                         request = new URLRequest(this._serverURL);
32307                         request.method = "POST";
32308                         request.contentType = "text/xml";
32309
32310                         useMsgXML(function():void{      //MethodID:3706, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 14
32311                                 request.data = xml.toXMLString();
32312                         });
32313
32314                         loader = new URLLoader();
32315                         loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:3708, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
32316                                 internal var event:Event;                                       //slotID:1
32317
32318                                 event = hug1;
32319
32320                                 useMsgXML(function():void{      //MethodID:3707, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 19
32321                                         xmlReceived.apply(new XML(loader.data));
32322                                 });
32323                         });
32324                         loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:IOErrorEvent):void{        //MethodID:3709, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 17
32325                                 errorOccured.apply("HTTPTransmitter_" + IOErrorEvent.IO_ERROR);
32326                         });
32327                         loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{      //MethodID:3710, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 17
32328                                 errorOccured.apply("HTTPTransmitter_" + SecurityErrorEvent.SECURITY_ERROR);
32329                         });
32330                         loader.load(request);
32331                 }
32332
32333                 public function disconnect():void
32334                 {       //MethodID:3712, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
32335                 }
32336
32337                 public function get connected():Functions
32338                 {       //MethodID:3713, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32339                         return this._connected;
32340                 }
32341
32342                 public function get isConnecting():Boolean
32343                 {       //MethodID:3714, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
32344                         return true;
32345                 }
32346
32347                 public function get xmlReceived():Functions
32348                 {       //MethodID:3715, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32349                         return this._xmlReceived;
32350                 }
32351
32352                 public function get errorOccured():Functions
32353                 {       //MethodID:3716, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32354                         return this._errorOccured;
32355                 }
32356         }
32357 }
32358
32359 //■script234■
32360
32361 package jp.nicovideo.nicoplayer.storages.transmitter{
32362
32363         import flash.events.DataEvent
32364         import flash.events.Event
32365         import flash.events.IOErrorEvent
32366         import flash.events.SecurityErrorEvent
32367         import flash.events.TimerEvent
32368         import flash.net.XMLSocket
32369         import flash.system.Security
32370         import flash.utils.Timer
32371         import jp.nicovideo.util.Functions
32372
32373         //■class(instance)_index:281
32374         public class XMLSocketTransmitter extends Object implements ITransmitter
32375         {
32376                 //static constructor
32377                 public static function XMLSocketTransmitter$cinit()
32378                 {       //MethodID:3718, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
32379                 }
32380
32381                 //constructor
32382                 public function XMLSocketTransmitter(hug1:String, hug2:uint, hug3:Boolean=false)
32383                 {       //MethodID:3727, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 209
32384                         internal var host:String;                                       //slotID:1
32385                         internal var port:uint;                                         //slotID:2
32386                         internal var isPingEnabled:Boolean = false;                     //slotID:3
32387                         internal var callHandler:Function;                              //slotID:4
32388
32389                         host = hug1;
32390                         port = hug2;
32391                         isPingEnabled = hug3;
32392                         this._connected = new Functions();
32393                         this._xmlReceived = new Functions();
32394                         this._errorOccured = new Functions();
32395                         this.__pingTimer = new Timer(60 * 1000);
32396
32397                         super();
32398
32399                         callHandler = function(hug1:Boolean, hug2:String):void{ //MethodID:3719, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 66
32400                                 if(isPingEnabled){
32401                                         if(hug1){
32402                                                 __pingTimer.start();
32403                                         }else if(__pingTimer.running){
32404                                                 __pingTimer.stop();
32405                                         }
32406                                 }
32407
32408                                 if(__oneTimeConnectionHandler == null) return;
32409                                 __oneTimeConnectionHandler(hug1, hug2);
32410
32411                                 __oneTimeConnectionHandler = null;
32412                         };
32413
32414                         this.__host = host;
32415                         this.__port = port;
32416                         this.__socket = new XMLSocket();
32417
32418                         this.__socket.addEventListener(Event.CONNECT, function(hug1:Event):void{        //MethodID:3720, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
32419                                 connected.apply();
32420                                 callHandler(true);
32421                         });
32422                         this.__socket.addEventListener(DataEvent.DATA, function(hug1:DataEvent):void{   //MethodID:3722, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 20
32423                                 internal var event:DataEvent;                                   //slotID:1
32424
32425                                 event = hug1;
32426
32427                                 useMsgXML(function():void{      //MethodID:3721, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 19
32428                                         xmlReceived.apply(new XML(event.data));
32429                                 });
32430                         });
32431                         this.__socket.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:Event):void{        //MethodID:3723, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 43
32432                                 if(__oneTimeConnectionHandler == null) errorOccured.apply("XMLSocketTransmitter_" + IOErrorEvent.IO_ERROR);
32433                                 callHandler(false, ("XMLSocketTransmitter_" + IOErrorEvent.IO_ERROR));
32434                         });
32435                         this.__socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:Event):void{    //MethodID:3724, LocalCount= 2 , MaxScope= 0, MaxStack= 4, CodeLength= 19
32436                                 callHandler(false, ("XMLSocketTransmitter_" + SecurityErrorEvent.SECURITY_ERROR));
32437                         });
32438                         this.__socket.addEventListener(Event.CLOSE, function(hug1:Event):void{  //MethodID:3725, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 25
32439                                 if(__isClosing) return;
32440                                 errorOccured.apply("XMLSocketTransmitter_" + Event.CLOSE);
32441                         });
32442
32443                         if(isPingEnabled){
32444                                 this.__pingTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{     //MethodID:3726, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 23
32445                                         if(!isConnecting) return;
32446                                         send(new XML("<ping/>"));
32447                                 });
32448                         }
32449                 }
32450
32451                 //variables/etc.
32452                 private const _connected:Functions;                             //slotID:0
32453                 private const _xmlReceived:Functions;                           //slotID:0
32454                 private const _errorOccured:Functions;                          //slotID:0
32455                 private var __host:String = null;                               //slotID:0
32456                 private var __port:uint = 0;                                    //slotID:0
32457                 private var __socket:XMLSocket = null;                          //slotID:0
32458                 private var __oneTimeConnectionHandler:Function;                //slotID:0
32459                 private var __isClosing:Boolean = false;                        //slotID:0
32460                 private var __pingTimer:Timer;                                  //slotID:0
32461
32462                 public function get type():String
32463                 {       //MethodID:3728, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
32464                         return TransmitterType.XML_SOCKET;
32465                 }
32466
32467                 public function connect(hug1:Function):void
32468                 {       //MethodID:3729, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 48
32469                         this.__oneTimeConnectionHandler = hug1;
32470
32471                         Security.loadPolicyFile("xmlsocket://" + this.__host + ":" + this.__port);
32472                         this.__socket.connect(this.__host, this.__port);
32473                 }
32474
32475                 public function send(hug1:XML):void
32476                 {       //MethodID:3731, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 22
32477                         internal var xml:XML;                                           //slotID:1
32478
32479                         xml = hug1;
32480
32481                         useMsgXML(function():void{      //MethodID:3730, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 15
32482                                 __socket.send(xml.toXMLString());
32483                         });
32484                 }
32485
32486                 public function disconnect():void
32487                 {       //MethodID:3732, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 16
32488                         this.__isClosing = true;
32489
32490                         this.__socket.close();
32491                 }
32492
32493                 public function get connected():Functions
32494                 {       //MethodID:3733, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32495                         return this._connected;
32496                 }
32497
32498                 public function get xmlReceived():Functions
32499                 {       //MethodID:3734, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32500                         return this._xmlReceived;
32501                 }
32502
32503                 public function get isConnecting():Boolean
32504                 {       //MethodID:3735, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32505                         return this.__socket.connected;
32506                 }
32507
32508                 public function get errorOccured():Functions
32509                 {       //MethodID:3736, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32510                         return this._errorOccured;
32511                 }
32512         }
32513 }
32514
32515 //■script235■
32516
32517 package jp.nicovideo.nicoplayer.storages.transmitter{
32518
32519
32520         public function useMsgXML(hug1:Function):void
32521         {       //dispID:2, MethodID:3738, LocalCount= 5 , MaxScope= 7, MaxStack= 4, CodeLength= 110
32522                 internal var func:Function;                                     //slotID:1
32523                 internal var old:Boolean;                                       //slotID:2
32524
32525                 func = hug1;
32526                 old = XML.ignoreWhitespace;
32527                 XML.ignoreWhitespace = false;
32528
32529                 try{
32530                         func();
32531                 }
32532                 finally{
32533                         XML.ignoreWhitespace = old;
32534                 }
32535         }
32536
32537 }
32538
32539 //■script236■
32540
32541 package jp.nicovideo.nicoplayer.models.video{
32542
32543         //■class(instance)_index:282
32544         public class VideoConstants extends Object
32545         {
32546                 //static constructor
32547                 public static function VideoConstants$cinit()
32548                 {       //MethodID:3740, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 119
32549                         ERROR_CONNECTION_LIMIT = "error_connection_limit";
32550                         ERROR_AUTHENTICATION = "error_authentication";
32551                         ERROR_TIMEOUT = "error_timeout";
32552                         VIDEO_TYPE_FLV = "flv";
32553                         VIDEO_TYPE_MP4 = "mp4";
32554                         VIDEO_TYPE_SWF = "swf";
32555                         OPERATION_HIROBA = "operation_hiroba";
32556                         OPERATION_NICOWARI = "operation_nicowari";
32557                         OPERATION_PLUGIN_PREFIX = "operation_plugin_";
32558                         OPERATION_OTHER = "operation_other";
32559                         RETRY_LOADING_INTERVAL = 3000;
32560                         RETRY_LOADING_COUNT = 1;
32561                         USER_SPONSOR_VIDEO_LENGTH = 10000;
32562                 }
32563
32564                 //static variables/etc.
32565                 public static const ERROR_CONNECTION_LIMIT:String = "error_connection_limit";//slotID:1
32566                 public static const ERROR_AUTHENTICATION:String = "error_authentication";//slotID:2
32567                 public static const ERROR_TIMEOUT:String = "error_timeout";     //slotID:3
32568                 public static const VIDEO_TYPE_FLV:String = "flv";              //slotID:4
32569                 public static const VIDEO_TYPE_MP4:String = "mp4";              //slotID:5
32570                 public static const VIDEO_TYPE_SWF:String = "swf";              //slotID:6
32571                 public static const OPERATION_HIROBA:String = "operation_hiroba";//slotID:7
32572                 public static const OPERATION_NICOWARI:String = "operation_nicowari";//slotID:8
32573                 public static const OPERATION_PLUGIN_PREFIX:String = "operation_plugin_";//slotID:9
32574                 public static const OPERATION_OTHER:String = "operation_other"; //slotID:10
32575                 public static const RETRY_LOADING_INTERVAL:Number = 3000.0;     //slotID:11
32576                 public static const RETRY_LOADING_COUNT:uint = 1;               //slotID:12
32577                 public static const USER_SPONSOR_VIDEO_LENGTH:Number = 10000.0; //slotID:13
32578
32579                 //constructor
32580                 public function VideoConstants()
32581                 {       //MethodID:3741, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
32582                         super();
32583                 }
32584         }
32585 }
32586
32587 //■script237■
32588
32589 package jp.nicovideo.util.stream.events{
32590
32591         import flash.events.ErrorEvent
32592
32593         //■class(instance)_index:283
32594         public class StreamErrorEvent extends ErrorEvent
32595         {
32596                 //static constructor
32597                 public static function StreamErrorEvent$cinit()
32598                 {       //MethodID:3743, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
32599                         ERROR = "StreamErrorEvent.error";
32600                 }
32601
32602                 //static variables/etc.
32603                 public static const ERROR:String = "StreamErrorEvent.error";    //slotID:1
32604
32605                 //constructor
32606                 public function StreamErrorEvent(hug1:String, hug2:Object, hug3:Boolean=false, hug4:Boolean=false, hug5:String=null)
32607                 {       //MethodID:3744, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 17
32608                         super(hug1, hug3, hug4, hug5);
32609
32610                         this._info = hug2;
32611                 }
32612
32613                 //variables/etc.
32614                 private var _info:Object;                                       //slotID:0
32615
32616                 public function get info():Object
32617                 {       //MethodID:3745, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32618                         return this._info;
32619                 }
32620         }
32621 }
32622
32623 //■script238■
32624
32625 package jp.nicovideo.util.stream{
32626
32627         import flash.display.Sprite
32628         import flash.events.EventDispatcher
32629         import flash.media.SoundTransform
32630         import flash.media.Video
32631         import flash.net.NetConnection
32632         import flash.net.NetStream
32633         import jp.nicovideo.util.stream.events.StreamEvent
32634
32635         //■class(instance)_index:284
32636         public class StreamSource extends EventDispatcher
32637         {
32638                 //static constructor
32639                 public static function StreamSource$cinit()
32640                 {       //MethodID:3747, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
32641                         _DEFAULT_BUFFER_TIME = 100;
32642                 }
32643
32644                 //static variables/etc.
32645                 internal static const _DEFAULT_BUFFER_TIME:Number = 100.0;      //slotID:1
32646                 private static var counter:uint;                                //slotID:2
32647
32648                 //constructor
32649                 public function StreamSource(hug1:Sprite)
32650                 {       //MethodID:3748, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 82
32651                         this._handlerList = [];
32652
32653                         super();
32654
32655                         this._test = (counter++);
32656                         this._videoLayer = hug1;
32657                         this._video = new Video(this._videoLayer.width, this._videoLayer.height);
32658                         this._video.smoothing = true;
32659                         this._video.deblocking = 5;
32660                 }
32661
32662                 //variables/etc.
32663                 private var _videoLayer:Sprite;                                 //slotID:0
32664                 public var _video:Video;                                        //slotID:0
32665                 private var _nc:NetConnection;                                  //slotID:0
32666                 private var _ns:NetStream;                                      //slotID:0
32667                 private var _client:AbstractStreamClient;                       //slotID:0
32668                 private var _metaData:Object;                                   //slotID:0
32669                 private var _url:String;                                        //slotID:0
32670                 private var _filename:String;                                   //slotID:0
32671                 private var _length:Number = -1.0;                              //slotID:0
32672                 private var _isLoaded:Boolean = false;                          //slotID:0
32673                 private var _hasLengthFixed:Boolean;                            //slotID:0
32674                 private var _isConnected:Boolean = false;                       //slotID:0
32675                 private var _bufferTime:Number = 2000.0;                        //slotID:0
32676                 private var _handlerList:Array;                                 //slotID:0
32677                 private var _videoWidth:Number;                                 //slotID:0
32678                 private var _videoHeight:Number;                                //slotID:0
32679                 private var _test:uint;                                         //slotID:0
32680
32681                 public function connect(hug1:String, hug2:String, hug3:String):void
32682                 {       //MethodID:3749, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 50
32683                         if(this.isConnected) return;
32684
32685                         var hug4:Boolean = new RegExp("^[rtmp]").test(hug1);
32686
32687                         if(hug4){
32688                                 this.connectRtmp(hug1, hug2, hug3);
32689                         }else{
32690                                 this.connectHttp(hug1);
32691                         }
32692                 }
32693
32694                 private function connectHttp(hug1:String):void
32695                 {       //MethodID:3750, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 70
32696                         this._url = hug1;
32697                         this._nc = new NetConnection();
32698                         this._client = new HttpClient(this);
32699                         this._client.netConnection = this._nc;
32700                         this._nc.client = this._client;
32701                         this._filename = this._url;
32702
32703                         this._nc.connect(null);
32704                 }
32705
32706                 private function connectRtmp(hug1:String, hug2:String, hug3:String):void
32707                 {       //MethodID:3751, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 126
32708                         var hug4:String = null;
32709                         var hug5:String = null;
32710                         this._url = hug1;
32711                         this._filename = hug2;
32712
32713                         if(hug3 != null){
32714                                 hug4 = hug3.substr(0, hug3.indexOf(":"));
32715                                 hug5 = hug3.substr(hug3.indexOf(":") + 1);
32716                         }
32717
32718                         this._nc = new NetConnection();
32719                         this._client = new RtmpClient(this);
32720                         this._client.netConnection = this._nc;
32721                         this._nc.client = this._client;
32722
32723                         this._nc.connect(this._url, hug5, hug4, hug2);
32724                 }
32725
32726                 internal function init():void
32727                 {       //MethodID:3752, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 41
32728                         if(!this.isConnected){
32729                                 this._video.visible = true;
32730                                 this._isConnected = true;
32731
32732                                 dispatchEvent(new StreamEvent(StreamEvent.CONNECTED));
32733                         }
32734                 }
32735
32736                 internal function setMetaData(hug1:Object):void
32737                 {       //MethodID:3754, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 77
32738                         internal var val:Object;                                        //slotID:1
32739                         internal var adjust:Function;                                   //slotID:2
32740
32741                         val = hug1;
32742                         adjust = function():void{       //MethodID:3753, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 75
32743                                 var hug1:Number = (Number(_metaData.duration) * 1000);
32744
32745                                 if(!_hasLengthFixed && (_length != hug1) && (hug1 > 0)) setLength(hug1);
32746                                 resize(_videoLayer.width, _videoLayer.height);
32747                         };
32748
32749                         this._metaData = val;
32750
32751                         if(this._metaData){
32752                                 adjust();
32753
32754                                 this._ns.bufferTime = (this._bufferTime / 1000);
32755
32756                                 dispatchEvent(new StreamEvent(StreamEvent.INIT_META_INFO));
32757                         }
32758                 }
32759
32760                 internal function setLength(hug1:Number, hug2:Boolean=false):void
32761                 {       //MethodID:3755, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 30
32762                         this._hasLengthFixed = hug2;
32763                         this._length = hug1;
32764
32765                         dispatchEvent(new StreamEvent(StreamEvent.SET_LENGTH));
32766                 }
32767
32768                 public function resize(hug1:Number, hug2:Number):void
32769                 {       //MethodID:3756, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 208
32770                         if(this._metaData == null) return;
32771
32772                         var hug3:Number = this._videoLayer.scaleX;
32773                         var hug5:int = 1;
32774                         this._videoLayer.scaleY = hug5;
32775                         this._videoLayer.scaleX = hug5;
32776                         this._video.height = hug2;
32777                         this._video.width = hug1;
32778                         var hug4:Number = (this._metaData.height / this._metaData.width);
32779
32780                         if(hug4 < (hug2 / hug1)){
32781                                 this._video.height = ((this._metaData.height / this._metaData.width) * hug1);
32782                         }else if(hug4 > (hug2 / hug1)){
32783                                 this._video.width = ((this._metaData.width / this._metaData.height) * hug2);
32784                         }
32785
32786                         this._video.x = ((hug1 - this._video.width) / 2);
32787                         this._video.y = ((hug2 - this._video.height) / 2);
32788                         var hug5:Number = hug3;
32789                         this._videoLayer.scaleY = hug5;
32790                         this._videoLayer.scaleX = hug5;
32791                 }
32792
32793                 internal function createNetStream():void
32794                 {       //MethodID:3757, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 131
32795                         this._ns = new NetStream(this._nc);
32796                         this._client.netSteram = this._ns;
32797                         this._ns.client = this._client;
32798                         this._ns.bufferTime = (_DEFAULT_BUFFER_TIME / 1000);
32799                         this._ns.checkPolicyFile = true;
32800
32801                         this._video.attachNetStream(this._ns);
32802                         this._videoLayer.addChild(this._video);
32803
32804                         this._video.visible = false;
32805                         var hug1:SoundTransform = new SoundTransform();
32806                         hug1.volume = 0;
32807                         this._ns.soundTransform = hug1;
32808
32809                         this._ns.play(this._filename);
32810                 }
32811
32812                 private function clearEventListener():void
32813                 {       //MethodID:3758, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 57
32814                         var hug1:Object = null;
32815
32816                         for each(hug1 in this._handlerList){
32817                                 this.removeEventListener(hug1.type, hug1.handler);
32818                         }
32819
32820                         this._handlerList = [];
32821                 }
32822
32823                 internal function addEventListenerClosure(hug1:String, hug2:Function, hug3:Boolean=false, hug4:int=0, hug5:Boolean=false):void
32824                 {       //MethodID:3759, LocalCount= 6 , MaxScope= 1, MaxStack= 6, CodeLength= 35
32825                         addEventListener(hug1, hug2, hug3, hug4, hug5);
32826                         this._handlerList.push({type:hug1, handler:hug2});
32827                 }
32828
32829                 public function get keyFrame():Object
32830                 {       //MethodID:3760, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 45
32831                         var hug1:Object = null;
32832
32833                         if(this._metaData.seekpoints == undefined){
32834                                 hug1 = this._metaData.keyframes;
32835                         }else{
32836                                 this._metaData.seekpoints;
32837                         }
32838
32839                         return hug1;
32840                 }
32841
32842                 public function get length():Number
32843                 {       //MethodID:3761, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32844                         return this._length;
32845                 }
32846
32847                 public function set length(hug1:Number):void
32848                 {       //MethodID:3762, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
32849                         this._length = hug1;
32850                 }
32851
32852                 public function get loadedLength():Number
32853                 {       //MethodID:3763, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32854                         return this._client.loadedLength;
32855                 }
32856
32857                 public function get isConnected():Boolean
32858                 {       //MethodID:3764, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32859                         return this._isConnected;
32860                 }
32861
32862                 public function get vpos():Number
32863                 {       //MethodID:3765, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32864                         return this._client.vpos;
32865                 }
32866
32867                 public function seek(hug1:Number):void
32868                 {       //MethodID:3766, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 16
32869                         this._client.seek(hug1 / 1000);
32870                 }
32871
32872                 public function play():void
32873                 {       //MethodID:3767, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
32874                         this._client.resume();
32875                 }
32876
32877                 public function pause():void
32878                 {       //MethodID:3768, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
32879                         this._client.pause();
32880                 }
32881
32882                 public function close():void
32883                 {       //MethodID:3769, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 70
32884                         this.clearEventListener();
32885
32886                         this._isConnected = false;
32887
32888                         if(this._nc) this._nc.close();
32889
32890                         if(this._ns) this._ns.close();
32891
32892                         if(this._client) this._client.close();
32893                         this._video.attachNetStream(null);
32894                 }
32895
32896                 public function set volume(hug1:Number):void
32897                 {       //MethodID:3771, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 239
32898                         internal var val:Number;                                        //slotID:1
32899                         internal var _sound:SoundTransform;                             //slotID:2
32900                         internal var exprMax:Number;                                    //slotID:3
32901                         internal var volume:Number;                                     //slotID:4
32902                         internal var _getACurb:Function;                                //slotID:5
32903
32904                         val = hug1;
32905                         _getACurb = function(hug1:Number):Number{       //MethodID:3770, LocalCount= 2 , MaxScope= 0, MaxStack= 5, CodeLength= 33
32906                                 return (((0.6838 * Math.pow(hug1, 3)) - (1.7262 * Math.pow(hug1, 2))) + (2.4252 * hug1));
32907                         };
32908
32909                         val *= 100;
32910
32911                         if(!this._ns || !this.isConnected) return;
32912
32913                         _sound = new SoundTransform();
32914
32915                         if(val == 0){
32916                                 _sound.volume = 0;
32917                                 this._ns.soundTransform = _sound;
32918                                 return;
32919                         }
32920
32921                         if(val == 100){
32922                                 _sound.volume = 1;
32923                                 this._ns.soundTransform = _sound;
32924                                 return;
32925                         }
32926
32927                         val = ((val * (4 / 5)) + 20);
32928                         exprMax = _getACurb(100);
32929                         volume = (_getACurb(val) * (1 / exprMax));
32930
32931                         if(volume < 0.01){
32932                                 _sound.volume = 0.01;
32933                                 this._ns.soundTransform = _sound;
32934                                 return;
32935                         }
32936
32937                         _sound.volume = volume;
32938                         this._ns.soundTransform = _sound;
32939                 }
32940
32941                 public function get volume():Number
32942                 {       //MethodID:3772, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
32943                         return this._ns.soundTransform.volume;
32944                 }
32945
32946                 public function get bufferTime():Number
32947                 {       //MethodID:3773, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 14
32948                         return (this._ns.bufferTime * 1000);
32949                 }
32950
32951                 public function set bufferTime(hug1:Number):void
32952                 {       //MethodID:3774, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 15
32953                         this._ns.bufferTime = (hug1 / 1000);
32954                 }
32955
32956                 public function get bytesTotal():Number
32957                 {       //MethodID:3775, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32958                         return this._ns.bytesTotal;
32959                 }
32960
32961                 public function get bytesLoaded():Number
32962                 {       //MethodID:3776, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
32963                         return this._ns.bytesLoaded;
32964                 }
32965
32966                 public function get video():Video
32967                 {       //MethodID:3777, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
32968                         return this._video;
32969                 }
32970
32971                 public function get isRtmp():Boolean
32972                 {       //MethodID:3778, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
32973                         return (this._client is RtmpClient);
32974                 }
32975         }
32976 }
32977
32978 //■script239■
32979
32980 package jp.nicovideo.util.stream.events{
32981
32982         import flash.events.Event
32983
32984         //■class(instance)_index:285
32985         public class StreamEvent extends Event
32986         {
32987                 //static constructor
32988                 public static function StreamEvent$cinit()
32989                 {       //MethodID:3780, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 102
32990                         PLAYED = "StreamEvent.played";
32991                         CONNECTED = "StreamEvent.connected";
32992                         PAUSED = "StreamEvent.paused";
32993                         ENDED = "StreamEvent.ended";
32994                         CLOSE = "StreamEVent.close";
32995                         SEEKED = "StreamEvent.seeked";
32996                         SET_LENGTH = "StreamEvent.setLength";
32997                         START_LOAD = "StreamEvent.start_load";
32998                         COMPLETE_LOAD = "StreamEvent.complete_load";
32999                         NET_STATUS = "StreamEvent.onNetStream";
33000                         INIT_META_INFO = "StreamEvent.initMetaInfo";
33001                 }
33002
33003                 //static variables/etc.
33004                 public static const PLAYED:String = "StreamEvent.played";       //slotID:1
33005                 public static const CONNECTED:String = "StreamEvent.connected"; //slotID:2
33006                 public static const PAUSED:String = "StreamEvent.paused";       //slotID:3
33007                 public static const ENDED:String = "StreamEvent.ended";         //slotID:4
33008                 public static const CLOSE:String = "StreamEVent.close";         //slotID:5
33009                 public static const SEEKED:String = "StreamEvent.seeked";       //slotID:6
33010                 public static const SET_LENGTH:String = "StreamEvent.setLength";//slotID:7
33011                 public static const START_LOAD:String = "StreamEvent.start_load";//slotID:8
33012                 public static const COMPLETE_LOAD:String = "StreamEvent.complete_load";//slotID:9
33013                 public static const NET_STATUS:String = "StreamEvent.onNetStream";//slotID:10
33014                 public static const INIT_META_INFO:String = "StreamEvent.initMetaInfo";//slotID:11
33015
33016                 //constructor
33017                 public function StreamEvent(hug1:String, hug2:Object=null, hug3:Boolean=false, hug4:Boolean=false)
33018                 {       //MethodID:3781, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
33019                         super(hug1, hug3, hug4);
33020
33021                         this._info = hug2;
33022                 }
33023
33024                 //variables/etc.
33025                 private var _info:Object;                                       //slotID:0
33026
33027                 public function get info():Object
33028                 {       //MethodID:3782, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33029                         return this._info;
33030                 }
33031         }
33032 }
33033
33034 //■script240■
33035
33036 package jp.nicovideo.nicoplayer.models{
33037
33038         //■class(instance)_index:286
33039         public class StartVposType extends Object
33040         {
33041                 //static constructor
33042                 public static function StartVposType$cinit()
33043                 {       //MethodID:3784, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
33044                         EXT = "specifiedFromExtJumper";
33045                         ATJUMP = "specifiedByAtjumpJumper";
33046                         URL = "specifiedByUrlParameter";
33047                 }
33048
33049                 //static variables/etc.
33050                 public static const EXT:String = "specifiedFromExtJumper";      //slotID:1
33051                 public static const ATJUMP:String = "specifiedByAtjumpJumper";  //slotID:2
33052                 public static const URL:String = "specifiedByUrlParameter";     //slotID:3
33053
33054                 //constructor
33055                 public function StartVposType()
33056                 {       //MethodID:3785, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
33057                         super();
33058                 }
33059         }
33060 }
33061
33062 //■script241■
33063
33064 package jp.nicovideo.nicoplayer.hiroba.models{
33065
33066         import jp.nicovideo.nicoplayer.models.comment.IComment
33067
33068         //■class(instance)_index:287
33069         public class HirobaComment extends Object implements IHirobaComment
33070         {
33071                 //static constructor
33072                 public static function HirobaComment$cinit()
33073                 {       //MethodID:3787, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33074                 }
33075
33076                 //constructor
33077                 public function HirobaComment(hug1:IComment)
33078                 {       //MethodID:3788, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 57
33079                         super();
33080
33081                         this._message = hug1.message;
33082                         this._mail = hug1.command.command;
33083                         this._isPremium = hug1.isPremium;
33084                         this._date = new Date(hug1.date.time);
33085                         this._yourpost = hug1.justPosted;
33086                 }
33087
33088                 //variables/etc.
33089                 private var _message:String;                                    //slotID:0
33090                 private var _mail:String;                                       //slotID:0
33091                 private var _isPremium:Boolean;                                 //slotID:0
33092                 private var _date:Date;                                         //slotID:0
33093                 private var _yourpost:Boolean;                                  //slotID:0
33094
33095                 public function get message():String
33096                 {       //MethodID:3789, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33097                         return this._message;
33098                 }
33099
33100                 public function get mail():String
33101                 {       //MethodID:3790, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33102                         return this._mail;
33103                 }
33104
33105                 public function get isPremium():Boolean
33106                 {       //MethodID:3791, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33107                         return this._isPremium;
33108                 }
33109
33110                 public function get date():Date
33111                 {       //MethodID:3792, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33112                         return this._date;
33113                 }
33114
33115                 public function get yourpost():Boolean
33116                 {       //MethodID:3793, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33117                         return this._yourpost;
33118                 }
33119         }
33120 }
33121
33122 //■script242■
33123
33124 package jp.nicovideo.nicoplayer.models.comment{
33125
33126         //■class(instance)_index:288
33127         public interface ICommand
33128         {
33129                 //static constructor
33130                 public static function ICommand$cinit()
33131                 {       //MethodID:3795, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
33132                 }
33133
33134                 //variables/etc.
33135                 function get hasCompleted():Boolean;                                        //MethodID:3796, dispID:0
33136
33137                 function completed():void;                                                  //MethodID:3797, dispID:0
33138
33139                 function duplicate(hug1:Function, hug2:Number=Number.NaN):ICommand;         //MethodID:3798, dispID:0
33140
33141                 function get color():String;                                                //MethodID:3799, dispID:0
33142
33143                 function set color(hug1:String):void;                                       //MethodID:3800, dispID:0
33144
33145                 function get posY():String;                                                 //MethodID:3801, dispID:0
33146
33147                 function set posY(hug1:String):void;                                        //MethodID:3802, dispID:0
33148
33149                 function get posX():String;                                                 //MethodID:3803, dispID:0
33150
33151                 function set posX(hug1:String):void;                                        //MethodID:3804, dispID:0
33152
33153                 function get hasButton():Boolean;                                           //MethodID:3805, dispID:0
33154
33155                 function set hasButton(hug1:Boolean):void;                                  //MethodID:3806, dispID:0
33156
33157                 function get size():String;                                                 //MethodID:3807, dispID:0
33158
33159                 function set size(hug1:String):void;                                        //MethodID:3808, dispID:0
33160
33161                 function get anonymity():Boolean;                                           //MethodID:3809, dispID:0
33162
33163                 function set anonymity(hug1:Boolean):void;                                  //MethodID:3810, dispID:0
33164
33165                 function get fromLive():Boolean;                                            //MethodID:3811, dispID:0
33166
33167                 function set fromLive(hug1:Boolean):void;                                   //MethodID:3812, dispID:0
33168
33169                 function get sage():Boolean;                                                //MethodID:3813, dispID:0
33170
33171                 function set sage(hug1:Boolean):void;                                       //MethodID:3814, dispID:0
33172
33173                 function get full():Boolean;                                                //MethodID:3815, dispID:0
33174
33175                 function set full(hug1:Boolean):void;                                       //MethodID:3816, dispID:0
33176
33177                 function get patissier():Boolean;                                           //MethodID:3817, dispID:0
33178
33179                 function set patissier(hug1:Boolean):void;                                  //MethodID:3818, dispID:0
33180
33181                 function set command(hug1:String):void;                                     //MethodID:3819, dispID:0
33182
33183                 function get command():String;                                              //MethodID:3820, dispID:0
33184
33185                 function forEachCommand(hug1:Function):void;                                //MethodID:3821, dispID:0
33186
33187                 function everyCommand(hug1:Function):void;                                  //MethodID:3822, dispID:0
33188
33189                 function hasContained(hug1:String):Boolean;                                 //MethodID:3823, dispID:0
33190
33191                 function get colorCode():uint;                                              //MethodID:3824, dispID:0
33192
33193                 //constructor
33194                 public function ICommand();                                                 //MethodID:3825, dispID:0
33195         }
33196 }
33197
33198 //■script243■
33199
33200 package jp.nicovideo.nicoplayer.models.comment{
33201
33202         import jp.nicovideo.nicoplayer.models.comment.command.CommandSize
33203         import jp.nicovideo.util.Assert
33204
33205         //■class(instance)_index:289
33206         public class Command extends Object implements ICommand
33207         {
33208                 //static constructor
33209                 public static function Command$cinit()
33210                 {       //MethodID:3827, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33211                 }
33212
33213                 //static variables/etc.
33214                 public static function isColorCodeCommand(hug1:String):Boolean
33215                 {       //dispID:3, MethodID:3828, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 42
33216                         if((hug1 == "") || (hug1 == null)) return false;
33217
33218                         return new RegExp(new RegExp("^#[\da-f]{6}$", "i")).test(hug1);
33219                 }
33220
33221                 //constructor
33222                 public function Command(hug1:*, hug2:Boolean=false)
33223                 {       //MethodID:3829, LocalCount= 6 , MaxScope= 7, MaxStack= 4, CodeLength= 176
33224                         internal var src:*;                                             //slotID:1
33225                         internal var isPremium:Boolean = false;                         //slotID:2
33226
33227                         src = hug1;
33228                         isPremium = hug2;
33229                         this.__commands = [];
33230
33231                         super();
33232
33233                         this.__isPremium = isPremium;
33234
33235                         if(src == undefined) return;
33236
33237                         try{
33238                                 if(src is String){
33239                                         this.command = src;
33240                                 }else if(src is Function){
33241                                         src(this);
33242                                 }else{
33243                                         Assert.assert(false, "Command.Command: error.");
33244                                 }
33245                         }
33246                         finally{
33247                                 this.completed();
33248                         }
33249                 }
33250
33251                 //variables/etc.
33252                 private var __completed:Boolean = false;                        //slotID:0
33253                 private var __hasButton:Boolean = false;                        //slotID:0
33254                 private var __isPremium:Boolean = false;                        //slotID:0
33255                 private var __color:String = "";                                //slotID:0
33256                 private var __color_fromCode:String = "";                       //slotID:0
33257                 private var __posX:String = "";                                 //slotID:0
33258                 private var __posY:String = "";                                 //slotID:0
33259                 private var __size:String = "";                                 //slotID:0
33260                 private var __anonymity:Boolean = false;                        //slotID:0
33261                 private var __fromLive:Boolean = false;                         //slotID:0
33262                 private var __sage:Boolean = false;                             //slotID:0
33263                 private var _full:Boolean = false;                              //slotID:0
33264                 private var _patissier:Boolean = false;                         //slotID:0
33265                 private var __commands:Array;                                   //slotID:0
33266                 private var __fullCommand_cache:Array;                          //slotID:0
33267
33268                 public function get hasCompleted():Boolean
33269                 {       //MethodID:3830, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33270                         return this.__completed;
33271                 }
33272
33273                 public function completed():void
33274                 {       //MethodID:3831, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33275                         if(this.__completed) throw new Error("Command.completed: already completed.");
33276
33277                         this.__completed = true;
33278                 }
33279
33280                 public function duplicate(hug1:Function, hug2:Number=Number.NaN):ICommand
33281                 {       //MethodID:3833, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 76
33282                         internal var func:Function;                                     //slotID:1
33283                         internal var isPremium:Number = Number.NaN;                     //slotID:2
33284
33285                         func = hug1;
33286                         isPremium = hug2;
33287
33288                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33289
33290                         return new Command(function(hug1:Command):void{ //MethodID:3832, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 98
33291                                 hug1.__commands = __commands;
33292                                 hug1.__color = ((__color_fromCode != "") ? __color_fromCode : __color);
33293                                 hug1.__size = __size;
33294                                 hug1.__posX = __posX;
33295                                 hug1.__posY = __posY;
33296                                 hug1.__hasButton = __hasButton;
33297                                 hug1.__anonymity = __anonymity;
33298                                 hug1.__fromLive = __fromLive;
33299                                 hug1._full = _full;
33300                                 hug1._patissier = _patissier;
33301
33302                                 func(hug1);
33303                         }, (isNaN(isPremium) ? this.__isPremium : (!(!isPremium))));
33304                 }
33305
33306                 public function get color():String
33307                 {       //MethodID:3834, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 46
33308                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33309
33310                         return ((this.__color_fromCode != "") ? this.__color_fromCode : this.__color);
33311                 }
33312
33313                 public function set color(hug1:String):void
33314                 {       //MethodID:3835, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 34
33315                         if(this.__completed) throw new Error("Command.completed: already completed.");
33316                         this.__set_color(hug1);
33317                         this.__set_color_fromCode(hug1);
33318                 }
33319
33320                 private function __set_color(hug1:String):Boolean
33321                 {       //MethodID:3836, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 62
33322                         if(CommandConstants.NORMAL_COLOR_CODES.hasOwnProperty(hug1) || (this.__isPremium && CommandConstants.PREMIUM_COLOR_CODES.hasOwnProperty(hug1))){
33323                                 this.__color = hug1;
33324                                 return true;
33325                         }
33326
33327                         this.__color = "";
33328                         return false;
33329                 }
33330
33331                 private function __set_color_fromCode(hug1:String):Boolean
33332                 {       //MethodID:3837, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
33333                         if(this.__isPremium && (Command).isColorCodeCommand(hug1)){
33334                                 this.__color_fromCode = hug1;
33335                                 return true;
33336                         }
33337
33338                         this.__color_fromCode = "";
33339                         return false;
33340                 }
33341
33342                 public function get posY():String
33343                 {       //MethodID:3838, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33344                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33345
33346                         return this.__posY;
33347                 }
33348
33349                 public function set posY(hug1:String):void
33350                 {       //MethodID:3839, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 28
33351                         if(this.__completed) throw new Error("Command.completed: already completed.");
33352                         this.__set_posY(hug1);
33353                 }
33354
33355                 private function __set_posY(hug1:String):Boolean
33356                 {       //MethodID:3840, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 105
33357                         var hug2:String = hug1;
33358
33359                         switch(hug2){
33360                         case CommandConstants.PLACE_TOP:
33361                         case CommandConstants.PLACE_BOTTOM:
33362                         case CommandConstants.PLACE_MIDDLE:
33363                                 this.__posY = hug1;
33364                                 return true;
33365                         default:
33366                                 break;
33367                         }
33368
33369                         return false;
33370                 }
33371
33372                 public function get posX():String
33373                 {       //MethodID:3841, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33374                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33375
33376                         return this.__posX;
33377                 }
33378
33379                 public function set posX(hug1:String):void
33380                 {       //MethodID:3842, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 28
33381                         if(this.__completed) throw new Error("Command.completed: already completed.");
33382                         this.__set_posX(hug1);
33383                 }
33384
33385                 private function __set_posX(hug1:String):Boolean
33386                 {       //MethodID:3843, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 85
33387                         var hug2:String = hug1;
33388
33389                         switch(hug2){
33390                         case CommandConstants.PLACE_RIGHT:
33391                         case CommandConstants.PLACE_LEFT:
33392                                 this.__posX = hug1;
33393                                 return true;
33394                         default:
33395                                 break;
33396                         }
33397
33398                         return false;
33399                 }
33400
33401                 public function get hasButton():Boolean
33402                 {       //MethodID:3844, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33403                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33404
33405                         return this.__hasButton;
33406                 }
33407
33408                 public function set hasButton(hug1:Boolean):void
33409                 {       //MethodID:3845, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33410                         if(this.__completed) throw new Error("Command.completed: already completed.");
33411
33412                         this.__hasButton = hug1;
33413                 }
33414
33415                 private function __set_hasButton(hug1:String):Boolean
33416                 {       //MethodID:3846, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
33417                         if(hug1 == CommandConstants.HAS_BUTTON){
33418                                 this.__hasButton = true;
33419                                 return true;
33420                         }
33421
33422                         return false;
33423                 }
33424
33425                 public function get size():String
33426                 {       //MethodID:3847, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33427                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33428
33429                         return this.__size;
33430                 }
33431
33432                 public function set size(hug1:String):void
33433                 {       //MethodID:3848, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 28
33434                         if(this.__completed) throw new Error("Command.completed: already completed.");
33435                         this.__set_size(hug1);
33436                 }
33437
33438                 private function __set_size(hug1:String):Boolean
33439                 {       //MethodID:3849, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33440                         if(!CommandSize.SIZES.hasOwnProperty(hug1)) return false;
33441
33442                         this.__size = hug1;
33443                         return true;
33444                 }
33445
33446                 public function get anonymity():Boolean
33447                 {       //MethodID:3850, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33448                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33449
33450                         return this.__anonymity;
33451                 }
33452
33453                 public function set anonymity(hug1:Boolean):void
33454                 {       //MethodID:3851, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33455                         if(this.__completed) throw new Error("Command.completed: already completed.");
33456
33457                         this.__anonymity = hug1;
33458                 }
33459
33460                 private function __set_anonymity(hug1:String):Boolean
33461                 {       //MethodID:3852, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
33462                         if(hug1 == CommandConstants.ANONYMITY){
33463                                 this.__anonymity = true;
33464                                 return true;
33465                         }
33466
33467                         return false;
33468                 }
33469
33470                 public function get fromLive():Boolean
33471                 {       //MethodID:3853, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33472                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33473
33474                         return this.__fromLive;
33475                 }
33476
33477                 public function set fromLive(hug1:Boolean):void
33478                 {       //MethodID:3854, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33479                         if(this.__completed) throw new Error("Command.completed: already completed.");
33480
33481                         this.__fromLive = hug1;
33482                 }
33483
33484                 private function __set_fromLive(hug1:String):Boolean
33485                 {       //MethodID:3855, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
33486                         if(hug1 == CommandConstants.FROMLIVE){
33487                                 this.__fromLive = true;
33488                                 return true;
33489                         }
33490
33491                         return false;
33492                 }
33493
33494                 public function get sage():Boolean
33495                 {       //MethodID:3856, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33496                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33497
33498                         return this.__sage;
33499                 }
33500
33501                 public function set sage(hug1:Boolean):void
33502                 {       //MethodID:3857, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33503                         if(this.__completed) throw new Error("Command.completed: already completed.");
33504
33505                         this.__sage = hug1;
33506                 }
33507
33508                 private function __set_sage(hug1:String):Boolean
33509                 {       //MethodID:3858, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
33510                         if(hug1 == CommandConstants.SAGE){
33511                                 this.__sage = true;
33512                                 return true;
33513                         }
33514
33515                         return false;
33516                 }
33517
33518                 public function get full():Boolean
33519                 {       //MethodID:3859, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33520                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33521
33522                         return this._full;
33523                 }
33524
33525                 public function set full(hug1:Boolean):void
33526                 {       //MethodID:3860, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33527                         if(this.__completed) throw new Error("Command.completed: already completed.");
33528
33529                         this._full = hug1;
33530                 }
33531
33532                 public function get patissier():Boolean
33533                 {       //MethodID:3861, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
33534                         if(!this.__completed) throw new Error("Command.completed; has not completed yet.");
33535
33536                         return this._patissier;
33537                 }
33538
33539                 private function _set_full(hug1:String):Boolean
33540                 {       //MethodID:3862, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 19
33541                         this._full = (hug1 == CommandConstants.FULL);
33542                         return this._full;
33543                 }
33544
33545                 public function set patissier(hug1:Boolean):void
33546                 {       //MethodID:3863, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
33547                         if(this.__completed) throw new Error("Command.completed: already completed.");
33548
33549                         this._patissier = hug1;
33550                 }
33551
33552                 private function _set_patissier(hug1:String):Boolean
33553                 {       //MethodID:3864, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 19
33554                         this._patissier = (hug1 == CommandConstants.PATISSIER);
33555                         return this._patissier;
33556                 }
33557
33558                 public function set command(hug1:String):void
33559                 {       //MethodID:3867, LocalCount= 4 , MaxScope= 2, MaxStack= 12, CodeLength= 363
33560                         internal var cmdStr:String;                                     //slotID:1
33561                         internal var checkSheet:Array;                                  //slotID:2
33562                         internal var i:int;                                             //slotID:3
33563                         internal var matcher:Function;                                  //slotID:4
33564                         internal var j:int;                                             //slotID:5
33565
33566                         j = 0;
33567                         cmdStr = hug1;
33568                         matcher = function(hug1:String, hug2:String):Function{  //MethodID:3866, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 18
33569                                 internal var pattern:String;                                    //slotID:1
33570                                 internal var id:String;                                         //slotID:2
33571
33572                                 pattern = hug1;
33573                                 id = hug2;
33574                                 return function(hug1:String):Boolean{   //MethodID:3865, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
33575                                         if(hug1 != pattern) return false;
33576
33577                                         this[id] = true;
33578                                         return true;
33579                                 };
33580                         };
33581
33582                         if(this.__completed) throw new Error("Command.completed: already completed.");
33583
33584                         this.__commands = cmdStr.replace(new RegExp("^[  ]*(.*?)[  ]*$", "s"), "$1").split(new RegExp("[  ]+"));
33585                         this.__color = "";
33586                         this.__color_fromCode = "";
33587                         this.__size = "";
33588                         this.__posX = "";
33589                         this.__posY = "";
33590                         this.__hasButton = false;
33591                         this.__anonymity = false;
33592                         this.__fromLive = false;
33593                         this.__sage = false;
33594                         this._full = false;
33595                         this._patissier = false;
33596                         checkSheet = [this.__set_size, this.__set_posX, this.__set_posY, this.__set_color, this.__set_color_fromCode, this.__set_hasButton, this.__set_anonymity, this.__set_fromLive, this.__set_sage, this._set_full, this._set_patissier];
33597                         i = 0;
33598
33599                         while((i < this.__commands.length) && (checkSheet.length != 0)){
33600                                 j = 0;
33601
33602                                 while(j < checkSheet.length){
33603                                         var hug3:Array = checkSheet;
33604
33605                                         if(hug3[j](this.__commands[i])){
33606                                                 i -= 1;
33607
33608                                                 this.__commands.splice(i, 1);
33609
33610                                                 j -= 1;
33611
33612                                                 checkSheet.splice(j, 1);
33613                                                 break;
33614                                         }
33615
33616                                         j++;
33617                                 }
33618
33619                                 i++;
33620                         }
33621                 }
33622
33623                 public function get command():String
33624                 {       //MethodID:3868, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 34
33625                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33626
33627                         return this.__listing().join(" ");
33628                 }
33629
33630                 public function forEachCommand(hug1:Function):void
33631                 {       //MethodID:3869, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 64
33632                         var hug2:String = null;
33633
33634                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33635
33636                         for each(hug2 in this.__listing()){
33637                                 hug1(hug2);
33638                         }
33639                 }
33640
33641                 public function everyCommand(hug1:Function):void
33642                 {       //MethodID:3870, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 71
33643                         var hug2:String = null;
33644
33645                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33646
33647                         for each(hug2 in this.__listing()){
33648                                 if(!hug1(hug2)) break;
33649                         }
33650                 }
33651
33652                 public function hasContained(hug1:String):Boolean
33653                 {       //MethodID:3871, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 67
33654                         var hug2:String = null;
33655
33656                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33657
33658                         for each(hug2 in this.__listing()){
33659                                 if(hug1 == hug2) return true;
33660                         }
33661
33662                         return false;
33663                 }
33664
33665                 private function __listing():Array
33666                 {       //MethodID:3872, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 244
33667                         var hug1:Array = null;
33668
33669                         if(!this.__fullCommand_cache){
33670                                 hug1 = this.__commands.concat();
33671
33672                                 if(this.__size != "") hug1.unshift(this.__size);
33673
33674                                 if(this.__color_fromCode != "") hug1.unshift(this.__color_fromCode);
33675
33676                                 if(this.__color != "") hug1.unshift(this.__color);
33677
33678                                 if(this.__posY != "") hug1.unshift(this.__posY);
33679
33680                                 if(this.__posX != "") hug1.unshift(this.__posX);
33681
33682                                 if(this.__hasButton) hug1.unshift(CommandConstants.HAS_BUTTON);
33683
33684                                 if(this.__sage) hug1.unshift(CommandConstants.SAGE);
33685
33686                                 if(this.__anonymity) hug1.unshift(CommandConstants.ANONYMITY);
33687
33688                                 if(this.__fromLive) hug1.unshift(CommandConstants.FROMLIVE);
33689
33690                                 if(this._full) hug1.unshift(CommandConstants.FULL);
33691
33692                                 if(this._patissier) hug1.unshift(CommandConstants.PATISSIER);
33693
33694                                 this.__fullCommand_cache = hug1;
33695                         }
33696
33697                         return this.__fullCommand_cache;
33698                 }
33699
33700                 public function get colorCode():uint
33701                 {       //MethodID:3873, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 167
33702                         if(!this.__completed) throw new Error("Command.completed: has not completed yet.");
33703
33704                         var hug1:uint = CommandConstants.NORMAL_COLOR_CODES[CommandConstants.COLOR_WHITE];
33705                         var hug2:String = ((this.__color_fromCode != "") ? this.__color_fromCode : this.__color);
33706
33707                         if(hug2 != ""){
33708                                 if(CommandConstants.NORMAL_COLOR_CODES.hasOwnProperty(hug2)) hug1 = CommandConstants.NORMAL_COLOR_CODES[hug2];
33709
33710                                 if(this.__isPremium){
33711                                         if(CommandConstants.PREMIUM_COLOR_CODES.hasOwnProperty(hug2)) hug1 = CommandConstants.PREMIUM_COLOR_CODES[hug2];
33712
33713                                         if((Command).isColorCodeCommand(hug2)) hug1 = parseInt(hug2.substr(1, 6), 16);
33714                                 }
33715                         }
33716
33717                         return hug1;
33718                 }
33719         }
33720 }
33721
33722 //■script244■
33723
33724 package jp.nicovideo.nicoplayer.hiroba.view{
33725
33726         import flash.display.Sprite
33727         import jp.nicovideo.nicoplayer.models.IPlayerConfig
33728         import jp.nicovideo.nicoplayer.models.comment.IComment
33729         import jp.nicovideo.nicoplayer.views.comment.CommentLayer
33730         import jp.nicovideo.nicoplayer.views.comment.CommentLayerView
33731         import jp.nicovideo.nicoplayer.views.comment.CommentViewConstants
33732         import jp.nicovideo.nicoplayer.views.comment.IDisplayObjectProvider
33733         import jp.nicovideo.nicoplayer.views.comment.ViewEntry
33734         import jp.nicovideo.nicoplayer.views.comment.elements.ClickableComment
33735         import jp.nicovideo.nicoplayer.views.comment.elements.CommentTextField
33736         import jp.nicovideo.util.ObjectPool
33737         import jp.nicovideo.util.events.event_receiver
33738
33739         //■class(instance)_index:290
33740         public class HirobaCommentPlayer extends Object
33741         {
33742                 //static constructor
33743                 public static function HirobaCommentPlayer$cinit()
33744                 {       //MethodID:3875, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33745                 }
33746
33747                 //constructor
33748                 public function HirobaCommentPlayer(hug1:Sprite, hug2:IPlayerConfig, hug3:Boolean)
33749                 {       //MethodID:3876, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 56
33750                         this._layers = {};
33751                         this._textPoolMap = {};
33752                         this._buttonPoolMap = {};
33753                         this._addedHirobaEntries = [];
33754                         this._addedOtherEntries = [];
33755
33756                         super();
33757
33758                         this._baseLayer = hug1;
33759                         this._playerConfig = hug2;
33760                         this._isPremium = hug3;
33761
33762                         this._constructor();
33763                 }
33764
33765                 //variables/etc.
33766                 private var _baseLayer:Sprite;                                  //slotID:0
33767                 private var _commentLayer:CommentLayer;                         //slotID:0
33768                 private var _commentLayerView:CommentLayerView;                 //slotID:0
33769                 private var _layers:Object;                                     //slotID:0
33770                 private var _playerConfig:IPlayerConfig;                        //slotID:0
33771                 private var _isPremium:Boolean;                                 //slotID:0
33772                 private var _textPoolMap:Object;                                //slotID:0
33773                 private var _buttonPoolMap:Object;                              //slotID:0
33774                 private var _addedHirobaEntries:Array;                          //slotID:0
33775                 private var _addedOtherEntries:Array;                           //slotID:0
33776
33777                 private function _constructor():void
33778                 {       //MethodID:3881, LocalCount= 4 , MaxScope= 2, MaxStack= 7, CodeLength= 323
33779                         internal var timeline:_HirobaTimeline;                          //slotID:1
33780                         internal var layers:Array;                                      //slotID:2
33781                         internal var layerID:String;                                    //slotID:3
33782                         internal var createTextFieldFunc:Function;                      //slotID:4
33783                         internal var createButtonFunc:Function;                         //slotID:5
33784
33785                         layerID = null;
33786                         createTextFieldFunc = function(hug1:String):Function{   //MethodID:3878, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 23
33787                                 internal var layerID:String;                                    //slotID:1
33788                                 internal var f:Function;                                        //slotID:2
33789
33790                                 layerID = hug1;
33791                                 f = function():CommentTextField{        //MethodID:3877, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 44
33792                                         var hug1:CommentTextField = null;
33793                                         hug1 = new CommentTextField();
33794                                         hug1.displayObject.visible = false;
33795
33796                                         _commentLayer.getLayer(layerID).addChild(hug1.displayObject);
33797
33798                                         return hug1;
33799                                 };
33800
33801                                 return f;
33802                         };
33803
33804                         createButtonFunc = function(hug1:String):Function{      //MethodID:3880, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 23
33805                                 internal var layerID:String;                                    //slotID:1
33806                                 internal var f:Function;                                        //slotID:2
33807
33808                                 layerID = hug1;
33809                                 f = function():ClickableComment{        //MethodID:3879, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 39
33810                                         var hug1:ClickableComment = new ClickableComment();
33811                                         hug1.displayObject.visible = false;
33812
33813                                         _commentLayer.getLayer(layerID).addChild(hug1.displayObject);
33814
33815                                         return hug1;
33816                                 };
33817
33818                                 return f;
33819                         };
33820
33821                         timeline = new _HirobaTimeline();
33822                         this._commentLayerView = new CommentLayerView(this._baseLayer, timeline, this._baseLayer.width, this._baseLayer.height, timeline.length);
33823                         this._commentLayer = new CommentLayer(this._baseLayer, this._playerConfig, this._isPremium);
33824
33825                         this._commentLayer.addLayer(HirobaCommentListName.HIROBA);
33826                         this._commentLayer.addLayer(HirobaCommentListName.OTHER_VIDEO, 0);
33827                         this._commentLayer.setOptionalLayer(HirobaCommentListName.OTHER_VIDEO);
33828
33829                         layers = [HirobaCommentListName.HIROBA, HirobaCommentListName.OTHER_VIDEO];
33830
33831                         for each(layerID in layers){
33832                                 this._textPoolMap[layerID] = new ObjectPool(createTextFieldFunc(layerID));
33833                                 this._buttonPoolMap[layerID] = new ObjectPool(createButtonFunc(layerID));
33834                         }
33835
33836                         this._commentLayerView.onVideoPlayed();
33837                         this._commentLayer.onVideoStarted();
33838                         this._commentLayer.onPlayerConfigCommentVisibleUpdated(false);
33839                 }
33840
33841                 public function get commentLayerView():CommentLayerView
33842                 {       //MethodID:3882, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33843                         return this._commentLayerView;
33844                 }
33845
33846                 public function get commentLayer():CommentLayer
33847                 {       //MethodID:3883, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
33848                         return this._commentLayer;
33849                 }
33850
33851                 public function addComment(hug1:IComment, hug2:String):void
33852                 {       //MethodID:3884, LocalCount= 7 , MaxScope= 1, MaxStack= 7, CodeLength= 166
33853                         var hug3:String = hug1.command.posY;
33854                         var hug4:Number = (hug1.vpos - CommentViewConstants.COMMENT_SHOW_AHEAD);
33855                         var hug5:IDisplayObjectProvider = (hug1.command.hasButton ? new _ClickableCommentProvider(this._buttonPoolMap[hug2], hug1) : new _CommentTextFieldProvider(this._textPoolMap[hug2], hug1));
33856                         var hug6:ViewEntry = new ViewEntry(hug4, CommentViewConstants.COMMENT_SHOW_EXPIRE, hug3, hug5, 0, hug1.command.full);
33857
33858                         if(hug2 == HirobaCommentListName.HIROBA){
33859                                 this._addedHirobaEntries.push(hug6);
33860                         }else{
33861                                 this._addedOtherEntries.push(hug6);
33862                         }
33863
33864                         this._commentLayerView.update(hug2, [hug6], null, false);
33865                 }
33866         }
33867 }
33868
33869 import flash.display.DisplayObject
33870 import jp.nicovideo.nicoplayer.models.comment.IComment
33871 import jp.nicovideo.nicoplayer.views.comment.elements.ClickableComment
33872 import jp.nicovideo.nicoplayer.views.comment.elements.CommentTextField
33873 import jp.nicovideo.util.Assert
33874 import jp.nicovideo.util.ObjectPool
33875 import jp.nicovideo.util.TimeUtils
33876
33877 //■class(instance)_index:291
33878 //private
33879 class _HirobaTimeline extends Object implements ITimeline
33880 {
33881         //static constructor
33882         public static function _HirobaTimeline$cinit()
33883         {       //MethodID:3885, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33884         }
33885
33886         //variables/etc.
33887         public function get length():Number
33888         {       //MethodID:3886, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
33889                 return -1;
33890         }
33891
33892         public function get vpos():Number
33893         {       //MethodID:3887, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
33894                 return (TimeUtils.now().time - 1000);
33895         }
33896
33897         public function get isInitialized():Boolean
33898         {       //MethodID:3888, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
33899                 return true;
33900         }
33901
33902         //constructor
33903         public function _HirobaTimeline()
33904         {       //MethodID:3889, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
33905                 super();
33906         }
33907 }
33908
33909 //■class(instance)_index:292
33910 //private
33911 class _CommentTextFieldProvider extends Object implements IDisplayObjectProvider
33912 {
33913         //static constructor
33914         public static function _CommentTextFieldProvider$cinit()
33915         {       //MethodID:3890, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33916         }
33917
33918         //constructor
33919         public function _CommentTextFieldProvider(hug1:ObjectPool, hug2:IComment)
33920         {       //MethodID:3891, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
33921                 super();
33922
33923                 this._pool = hug1;
33924                 this._comment = hug2;
33925         }
33926
33927         //variables/etc.
33928         private var _pool:ObjectPool;                                   //slotID:0
33929         private var _comment:IComment;                                  //slotID:0
33930         private var _textComment:CommentTextField;                      //slotID:0
33931
33932         public function create():DisplayObject
33933         {       //MethodID:3892, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 62
33934                 Assert.assert(!this._textComment, "_CommentTextFieldProvider.create: _textComment is not null");
33935
33936                 this._textComment = this._pool.create();
33937
33938                 this._textComment.reset(this._comment, -1);
33939
33940                 this._textComment.displayObject.visible = true;
33941                 return this._textComment.displayObject;
33942         }
33943
33944         public function release(hug1:DisplayObject):void
33945         {       //MethodID:3893, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 59
33946                 Assert.assert(this._textComment && (this._textComment.displayObject === hug1));
33947
33948                 this._textComment.displayObject.visible = false;
33949
33950                 this._pool.restore(this._textComment);
33951
33952                 this._textComment = null;
33953         }
33954
33955         public function assignZ(hug1:DisplayObject, hug2:int):void
33956         {       //MethodID:3894, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33957         }
33958 }
33959
33960 //■class(instance)_index:293
33961 //private
33962 class _ClickableCommentProvider extends Object implements IDisplayObjectProvider
33963 {
33964         //static constructor
33965         public static function _ClickableCommentProvider$cinit()
33966         {       //MethodID:3895, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
33967         }
33968
33969         //constructor
33970         public function _ClickableCommentProvider(hug1:ObjectPool, hug2:IComment)
33971         {       //MethodID:3896, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
33972                 super();
33973
33974                 this._pool = hug1;
33975                 this._comment = hug2;
33976         }
33977
33978         //variables/etc.
33979         private var _pool:ObjectPool;                                   //slotID:0
33980         private var _comment:IComment;                                  //slotID:0
33981         private var _clickableComment:ClickableComment;                 //slotID:0
33982
33983         public function create():DisplayObject
33984         {       //MethodID:3897, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 45
33985                 Assert.assert(!this._clickableComment);
33986
33987                 this._clickableComment = this._pool.create();
33988                 this._clickableComment.displayObject.visible = true;
33989                 return this._clickableComment.displayObject;
33990         }
33991
33992         public function release(hug1:DisplayObject):void
33993         {       //MethodID:3898, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 59
33994                 Assert.assert(this._clickableComment && (this._clickableComment.displayObject === hug1));
33995
33996                 this._clickableComment.displayObject.visible = false;
33997
33998                 this._pool.restore(this._clickableComment);
33999
34000                 this._clickableComment = null;
34001         }
34002
34003         public function assignZ(hug1:DisplayObject, hug2:int):void
34004         {       //MethodID:3899, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34005         }
34006 }
34007
34008 //■script245■
34009
34010 package jp.nicovideo.nicoplayer.hiroba.view{
34011
34012         //■class(instance)_index:294
34013         public class HirobaCommentListName extends Object
34014         {
34015                 //static constructor
34016                 public static function HirobaCommentListName$cinit()
34017                 {       //MethodID:3901, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
34018                         HIROBA = "cl_name:hiroba";
34019                         OTHER_VIDEO = "cl_name:other_video";
34020                 }
34021
34022                 //static variables/etc.
34023                 public static const HIROBA:String = "cl_name:hiroba";           //slotID:1
34024                 public static const OTHER_VIDEO:String = "cl_name:other_video"; //slotID:2
34025
34026                 //constructor
34027                 public function HirobaCommentListName()
34028                 {       //MethodID:3902, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34029                         super();
34030                 }
34031         }
34032 }
34033
34034 //■script246■
34035
34036 package jp.nicovideo.marquee.models{
34037
34038         //■class(instance)_index:295
34039         public class MarqueePriorityConstants extends Object
34040         {
34041                 //static constructor
34042                 public static function MarqueePriorityConstants$cinit()
34043                 {       //MethodID:3904, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 67
34044                         USER_NICOWARI = 3;
34045                         ADS_LIVE_NICOWARI = 5;
34046                         LIVE_ALERT = 6;
34047                         JK_ALERT = 6;
34048                         UNEI_COMMENT = 8;
34049                         OFFICIAL_ANIME_NICOWARI = 11;
34050                         PLUGIN_ALERT = 2;
34051                         POWER_INFOMATION_INTERRUPT = 2;
34052                 }
34053
34054                 //static variables/etc.
34055                 public static const USER_NICOWARI:Number = 3.0;                 //slotID:1
34056                 public static const ADS_LIVE_NICOWARI:Number = 5.0;             //slotID:2
34057                 public static const LIVE_ALERT:Number = 6.0;                    //slotID:3
34058                 public static const JK_ALERT:Number = 6.0;                      //slotID:4
34059                 public static const UNEI_COMMENT:Number = 8.0;                  //slotID:5
34060                 public static const OFFICIAL_ANIME_NICOWARI:Number = 11.0;      //slotID:6
34061                 public static const PLUGIN_ALERT:Number = 2.0;                  //slotID:7
34062                 public static const POWER_INFOMATION_INTERRUPT:Number = 2.0;    //slotID:8
34063
34064                 //constructor
34065                 public function MarqueePriorityConstants()
34066                 {       //MethodID:3905, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34067                         super();
34068                 }
34069         }
34070 }
34071
34072 //■script247■
34073
34074 package jp.nicovideo.marquee{
34075
34076         //■class(instance)_index:296
34077         public class MarqueeInterruptType extends Object
34078         {
34079                 //static constructor
34080                 public static function MarqueeInterruptType$cinit()
34081                 {       //MethodID:3907, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 75
34082                         UNKNOWN = "unknown";
34083                         CM = "cm";
34084                         LIVE_ALERT = "live_alert";
34085                         JK_ALERT = "jk_alert";
34086                         UNEI_COMMENT = "unei_comment";
34087                         ADS_LIVE = "ads_live";
34088                         PLUGIN_ALERT = "plugin_alert";
34089                         POWER_INFOMATION = "power_infomation";
34090                 }
34091
34092                 //static variables/etc.
34093                 public static const UNKNOWN:String = "unknown";                 //slotID:1
34094                 public static const CM:String = "cm";                           //slotID:2
34095                 public static const LIVE_ALERT:String = "live_alert";           //slotID:3
34096                 public static const JK_ALERT:String = "jk_alert";               //slotID:4
34097                 public static const UNEI_COMMENT:String = "unei_comment";       //slotID:5
34098                 public static const ADS_LIVE:String = "ads_live";               //slotID:6
34099                 public static const PLUGIN_ALERT:String = "plugin_alert";       //slotID:7
34100                 public static const POWER_INFOMATION:String = "power_infomation";//slotID:8
34101
34102                 //constructor
34103                 public function MarqueeInterruptType()
34104                 {       //MethodID:3908, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34105                         super();
34106                 }
34107         }
34108 }
34109
34110 //■script248■
34111
34112 package jp.nicovideo.nicoplayer.models.video{
34113
34114         import flash.display.DisplayObject
34115         import flash.display.Sprite
34116         import flash.events.TimerEvent
34117         import flash.utils.Timer
34118         import jp.nicovideo.nicoplayer.views.VideoLayerConstants
34119         import jp.nicovideo.util.Functions
34120         import jp.nicovideo.util.ObjectUtils
34121
34122         //■class(instance)_index:298
34123         public class DummyVideo extends Object implements IChildVideo
34124         {
34125                 //static constructor
34126                 public static function DummyVideo$cinit()
34127                 {       //MethodID:3916, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34128                 }
34129
34130                 //constructor
34131                 public function DummyVideo(hug1:Number)
34132                 {       //MethodID:3918, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 192
34133                         internal var length:Number;                                     //slotID:1
34134
34135                         length = hug1;
34136                         this._videoTimer = new Timer(this._delayTime);
34137                         this._onInitialized = new Functions();
34138                         this._onEnded = new Functions();
34139                         this._onSeeked = new Functions();
34140                         this._onSeeking = new Functions();
34141                         this._onPlayed = new Functions();
34142                         this._onStopped = new Functions();
34143                         this._onVideoLoadComplete = new Functions();
34144                         this._onVideoBufferingStarted = new Functions();
34145                         this._onVideoError = new Functions();
34146                         this._displayObject = new Sprite();
34147                         this._video = new Sprite();
34148                         this._vposProvider = new _VposProvider();
34149
34150                         super();
34151
34152                         if(length < 0) throw new ArgumentError("DummyVideo.DummyVideo: length must be positive number.");
34153
34154                         this._length = length;
34155
34156                         this._videoTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{     //MethodID:3917, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 72
34157                                 if(_vposProvider.vpos >= length){
34158                                         _isEnd = true;
34159
34160                                         _videoTimer.stop();
34161                                         _vposProvider.onStopped();
34162
34163                                         _vposProvider.lastVpos = length;
34164                                         _isPlaying = _isPausing = false;
34165
34166                                         _onEnded.apply(_isLoop);
34167                                 }
34168                         });
34169
34170                         this._vposProvider.lastVpos = 0.0;
34171                 }
34172
34173                 //variables/etc.
34174                 private const _delayTime:uint = 40;                             //slotID:0
34175                 private var _videoTimer:Timer;                                  //slotID:0
34176                 private var _length:uint;                                       //slotID:0
34177                 private var _isLoop:Boolean;                                    //slotID:0
34178                 private const _onInitialized:Functions;                         //slotID:0
34179                 private const _onEnded:Functions;                               //slotID:0
34180                 private const _onSeeked:Functions;                              //slotID:0
34181                 private const _onSeeking:Functions;                             //slotID:0
34182                 private const _onPlayed:Functions;                              //slotID:0
34183                 private const _onStopped:Functions;                             //slotID:0
34184                 private const _onVideoLoadComplete:Functions;                   //slotID:0
34185                 private const _onVideoBufferingStarted:Functions;               //slotID:0
34186                 private const _onVideoError:Functions;                          //slotID:0
34187                 private var _isPlaying:Boolean = false;                         //slotID:0
34188                 private var _isPausing:Boolean = false;                         //slotID:0
34189                 private var _isEnd:Boolean = false;                             //slotID:0
34190                 private var _displayObject:DisplayObject;                       //slotID:0
34191                 private var _video:DisplayObject;                               //slotID:0
34192                 private var _vposProvider:_VposProvider;                        //slotID:0
34193
34194                 public function initEvent():void
34195                 {       //MethodID:3920, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 48
34196                         this._onStopped.add(this._vposProvider.onStopped);
34197                         this._onPlayed.add(this._vposProvider.onPlayed);
34198                         this._onEnded.add(function(hug1:Boolean):void{  //MethodID:3919, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
34199                                 _vposProvider.onStopped();
34200                         });
34201                 }
34202
34203                 public function load(hug1:Function):void
34204                 {       //MethodID:3921, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
34205                         ObjectUtils.callLater(hug1, true);
34206                 }
34207
34208                 public function play():void
34209                 {       //MethodID:3922, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 40
34210                         this._isEnd = false;
34211                         this._isPlaying = true;
34212                         this._isPausing = false;
34213
34214                         this._videoTimer.start();
34215                         ObjectUtils.callLater(this._onPlayed.apply);
34216                 }
34217
34218                 public function stop():void
34219                 {       //MethodID:3923, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 35
34220                         this._isEnd = false;
34221                         this._isPausing = true;
34222
34223                         this._videoTimer.stop();
34224                         ObjectUtils.callLater(this._onStopped.apply);
34225                 }
34226
34227                 public function close():void
34228                 {       //MethodID:3924, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34229                 }
34230
34231                 public function seek(hug1:Number):void
34232                 {       //MethodID:3925, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 31
34233                         this._isEnd = false;
34234                         this._vposProvider.lastVpos = hug1;
34235
34236                         ObjectUtils.callLater(this._onSeeked.apply, hug1);
34237                 }
34238
34239                 public function get length():Number
34240                 {       //MethodID:3926, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34241                         return this._length;
34242                 }
34243
34244                 public function get loadedLength():Number
34245                 {       //MethodID:3927, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34246                         return this._length;
34247                 }
34248
34249                 public function get vpos():Number
34250                 {       //MethodID:3928, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
34251                         return this._vposProvider.vpos;
34252                 }
34253
34254                 public function set isLoop(hug1:Boolean):void
34255                 {       //MethodID:3929, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
34256                         this._isLoop = hug1;
34257                 }
34258
34259                 public function set volume(hug1:Number):void
34260                 {       //MethodID:3930, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34261                 }
34262
34263                 public function get isInitialized():Boolean
34264                 {       //MethodID:3931, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
34265                         return true;
34266                 }
34267
34268                 public function get isControllable():Boolean
34269                 {       //MethodID:3932, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
34270                         return true;
34271                 }
34272
34273                 public function get isPlaying():Boolean
34274                 {       //MethodID:3933, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34275                         return this._isPlaying;
34276                 }
34277
34278                 public function get isPausing():Boolean
34279                 {       //MethodID:3934, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34280                         return this._isPausing;
34281                 }
34282
34283                 public function get isSeeking():Boolean
34284                 {       //MethodID:3935, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
34285                         return false;
34286                 }
34287
34288                 public function get isEnd():Boolean
34289                 {       //MethodID:3936, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34290                         return this._isEnd;
34291                 }
34292
34293                 public function get isBuffering():Boolean
34294                 {       //MethodID:3937, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 4
34295                         return false;
34296                 }
34297
34298                 public function get onVideoInitialized():Functions
34299                 {       //MethodID:3938, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34300                         return this._onInitialized;
34301                 }
34302
34303                 public function get onVideoEnded():Functions
34304                 {       //MethodID:3939, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34305                         return this._onEnded;
34306                 }
34307
34308                 public function get onVideoSeeked():Functions
34309                 {       //MethodID:3940, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34310                         return this._onSeeked;
34311                 }
34312
34313                 public function get onVideoSeeking():Functions
34314                 {       //MethodID:3941, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34315                         return this._onSeeking;
34316                 }
34317
34318                 public function get onVideoPlayed():Functions
34319                 {       //MethodID:3942, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34320                         return this._onPlayed;
34321                 }
34322
34323                 public function get onVideoStopped():Functions
34324                 {       //MethodID:3943, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34325                         return this._onStopped;
34326                 }
34327
34328                 public function get onVideoError():Functions
34329                 {       //MethodID:3944, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34330                         return this._onVideoError;
34331                 }
34332
34333                 public function get layer():DisplayObject
34334                 {       //MethodID:3945, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34335                         return this._displayObject;
34336                 }
34337
34338                 public function get source():DisplayObject
34339                 {       //MethodID:3946, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34340                         return this._video;
34341                 }
34342
34343                 public function get videoPlayerStatus():String
34344                 {       //MethodID:3947, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 54
34345                         if(this._isEnd) return VideoPlayerStatus.END;
34346
34347                         if(this._isPlaying){
34348                                 if(this._isPausing) return VideoPlayerStatus.PAUSED;
34349
34350                                 return VideoPlayerStatus.PLAYING;
34351                         }
34352
34353                         return VideoPlayerStatus.STOPPED;
34354                 }
34355
34356                 public function get onVideoBufferingStarted():Functions
34357                 {       //MethodID:3948, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34358                         return this._onVideoBufferingStarted;
34359                 }
34360
34361                 public function get onVideoLoadComplete():Functions
34362                 {       //MethodID:3949, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
34363                         return this._onVideoLoadComplete;
34364                 }
34365
34366                 public function resize(hug1:Number, hug2:Number):void
34367                 {       //MethodID:3950, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34368                 }
34369
34370                 public function get contentWidth():int
34371                 {       //MethodID:3951, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
34372                         return VideoLayerConstants.VIDEO_LAYER_SD_WIDTH;
34373                 }
34374
34375                 public function get contentHeight():int
34376                 {       //MethodID:3952, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
34377                         return VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT;
34378                 }
34379         }
34380 }
34381
34382 import jp.nicovideo.util.TimeUtils
34383
34384 //■class(instance)_index:297
34385 //private
34386 class _VposProvider extends Object
34387 {
34388         //static constructor
34389         public static function _VposProvider$cinit()
34390         {       //MethodID:3910, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34391         }
34392
34393         //variables/etc.
34394         private var _startTime:Number;                                  //slotID:0
34395         private var _isPausing:Boolean = true;                          //slotID:0
34396         private var _lastVpos:Number = 0.0;                             //slotID:0
34397
34398         public function onPlayed():void
34399         {       //MethodID:3911, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 22
34400                 this._startTime = TimeUtils.now().time;
34401                 this._isPausing = false;
34402         }
34403
34404         public function onStopped():void
34405         {       //MethodID:3912, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 16
34406                 this._lastVpos = this.vpos;
34407                 this._isPausing = true;
34408         }
34409
34410         public function set lastVpos(hug1:Number):void
34411         {       //MethodID:3913, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
34412                 this._lastVpos = hug1;
34413         }
34414
34415         public function get vpos():Number
34416         {       //MethodID:3914, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 36
34417                 if(this._isPausing) return this._lastVpos;
34418
34419                 return (this._lastVpos + TimeUtils.now().time - this._startTime);
34420         }
34421
34422         //constructor
34423         public function _VposProvider()
34424         {       //MethodID:3915, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 20
34425                 this._startTime = TimeUtils.now().time;
34426
34427                 super();
34428         }
34429 }
34430
34431 //■script249■
34432
34433 package jp.nicovideo.util{
34434
34435         import flash.events.StatusEvent
34436         import flash.net.LocalConnection
34437         import flash.system.Security
34438         import flash.utils.clearInterval
34439         import flash.utils.setInterval
34440         import jp.nicovideo.util.net.local.LocalConnectionFactory
34441
34442         //■class(instance)_index:299
34443         public class LC extends Object
34444         {
34445                 //static constructor
34446                 public static function LC$cinit()
34447                 {       //MethodID:3954, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
34448                         CONNECTION_FAIL = "connectionFail";
34449                 }
34450
34451                 //static variables/etc.
34452                 public static const CONNECTION_FAIL:String = "connectionFail";  //slotID:1
34453
34454                 //constructor
34455                 public function LC(hug1:String)
34456                 {       //MethodID:3955, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 31
34457                         this.onErrorOccured = new Functions();
34458                         this._lc = LocalConnectionFactory.create();
34459
34460                         super();
34461
34462                         this._domain = hug1;
34463                 }
34464
34465                 //variables/etc.
34466                 public const onErrorOccured:Functions;                          //slotID:0
34467                 public var _domain:String;                                      //slotID:0
34468                 public var _lc:LocalConnection;                                 //slotID:0
34469                 private var _client:_LCClient;                                  //slotID:0
34470
34471                 public function get isMaster():Boolean
34472                 {       //MethodID:3956, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
34473                         return (this._client is (_Master));
34474                 }
34475
34476                 public function join(hug1:Function):void
34477                 {       //MethodID:3961, LocalCount= 4 , MaxScope= 5, MaxStack= 4, CodeLength= 307
34478                         internal var f:Function;                                        //slotID:1
34479                         internal var self:LC;                                           //slotID:2
34480                         internal var time:Number;                                       //slotID:3
34481                         internal var attempts:int;                                      //slotID:4
34482                         internal var connectionName:String;                             //slotID:5
34483                         internal var timer:Number;                                      //slotID:6
34484                         internal var masterize:Function;                                //slotID:7
34485
34486                         self = null;
34487                         connectionName = null;
34488                         timer = NaN;
34489                         f = hug1;
34490                         masterize = function(hug1:LocalConnection):Boolean{     //MethodID:3959, LocalCount= 4 , MaxScope= 3, MaxStack= 4, CodeLength= 105
34491                                 internal var lc:LocalConnection;                                //slotID:1
34492
34493                                 lc = hug1;
34494
34495                                 try{
34496                                         lc.connect(_masterName);
34497
34498                                         lc.client = _client = new _Master();
34499
34500                                         lc.addEventListener(StatusEvent.STATUS, function(hug1:StatusEvent):void{        //MethodID:3958, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
34501                                         });
34502                                         _client.setup(self, _masterName);
34503                                         f();
34504
34505                                         return true;
34506                                 }
34507                                 catch(e:ArgumentError){
34508                                 }
34509
34510                                 return false;
34511                         };
34512
34513                         Security.allowDomain("*");
34514                         this._lc.allowDomain("*");
34515                         this._lc.allowInsecureDomain("*");
34516
34517                         self = this;
34518
34519                         if(masterize(this._lc)) return;
34520
34521                         time = new Date().getTime();
34522                         attempts = 3;
34523
34524                         while(true){
34525                                 try{
34526                                         this._lc.connect("" + time);
34527                                         break;
34528                                 }
34529                                 catch(e:ArgumentError){
34530                                 }
34531
34532                                 attempts -= 1;
34533
34534                                 if(0 < (attempts - 1)){
34535                                         this.onErrorOccured.apply(CONNECTION_FAIL);
34536
34537                                         return;
34538                                 }
34539
34540                                 time += 1;
34541                         }
34542
34543                         connectionName = ("" + time);
34544                         this._lc.client = this._client = new _Slave();
34545
34546                         this._client.setup(this, connectionName);
34547                         this._lc.send(this._masterName, "_lc_ping", connectionName);
34548
34549                         timer = setInterval(function():void{    //MethodID:3957, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 17
34550                                 _lc.send(_masterName, "_lc_ping", connectionName);
34551                         }, 3000);
34552                         this._lc.addEventListener(StatusEvent.STATUS, function(hug1:StatusEvent):void{  //MethodID:3960, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 106
34553                                 internal var event:StatusEvent;                                 //slotID:1
34554                                 internal var lc:LocalConnection;                                //slotID:2
34555
34556                                 lc = null;
34557                                 event = hug1;
34558
34559                                 if(event.level == "error"){
34560                                         lc = LocalConnectionFactory.create();
34561
34562                                         if(masterize(lc)){
34563                                                 try{
34564                                                         _lc.close();
34565                                                 }
34566                                                 catch(e:ArgumentError){
34567                                                 }
34568
34569                                                 _lc = lc;
34570
34571                                                 clearInterval(timer);
34572                                         }
34573                                 }
34574                         });
34575                 }
34576
34577                 public function close():void
34578                 {       //MethodID:3962, LocalCount= 3 , MaxScope= 5, MaxStack= 3, CodeLength= 35
34579                         try{
34580                                 this._lc.close();
34581                         }
34582                         catch(e:ArgumentError){
34583                         }
34584                 }
34585
34586                 public function send(hug1:Function, hug2:String, hug3:Object):void
34587                 {       //MethodID:3963, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 14
34588                         this._client.send(hug1, hug2, hug3);
34589                 }
34590
34591                 public function receive(hug1:Function, hug2:String, hug3:Boolean=false):void
34592                 {       //MethodID:3964, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 14
34593                         this._client.receive(hug1, hug2, hug3);
34594                 }
34595
34596                 public function get _masterName():String
34597                 {       //MethodID:3965, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
34598                         return (this._domain + ".master");
34599                 }
34600         }
34601 }
34602
34603 import flash.utils.clearTimeout
34604 import flash.utils.setTimeout
34605 import jp.nicovideo.util.LC
34606 import jp.nicovideo.util.ObjectUtils
34607
34608 //■class(instance)_index:300
34609 //private
34610 class _LCClient extends Object
34611 {
34612         //static constructor
34613         public static function _LCClient$cinit()
34614         {       //MethodID:3966, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
34615                 _txIDCounter = 0;
34616         }
34617
34618         //static variables/etc.
34619         private static var _txIDCounter:Number = 0.0;                   //slotID:1
34620
34621         //variables/etc.
34622         protected var _parent:LC;                                       //slotID:0
34623         protected var _connectionName:String;                           //slotID:0
34624         private var _accepters:Object;                                  //slotID:0
34625
34626         public function setup(hug1:LC, hug2:String):void
34627         {       //MethodID:3967, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 13
34628                 this._parent = hug1;
34629                 this._connectionName = hug2;
34630         }
34631
34632         public function send(hug1:Function, hug2:String, hug3:Object):void
34633         {       //MethodID:3968, LocalCount= 4 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34634         }
34635
34636         public function receive(hug1:Function, hug2:String, hug3:Boolean, hug4:int=0):void
34637         {       //MethodID:3970, LocalCount= 7 , MaxScope= 2, MaxStack= 5, CodeLength= 127
34638                 private var f:Function;                                         //slotID:1
34639                 private var message:String;                                     //slotID:2
34640                 private var once:Boolean;                                       //slotID:3
34641                 private var timeout:int = 0;                                    //slotID:4
34642                 private var accepter:_Accepter;                                 //slotID:5
34643
34644                 f = hug1;
34645                 message = hug2;
34646                 once = hug3;
34647                 timeout = hug4;
34648                 this._accepters[message] = new _Accepter();
34649                 accepter = new _Accepter();
34650                 accepter.f = f;
34651                 accepter.once = once;
34652
34653                 if(once && (timeout != 0)){
34654                         accepter.timer = setTimeout(function():void{    //MethodID:3969, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 20
34655                                 f(null);
34656                                 delete _accepters[message];
34657                         }, timeout);
34658                 }
34659         }
34660
34661         public function _lc_send(hug1:String, hug2:int, hug3:String, hug4:Object):void
34662         {       //MethodID:3971, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 99
34663                 var hug5:_Accepter = this._accepters[hug3];
34664
34665                 if(!hug5) return;
34666
34667                 var hug6:* = hug5.f(hug4);
34668
34669                 if(hug2 != 0) this._send(hug1, null, ("" + hug2), hug6);
34670
34671                 if(hug5.once){
34672                         if(!isNaN(hug5.timer)) clearTimeout(hug5.timer);
34673                         delete this._accepters[hug3];
34674                 }
34675         }
34676
34677         protected function _send(hug1:String, hug2:Function, hug3:String, hug4:Object):void
34678         {       //MethodID:3972, LocalCount= 8 , MaxScope= 1, MaxStack= 7, CodeLength= 88
34679                 var hug5:int = 0;
34680
34681                 if(hug2 is Function){
34682                         hug5 = (++_txIDCounter);
34683
34684                         this.receive(hug2, String(++_txIDCounter), true, 3000);
34685                 }
34686
34687                 this._parent._lc.send(hug1, "_lc_send", this._connectionName, hug5, hug3, hug4);
34688         }
34689
34690         //constructor
34691         public function _LCClient()
34692         {       //MethodID:3973, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
34693                 this._accepters = {};
34694
34695                 super();
34696         }
34697 }
34698
34699 //■class(instance)_index:301
34700 //private
34701 class _Accepter extends Object
34702 {
34703         //static constructor
34704         public static function _Accepter$cinit()
34705         {       //MethodID:3974, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34706         }
34707
34708         //constructor
34709         public function _Accepter()
34710         {       //MethodID:3975, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34711                 super();
34712         }
34713
34714         //variables/etc.
34715         public var f:Function;                                          //slotID:0
34716         public var once:Boolean;                                        //slotID:0
34717         public var timer:Number = Number.NaN;                           //slotID:0
34718 }
34719
34720 //■class(instance)_index:302
34721 //private
34722 class _SlaveInfo extends Object
34723 {
34724         //static constructor
34725         public static function _SlaveInfo$cinit()
34726         {       //MethodID:3976, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34727         }
34728
34729         //constructor
34730         public function _SlaveInfo()
34731         {       //MethodID:3977, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34732                 super();
34733         }
34734
34735         //variables/etc.
34736         public var lastPingTime:Number;                                 //slotID:0
34737 }
34738
34739 //■class(instance)_index:303
34740 //private
34741 class _Master extends _LCClient
34742 {
34743         //static constructor
34744         public static function _Master$cinit()
34745         {       //MethodID:3978, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34746         }
34747
34748         //variables/etc.
34749         private var _slaves:Object;                                     //slotID:0
34750
34751         override public function send(hug1:Function, hug2:String, hug3:Object):void
34752         {       //MethodID:3979, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 71
34753                 var hug4:String = null;
34754
34755                 for(hug4 in this._slaves){
34756                         _send(hug4, null, hug2, hug3);
34757                 }
34758
34759                 if(hug1 is Function) ObjectUtils.callLater(hug1, null);
34760         }
34761
34762         public function _lc_ping(hug1:String):void
34763         {       //MethodID:3980, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 57
34764                 var hug2:_SlaveInfo = this._slaves[hug1];
34765
34766                 if(!hug2){
34767                         this._slaves[hug1] = new _SlaveInfo();
34768                         hug2 = new _SlaveInfo();
34769                 }
34770
34771                 hug2.lastPingTime = new Date().getTime();
34772         }
34773
34774         //constructor
34775         public function _Master()
34776         {       //MethodID:3981, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
34777                 this._slaves = {};
34778
34779                 super();
34780         }
34781 }
34782
34783 //■class(instance)_index:304
34784 //private
34785 class _Slave extends _LCClient
34786 {
34787         //static constructor
34788         public static function _Slave$cinit()
34789         {       //MethodID:3982, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34790         }
34791
34792         //variables/etc.
34793         override public function send(hug1:Function, hug2:String, hug3:Object):void
34794         {       //MethodID:3983, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 19
34795                 _send(_parent._masterName, hug1, hug2, hug3);
34796         }
34797
34798         //constructor
34799         public function _Slave()
34800         {       //MethodID:3984, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34801                 super();
34802         }
34803 }
34804
34805 //■script250■
34806
34807 package jp.nicovideo.nicoplayer.models.api.relation{
34808
34809         import __AS3__.vec.Vector
34810
34811         //■class(instance)_index:305
34812         public interface IGetRelationResult
34813         {
34814                 //static constructor
34815                 public static function IGetRelationResult$cinit()
34816                 {       //MethodID:3986, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
34817                 }
34818
34819                 //variables/etc.
34820                 function get recommendedVideoList():Vector.<RelatedVideo>;                  //MethodID:3987, dispID:0
34821
34822                 function get ownerOtherVideoList():Vector.<IOwnerOtherVideo>;               //MethodID:3988, dispID:0
34823
34824                 function get ownerOtherVideoURL():String;                                   //MethodID:3989, dispID:0
34825
34826                 function get liveDJInfo():ILiveDJInfo;                                      //MethodID:3990, dispID:0
34827
34828                 //constructor
34829                 public function IGetRelationResult();                                       //MethodID:3991, dispID:0
34830         }
34831 }
34832
34833 //■script251■
34834
34835 package jp.nicovideo.nicoplayer.models.api.relation{
34836
34837         //■class(instance)_index:306
34838         public interface ILiveDJInfo
34839         {
34840                 //static constructor
34841                 public static function ILiveDJInfo$cinit()
34842                 {       //MethodID:3993, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
34843                 }
34844
34845                 //variables/etc.
34846                 function get catategoryName():String;                                       //MethodID:3994, dispID:0
34847
34848                 function get linkURL():String;                                              //MethodID:3995, dispID:0
34849
34850                 function get videoTitle():String;                                           //MethodID:3996, dispID:0
34851
34852                 function get thumbnailURL():String;                                         //MethodID:3997, dispID:0
34853
34854                 //constructor
34855                 public function ILiveDJInfo();                                              //MethodID:3998, dispID:0
34856         }
34857 }
34858
34859 //■script252■
34860
34861 package jp.nicovideo.nicoplayer.models.api.relation{
34862
34863         import __AS3__.vec.Vector
34864         import jp.nicovideo.nicoplayer.models.RelatedVideo
34865
34866         //■class(instance)_index:307
34867         public class GetRelationResultFactory extends Object
34868         {
34869                 //static constructor
34870                 public static function GetRelationResultFactory$cinit()
34871                 {       //MethodID:4000, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
34872                 }
34873
34874                 //static variables/etc.
34875                 public static function createByResponse(hug1:XML, hug2:Vector.<String>, hug3:Vector.<String>, hug4:uint):IGetRelationResult
34876                 {       //dispID:3, MethodID:4001, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 42
34877                         var hug5:Boolean = XML.ignoreWhitespace;
34878                         XML.ignoreWhitespace = true;
34879                         var hug6:IGetRelationResult = _parseResponse(hug1, hug2, hug3, hug4);
34880                         XML.ignoreWhitespace = hug5;
34881                         return hug6;
34882                 }
34883
34884                 public static function createByValues(hug1:Vector.<RelatedVideo>=null, hug2:Vector.<IOwnerOtherVideo>=null, hug3:String=null, hug4:ILiveDJInfo=null):IGetRelationResult
34885                 {       //dispID:4, MethodID:4002, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 15
34886                         return new _GetRelationResult(hug1, hug2, hug3, hug4);
34887                 }
34888
34889                 private static function _parseResponse(hug1:XML, hug2:Vector.<String>, hug3:Vector.<String>, hug4:uint):IGetRelationResult
34890                 {       //dispID:5, MethodID:4006, LocalCount= 6 , MaxScope= 2, MaxStack= 5, CodeLength= 273
34891                         internal var response:XML;                                      //slotID:1
34892                         internal var targets:Vector.<String>;                           //slotID:2
34893                         internal var extTargets:Vector.<String>;                        //slotID:3
34894                         internal var extTargetCount:uint;                               //slotID:4
34895                         internal var recommendedVideoList:Vector.<RelatedVideo>;        //slotID:5
34896                         internal var ownerOtherVideoList:Vector.<IOwnerOtherVideo>;     //slotID:6
34897                         internal var ownerOtherVideoURL:String;                         //slotID:7
34898                         internal var liveDJInfo:ILiveDJInfo;                            //slotID:8
34899                         internal var parseXML:Function;                                 //slotID:9
34900                         internal var parseRecommendedVideoList:Function;                //slotID:10
34901                         internal var isRequired:Function;                               //slotID:11
34902
34903                         recommendedVideoList = null;
34904                         ownerOtherVideoList = null;
34905                         ownerOtherVideoURL = null;
34906                         liveDJInfo = null;
34907                         response = hug1;
34908                         targets = hug2;
34909                         extTargets = hug3;
34910                         extTargetCount = hug4;
34911                         parseXML = function(hug1:XML):void{     //MethodID:4003, LocalCount= 8 , MaxScope= 0, MaxStack= 6, CodeLength= 346
34912                                 var hug2:XML = null;
34913                                 var hug3:XML = null;
34914
34915                                 for each(hug2 in hug1.children()){
34916                                         switch(hug2.localName()){
34917                                         case GetRelationTarget.RELATED_VIDEO:
34918                                                 parseRecommendedVideoList(hug2);
34919                                                 break;
34920                                         case GetRelationTarget.OWNER_VIDEO:
34921                                                 if(ownerOtherVideoList == null) ownerOtherVideoList = new Vector.<IOwnerOtherVideo>();
34922
34923                                                 for each(hug3 in hug2[_ResponseDefines.TAG_NAME_VIDEO4ITEM]){
34924                                                         ownerOtherVideoList.push(_createRelatedVideoByXML(hug3, true));
34925                                                 }
34926
34927                                                 if(hug2[_ResponseDefines.TAG_NAME_LIST_URL] != null) ownerOtherVideoURL = hug2[_ResponseDefines.TAG_NAME_LIST_URL];
34928                                                 break;
34929                                         case GetRelationTarget.LIVE_DJ:
34930                                                 liveDJInfo = new _LiveDJInfo(hug2.name, hug2.url, hug2.title, hug2.thumbnail_url);
34931                                                 break;
34932                                         case _ResponseDefines.TAG_NAME_EXT_TARGET:
34933                                                 parseXML(hug2);
34934                                                 break;
34935                                         default:
34936                                                 break;
34937                                         }
34938                                 }
34939                         };
34940
34941                         parseRecommendedVideoList = function(hug1:XML):void{    //MethodID:4004, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 83
34942                                 var hug2:XML = null;
34943
34944                                 if(recommendedVideoList == null) recommendedVideoList = new Vector.<RelatedVideo>();
34945
34946                                 for each(hug2 in hug1[_ResponseDefines.TAG_NAME_VIDEO4ITEM]){
34947                                         recommendedVideoList.push(_createRelatedVideoByXML(hug2));
34948                                 }
34949                         };
34950
34951                         isRequired = function(hug1:String):Boolean{     //MethodID:4005, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 80
34952                                 if((targets != null) && (targets.indexOf(hug1) != (-1))) return true;
34953
34954                                 if((extTargets != null) && (extTargets.indexOf(hug1) != (-1)) && (extTargets.indexOf(hug1) < extTargetCount)) return true;
34955
34956                                 return false;
34957                         };
34958
34959                         if(response.@status != _ResponseDefines.STATUS_OK) throw new ArgumentError("GetRelationResultFactory._parse: invalid response.");
34960
34961                         recommendedVideoList = (isRequired(GetRelationTarget.RELATED_VIDEO) ? new Vector.<RelatedVideo>() : null);
34962                         ownerOtherVideoList = (isRequired(GetRelationTarget.OWNER_VIDEO) ? new Vector.<IOwnerOtherVideo>() : null);
34963
34964                         if(response.localName() == GetRelationTarget.RELATED_VIDEO){
34965                                 parseRecommendedVideoList(response);
34966                         }else{
34967                                 parseXML(response);
34968                         }
34969
34970                         return new _GetRelationResult(recommendedVideoList, ownerOtherVideoList, ownerOtherVideoURL, liveDJInfo);
34971                 }
34972
34973                 private static function _createRelatedVideoByXML(hug1:XML, hug2:Boolean=false):RelatedVideo
34974                 {       //dispID:6, MethodID:4007, LocalCount= 3 , MaxScope= 1, MaxStack= 10, CodeLength= 98
34975                         if(hug2) return new RelatedVideo(hug1.url, hug1.thumbnail, hug1.title, (Number(hug1.length) * 1000));
34976
34977                         return new RelatedVideo(hug1.url, hug1.thumbnail, hug1.title, (Number(hug1.length) * 1000), hug1.view, hug1.comment, hug1.mylist, (Number(hug1.time) * 1000));
34978                 }
34979
34980                 //constructor
34981                 public function GetRelationResultFactory()
34982                 {       //MethodID:4008, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
34983                         super();
34984                 }
34985         }
34986 }
34987
34988 import __AS3__.vec.Vector
34989 import jp.nicovideo.nicoplayer.models.api.relation.ILiveDJInfo
34990
34991 //■class(instance)_index:308
34992 //private
34993 class _ResponseDefines extends Object
34994 {
34995         //static constructor
34996         public static function _ResponseDefines$cinit()
34997         {       //MethodID:4009, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
34998                 STATUS_OK = "ok";
34999                 TAG_NAME_VIDEO4ITEM = "video";
35000                 TAG_NAME_LIST_URL = "list_url";
35001                 TAG_NAME_EXT_TARGET = "ext_target";
35002         }
35003
35004         //static variables/etc.
35005         public static const STATUS_OK:String = "ok";                    //slotID:1
35006         public static const TAG_NAME_VIDEO4ITEM:String = "video";       //slotID:2
35007         public static const TAG_NAME_LIST_URL:String = "list_url";      //slotID:3
35008         public static const TAG_NAME_EXT_TARGET:String = "ext_target";  //slotID:4
35009
35010         //constructor
35011         public function _ResponseDefines()
35012         {       //MethodID:4010, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35013                 super();
35014         }
35015 }
35016
35017 //■class(instance)_index:309
35018 //private
35019 class _GetRelationResult extends Object implements IGetRelationResult
35020 {
35021         //static constructor
35022         public static function _GetRelationResult$cinit()
35023         {       //MethodID:4011, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
35024         }
35025
35026         //constructor
35027         public function _GetRelationResult(hug1:Vector.<RelatedVideo>=null, hug2:Vector.<IOwnerOtherVideo>=null, hug3:String=null, hug4:ILiveDJInfo=null)
35028         {       //MethodID:4012, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 27
35029                 super();
35030
35031                 this._recommendedVideoList = hug1;
35032                 this._ownerOtherVideoList = hug2;
35033                 this._ownerOtherVideoURL = hug3;
35034                 this._liveDJInfo = hug4;
35035         }
35036
35037         //variables/etc.
35038         private var _recommendedVideoList:Vector.<RelatedVideo>;        //slotID:0
35039         private var _ownerOtherVideoList:Vector.<IOwnerOtherVideo>;     //slotID:0
35040         private var _videoenderVideoListTarget:String;                  //slotID:0
35041         private var _ownerOtherVideoURL:String;                         //slotID:0
35042         private var _liveDJInfo:ILiveDJInfo;                            //slotID:0
35043
35044         public function get recommendedVideoList():Vector.<RelatedVideo>
35045         {       //MethodID:4013, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35046                 return this._recommendedVideoList;
35047         }
35048
35049         public function get ownerOtherVideoList():Vector.<IOwnerOtherVideo>
35050         {       //MethodID:4014, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35051                 return this._ownerOtherVideoList;
35052         }
35053
35054         public function get ownerOtherVideoURL():String
35055         {       //MethodID:4015, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35056                 return this._ownerOtherVideoURL;
35057         }
35058
35059         public function get liveDJInfo():ILiveDJInfo
35060         {       //MethodID:4016, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35061                 return this._liveDJInfo;
35062         }
35063 }
35064
35065 //■class(instance)_index:310
35066 //private
35067 class _LiveDJInfo extends Object implements ILiveDJInfo
35068 {
35069         //static constructor
35070         public static function _LiveDJInfo$cinit()
35071         {       //MethodID:4017, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
35072         }
35073
35074         //constructor
35075         public function _LiveDJInfo(hug1:String, hug2:String, hug3:String, hug4:String)
35076         {       //MethodID:4018, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 56
35077                 super();
35078
35079                 if(hug1 != "") this._catategoryName = hug1;
35080
35081                 if(hug2 != "") this._linkURL = hug2;
35082
35083                 if(hug3 != "") this._videoTitle = hug3;
35084
35085                 if(hug4 != "") this._thumbnailURL = hug4;
35086         }
35087
35088         //variables/etc.
35089         private var _catategoryName:String;                             //slotID:0
35090         private var _linkURL:String;                                    //slotID:0
35091         private var _videoTitle:String;                                 //slotID:0
35092         private var _thumbnailURL:String;                               //slotID:0
35093
35094         public function get catategoryName():String
35095         {       //MethodID:4019, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35096                 return this._catategoryName;
35097         }
35098
35099         public function get linkURL():String
35100         {       //MethodID:4020, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35101                 return this._linkURL;
35102         }
35103
35104         public function get videoTitle():String
35105         {       //MethodID:4021, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35106                 return this._videoTitle;
35107         }
35108
35109         public function get thumbnailURL():String
35110         {       //MethodID:4022, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35111                 return this._thumbnailURL;
35112         }
35113 }
35114
35115 //■script253■
35116
35117 package jp.nicovideo.nicoplayer.models{
35118
35119         //■class(instance)_index:311
35120         public class RelatedConstants extends Object
35121         {
35122                 //static constructor
35123                 public static function RelatedConstants$cinit()
35124                 {       //MethodID:4024, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 75
35125                         SORT_RELATEDPOINT = "p";
35126                         SORT_VIEWCOUNTER = "v";
35127                         SORT_ENTRYDATE = "f";
35128                         SORT_RESDATE = "n";
35129                         SORT_RESNUM = "r";
35130                         SORT_MYLISTCOUNTER = "m";
35131                         ORDER_UP = "a";
35132                         ORDER_DOWN = "d";
35133                 }
35134
35135                 //static variables/etc.
35136                 public static const SORT_RELATEDPOINT:String = "p";             //slotID:1
35137                 public static const SORT_VIEWCOUNTER:String = "v";              //slotID:2
35138                 public static const SORT_ENTRYDATE:String = "f";                //slotID:3
35139                 public static const SORT_RESDATE:String = "n";                  //slotID:4
35140                 public static const SORT_RESNUM:String = "r";                   //slotID:5
35141                 public static const SORT_MYLISTCOUNTER:String = "m";            //slotID:6
35142                 public static const ORDER_UP:String = "a";                      //slotID:7
35143                 public static const ORDER_DOWN:String = "d";                    //slotID:8
35144
35145                 //constructor
35146                 public function RelatedConstants()
35147                 {       //MethodID:4025, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35148                         super();
35149                 }
35150         }
35151 }
35152
35153 //■script254■
35154
35155 package jp.nicovideo.nicoplayer.models.api.relation{
35156
35157         //■class(instance)_index:312
35158         public class GetRelationTarget extends Object
35159         {
35160                 //static constructor
35161                 public static function GetRelationTarget$cinit()
35162                 {       //MethodID:4027, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
35163                         RELATED_VIDEO = "related_video";
35164                         OWNER_VIDEO = "owner_video";
35165                         LIVE_DJ = "dj";
35166                 }
35167
35168                 //static variables/etc.
35169                 public static const RELATED_VIDEO:String = "related_video";     //slotID:1
35170                 public static const OWNER_VIDEO:String = "owner_video";         //slotID:2
35171                 public static const LIVE_DJ:String = "dj";                      //slotID:3
35172
35173                 //constructor
35174                 public function GetRelationTarget()
35175                 {       //MethodID:4028, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35176                         super();
35177                 }
35178         }
35179 }
35180
35181 //■script255■
35182
35183 package jp.nicovideo.nicoplayer.models.api.relation{
35184
35185         //■class(instance)_index:313
35186         public interface IOwnerOtherVideo
35187         {
35188                 //static constructor
35189                 public static function IOwnerOtherVideo$cinit()
35190                 {       //MethodID:4030, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
35191                 }
35192
35193                 //variables/etc.
35194                 function get videoTitle():String;                                           //MethodID:4031, dispID:0
35195
35196                 function get watchURL():String;                                             //MethodID:4032, dispID:0
35197
35198                 function get thumbnailURL():String;                                         //MethodID:4033, dispID:0
35199
35200                 function get videoLength():Number;                                          //MethodID:4034, dispID:0
35201
35202                 //constructor
35203                 public function IOwnerOtherVideo();                                         //MethodID:4035, dispID:0
35204         }
35205 }
35206
35207 //■script256■
35208
35209 package jp.nicovideo.nicoplayer.models{
35210
35211         //■class(instance)_index:314
35212         public class RelatedVideo extends Object implements IOwnerOtherVideo
35213         {
35214                 //static constructor
35215                 public static function RelatedVideo$cinit()
35216                 {       //MethodID:4037, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
35217                 }
35218
35219                 //constructor
35220                 public function RelatedVideo(hug1:String, hug2:String, hug3:String, hug4:Number=Number.NaN, hug5:Number=Number.NaN, hug6:Number=Number.NaN, hug7:Number=Number.NaN, hug8:Number=Number.NaN)
35221                 {       //MethodID:4038, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 69
35222                         super();
35223
35224                         this.__watchURL = hug1;
35225                         this.__thumbnailURL = hug2;
35226                         this.__videoTitle = hug3;
35227                         this.__viewCounter = hug5;
35228                         this.__resNum = hug6;
35229                         this.__mylistCounter = hug7;
35230                         this.__videoLength = hug4;
35231
35232                         if(!isNaN(hug8)) this.__entryDate = new Date(hug8);
35233                 }
35234
35235                 //variables/etc.
35236                 private var __watchURL:String;                                  //slotID:0
35237                 private var __thumbnailURL:String;                              //slotID:0
35238                 private var __videoTitle:String;                                //slotID:0
35239                 private var __viewCounter:Number;                               //slotID:0
35240                 private var __resNum:Number;                                    //slotID:0
35241                 private var __mylistCounter:Number;                             //slotID:0
35242                 private var __videoLength:Number;                               //slotID:0
35243                 private var __entryDate:Date;                                   //slotID:0
35244
35245                 public function get watchURL():String
35246                 {       //MethodID:4039, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35247                         return this.__watchURL;
35248                 }
35249
35250                 public function get thumbnailURL():String
35251                 {       //MethodID:4040, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35252                         return this.__thumbnailURL;
35253                 }
35254
35255                 public function get videoTitle():String
35256                 {       //MethodID:4041, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35257                         return this.__videoTitle;
35258                 }
35259
35260                 public function get viewCounter():Number
35261                 {       //MethodID:4042, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35262                         return this.__viewCounter;
35263                 }
35264
35265                 public function get resNum():Number
35266                 {       //MethodID:4043, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35267                         return this.__resNum;
35268                 }
35269
35270                 public function get mylistCounter():Number
35271                 {       //MethodID:4044, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35272                         return this.__mylistCounter;
35273                 }
35274
35275                 public function get videoLength():Number
35276                 {       //MethodID:4045, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35277                         return this.__videoLength;
35278                 }
35279
35280                 public function get entryDate():Date
35281                 {       //MethodID:4046, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
35282                         return this.__entryDate;
35283                 }
35284         }
35285 }
35286
35287 //■script257■
35288
35289 package jp.nicovideo.util{
35290
35291         //■class(instance)_index:315
35292         public class JSON extends Object
35293         {
35294                 //static constructor
35295                 public static function JSON$cinit()
35296                 {       //MethodID:4048, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 33
35297                         __DIGITs = "0123456789";
35298                         __HEX_DIGITs = (__DIGITs + "abcdef");
35299                         __NULL = {};
35300                 }
35301
35302                 //static variables/etc.
35303                 private static const __DIGITs:String = 0123456789;              //slotID:1
35304                 private static const __HEX_DIGITs:String;                       //slotID:2
35305                 private static const __NULL:Object;                             //slotID:3
35306
35307                 public static function decode(hug1:String):Object
35308                 {       //dispID:3, MethodID:4049, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 32
35309                         var hug2:* = new Object(hug1).__get_value();
35310
35311                         if(hug2 === __NULL) __error("Empty string.");
35312
35313                         return hug2;
35314                 }
35315
35316                 private static function __error(hug1:String):void
35317                 {       //dispID:4, MethodID:4050, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 15
35318                         throw new Error("JSON parse error: " + hug1);
35319                 }
35320
35321                 private static function __isDigit(hug1:String):Boolean
35322                 {       //dispID:5, MethodID:4051, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 19
35323                         return (("0" <= hug1) && (hug1 <= "9"));
35324                 }
35325
35326                 private static function __isIdPart(hug1:String, hug2:Boolean=false):Boolean
35327                 {       //dispID:6, MethodID:4052, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 64
35328                         hug1 = hug1.toLowerCase();
35329                         return (((hug1 == "_") || (("a" <= hug1.toLowerCase()) && (hug1 <= "z"))) || (!hug2 && __isDigit(hug1)));
35330                 }
35331
35332                 //constructor
35333                 public function JSON(hug1:String)
35334                 {       //MethodID:4053, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
35335                         super();
35336
35337                         this.__s = hug1;
35338                 }
35339
35340                 //variables/etc.
35341                 private var __i:Number = 0.0;                                   //slotID:0
35342                 private var __s:String;                                         //slotID:0
35343
35344                 public function __blank():void
35345                 {       //MethodID:4056, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 208
35346                         internal var anal:Boolean;                                      //slotID:1
35347
35348                         anal = false;
35349
35350                         while(true){
35351                                 while(" \r\n".indexOf(this.__c) != (-1)){
35352                                         this.__i++;
35353                                 }
35354
35355                                 if(this.__c != "/") break;
35356
35357                                 this.__i++;
35358
35359                                 if(this.__c == "/"){
35360                                         this.__clip(function(hug1:String):Boolean{      //MethodID:4054, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 12
35361                                                 return ("\r\n".indexOf(hug1) == (-1));
35362                                         });
35363                                 }else if(this.__c == "*"){
35364                                         anal = false;
35365
35366                                         this.__clip(function(hug1:String):Boolean{      //MethodID:4055, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 34
35367                                                 if((hug1 == "/") && anal) return false;
35368
35369                                                 anal = (hug1 == "*");
35370                                                 return true;
35371                                         }, -1, 2);
35372
35373                                         if((this.__c != "/") || !anal) __error("A comment reaching to end.");
35374                                 }else{
35375                                         __error("Unexpected `/'.");
35376                                 }
35377
35378                                 this.__i++;
35379                         }
35380                 }
35381
35382                 public function __get_value():*
35383                 {       //MethodID:4058, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 353
35384                         internal var id:String;                                         //slotID:1
35385                         internal var val:*;                                             //slotID:2
35386                         internal var obj:Object;                                        //slotID:3
35387
35388                         obj = null;
35389
35390                         this.__blank();
35391
35392                         switch(this.__c){
35393                         case "{":
35394                                 this.__i++;
35395                                 obj = {};
35396
35397                                 this.__csv(function():*{        //MethodID:4057, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 114
35398                                         __blank();
35399
35400                                         var hug1:String = __get_string();
35401
35402                                         if(hug1 == null) return __NULL;
35403                                         __blank();
35404
35405                                         if(__c != ":") __error("Expected `:' but:" + __c);
35406
35407                                         __i++;
35408                                         obj[hug1] = __get_value();
35409
35410                                         if(__get_value() === __NULL) __error("Expected VALUE.");
35411
35412                                         return null;
35413                                 }, "}");
35414
35415                                 return obj;
35416                         case "[":
35417                                 this.__i++;
35418                                 return this.__csv(this.__get_value, "]");
35419                         default:
35420                                 break;
35421                         }
35422
35423                         id = this.__get_id();
35424
35425                         if(id != null){
35426                                 switch(id){
35427                                 case "true":
35428                                         return true;
35429                                 case "false":
35430                                         return false;
35431                                 case "null":
35432                                         return null;
35433                                 default:
35434                                         __error("Unrecognizable ID:" + id);
35435                                         break;
35436                                 }
35437                         }
35438
35439                         val = this.__get_string();
35440                         val = this.__get_number();
35441
35442                         if((val == null) && isNaN(this.__get_number())) val = __NULL;
35443
35444                         return val;
35445                 }
35446
35447                 public function __get_string():String
35448                 {       //MethodID:4059, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 79
35449                         if(this.__c != "\"") return null;
35450
35451                         this.__i++;
35452                         var hug1:String = "";
35453
35454                         while(this.__c != "\""){
35455                                 hug1 += this.__unquote();
35456                         }
35457
35458                         this.__i++;
35459                         return hug1;
35460                 }
35461
35462                 private function __unquote():String
35463                 {       //MethodID:4061, LocalCount= 3 , MaxScope= 2, MaxStack= 6, CodeLength= 240
35464                         internal var c:String;                                          //slotID:1
35465
35466                         c = this.__clip(null);
35467
35468                         if(c != "\\") return c;
35469
35470                         c = this.__clip(null);
35471
35472                         switch(c){
35473                         case "b":
35474                                 return "\b";
35475                         case "f":
35476                                 return "\f";
35477                         case "n":
35478                                 return "\n";
35479                         case "r":
35480                                 return "\r";
35481                         case "t":
35482                                 return "\t";
35483                         case "u":
35484                                 return String.fromCharCode(parseInt(this.__clip(function(hug1:String):Boolean{  //MethodID:4060, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 13
35485                                         return (__HEX_DIGITs.indexOf(hug1) != (-1));
35486                                 }, 4, 4), 16));
35487                         default:
35488                                 break;
35489                         }
35490
35491                         return c;
35492                 }
35493
35494                 public function __get_number():Number
35495                 {       //MethodID:4062, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 376
35496                         var hug1:Number = this.__i;
35497
35498                         if(this.__c == "-"){
35499                                 this.__i++;
35500
35501                                 if(!__isDigit(this.__c)) __error("Expected DIGIT.");
35502                         }
35503
35504                         var hug2:String = "0";
35505
35506                         if(this.__c == "0"){
35507                                 this.__i++;
35508                         }else{
35509                                 hug2 = this.__clip(__isDigit, -1, 0);
35510
35511                                 if(this.__clip(__isDigit, -1, 0) == "") return NaN;
35512                         }
35513
35514                         var hug3:Number = 1;
35515
35516                         while(true){
35517                                 if((hug3 % 2) && (this.__c == ".")){
35518                                         this.__i++;
35519                                         this.__clip(__isDigit, -1);
35520
35521                                         hug3 *= 2;
35522                                         continue;
35523                                 }
35524
35525                                 if((hug3 % 3) && (this.__c.toLowerCase() == "e")){
35526                                         this.__i++;
35527
35528                                         if(!(__isDigit(this.__c) || ("+-".indexOf(this.__c) != (-1)))) __error("Expected DIGIT or `+-'.");
35529
35530                                         this.__i++;
35531                                         this.__clip(__isDigit, -1, 0);
35532
35533                                         hug3 *= 3;
35534                                         continue;
35535                                 }
35536                                 break;
35537                         }
35538
35539                         return parseFloat(this.__s.slice(hug1, this.__i));
35540                 }
35541
35542                 public function __get_id():String
35543                 {       //MethodID:4063, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 31
35544                         if(!__isIdPart(this.__c, true)) return null;
35545
35546                         return this.__clip(__isIdPart, -1);
35547                 }
35548
35549                 public function __csv(hug1:Function, hug2:String):Array
35550                 {       //MethodID:4064, LocalCount= 7 , MaxScope= 1, MaxStack= 3, CodeLength= 140
35551                         var hug4:* = undefined;
35552                         var hug3:Array = [];
35553
35554                         while(true){
35555                                 hug4 = hug1();
35556
35557                                 if(hug4 !== __NULL){
35558                                         hug3.push(hug4);
35559                                         this.__blank();
35560
35561                                         if(this.__c == ","){
35562                                                 this.__i++;
35563                                                 continue;
35564                                         }
35565                                 }
35566                                 break;
35567                         }
35568
35569                         if(this.__c != hug2) __error("Expected `" + hug2 + "' but:" + this.__c);
35570
35571                         this.__i++;
35572                         return hug3;
35573                 }
35574
35575                 public function get __c():String
35576                 {       //MethodID:4065, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 38
35577                         return ((this.__i >= this.__s.length) ? "" : this.__s.charAt(this.__i));
35578                 }
35579
35580                 private function __clip(hug1:Function, hug2:Number=Number.NaN, hug3:Number=Number.NaN):String
35581                 {       //MethodID:4067, LocalCount= 7 , MaxScope= 2, MaxStack= 3, CodeLength= 224
35582                         internal var f:Function;                                        //slotID:1
35583                         internal var max:Number = Number.NaN;                           //slotID:2
35584                         internal var min:Number = Number.NaN;                           //slotID:3
35585                         internal var i:Number;                                          //slotID:4
35586
35587                         f = hug1;
35588                         max = hug2;
35589                         min = hug3;
35590
35591                         if(!f){
35592                                 f = function(hug1:String):Boolean{      //MethodID:4066, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 2
35593                                         return true;
35594                                 };
35595                         }
35596
35597                         if(isNaN(max)) max = 1;
35598
35599                         if(isNaN(min)) min = 1;
35600
35601                         i = this.__i;
35602                         max -= 1;
35603
35604                         while(((this.__c != "") && (max != 0)) && f(this.__c)){
35605                                 this.__i++;
35606                         }
35607
35608                         if((this.__i - i) < min) __error("Expected " + min + " chars.");
35609
35610                         return this.__s.slice(i, this.__i);
35611                 }
35612         }
35613 }
35614
35615 //■script258■
35616
35617 package jp.nicovideo.nicoplayer.remocon.method{
35618
35619         //■class(instance)_index:316
35620         public class RemoconMethodParamName extends Object
35621         {
35622                 //static constructor
35623                 public static function RemoconMethodParamName$cinit()
35624                 {       //MethodID:4069, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 75
35625                         VOLUME = "vol";
35626                         OFFSET = "offset";
35627                         VPOS = "vpos";
35628                         TEXT = "text";
35629                         COMMAND = "command";
35630                         EXPIRE = "expire";
35631                         TOKEN = "token";
35632                         LEVEL = "level";
35633                 }
35634
35635                 //static variables/etc.
35636                 public static const VOLUME:String = "vol";                      //slotID:1
35637                 public static const OFFSET:String = "offset";                   //slotID:2
35638                 public static const VPOS:String = "vpos";                       //slotID:3
35639                 public static const TEXT:String = "text";                       //slotID:4
35640                 public static const COMMAND:String = "command";                 //slotID:5
35641                 public static const EXPIRE:String = "expire";                   //slotID:6
35642                 public static const TOKEN:String = "token";                     //slotID:7
35643                 public static const LEVEL:String = "level";                     //slotID:8
35644
35645                 //constructor
35646                 public function RemoconMethodParamName()
35647                 {       //MethodID:4070, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35648                         super();
35649                 }
35650         }
35651 }
35652
35653 //■script259■
35654
35655 package jp.nicovideo.nicoplayer.remocon.method{
35656
35657         //■class(instance)_index:317
35658         public class RemoconMethodName extends Object
35659         {
35660                 //static constructor
35661                 public static function RemoconMethodName$cinit()
35662                 {       //MethodID:4072, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 93
35663                         SET_VOL = "setVol";
35664                         TOGGLE_PLAY = "switchPlay";
35665                         TOGGLE_REPEAT = "switchRepeat";
35666                         TOGGLE_MUTE = "switchMute";
35667                         TOGGLE_FULLSCREEN = "switchFullscreen";
35668                         TOGGLE_COMMENT_VISIBLE = "switchShowComment";
35669                         POST_COMMENT = "sendComment";
35670                         SEEK_TO = "seekTo";
35671                         SEEK_PLUS = "seekPlus";
35672                         SEEK_TO_ALERT = "seekToAlert";
35673                 }
35674
35675                 //static variables/etc.
35676                 public static const SET_VOL:String = "setVol";                  //slotID:1
35677                 public static const TOGGLE_PLAY:String = "switchPlay";          //slotID:2
35678                 public static const TOGGLE_REPEAT:String = "switchRepeat";      //slotID:3
35679                 public static const TOGGLE_MUTE:String = "switchMute";          //slotID:4
35680                 public static const TOGGLE_FULLSCREEN:String = "switchFullscreen";//slotID:5
35681                 public static const TOGGLE_COMMENT_VISIBLE:String = "switchShowComment";//slotID:6
35682                 public static const POST_COMMENT:String = "sendComment";        //slotID:7
35683                 public static const SEEK_TO:String = "seekTo";                  //slotID:8
35684                 public static const SEEK_PLUS:String = "seekPlus";              //slotID:9
35685                 public static const SEEK_TO_ALERT:String = "seekToAlert";       //slotID:10
35686
35687                 //constructor
35688                 public function RemoconMethodName()
35689                 {       //MethodID:4073, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35690                         super();
35691                 }
35692         }
35693 }
35694
35695 //■script260■
35696
35697 package jp.nicovideo.remocon{
35698
35699         //■class(instance)_index:318
35700         public final class AlertState extends Object
35701         {
35702                 //static constructor
35703                 public static function AlertState$cinit()
35704                 {       //MethodID:4075, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 300
35705                         VOLUME = "Volume";
35706                         PLAY = "Play";
35707                         PAUSE = "Pause";
35708                         FAST_FOWARD_LV1 = "FastForwardLV1";
35709                         FAST_FOWARD_LV2 = "FastForwardLV2";
35710                         FAST_FOWARD_LV3 = "FastForwardLV3";
35711                         REWIND_LV1 = "Rewind_LV1";
35712                         REWIND_LV2 = "Rewind_LV2";
35713                         REWIND_LV3 = "Rewind_LV3";
35714                         FAST_FOWARD_EX = "FastForwardEX";
35715                         REWIND_EX = "Rewind_EX";
35716                         COMMENT_POST_COMPLETE = "CommentPostComplete";
35717                         COMMENT_POST_ERROR = "CommentPostError";
35718                         COMMENT_POST_REJECT = "CommentPostReject";
35719                         COMMENT_VISIBLE = "CommentVisible";
35720                         COMMENT_INVISIBLE = "CommentInVisible";
35721                         FULLSCREEN_ON = "FullScreenOn";
35722                         FULLSCREEN_OFF = "FullScreenOff";
35723                         MUTE_ON = "MuteOn";
35724                         MUTE_OFF = "MuteOff";
35725                         REPEAT_ON = "RepeatOn";
35726                         REPEAT_OFF = "RepeatOff";
35727                         NICODEN_START = "NicodenStart";
35728                         NICODEN_COMPLETE = "NicodenComplete";
35729                         NICODEN_REJECT = "NicodenReject";
35730                         VOTE_START = "VoteStart";
35731                         VOTE_COMPLETE = "VoteComplete";
35732                         VOTE_REJECT = "VoteReject";
35733                         REMOCON_CONNECT = "RemoconConnect";
35734                         REMOCON_MAINTENANCE = "RemoconMaintenance";
35735                         REMOCON_ERROR = "RemoconError";
35736                         REMOCON_HALT = "RemoconHalt";
35737                         SEEK_CHANGE = "SeekChange";
35738                 }
35739
35740                 //static variables/etc.
35741                 public static const VOLUME:String = "Volume";                   //slotID:1
35742                 public static const PLAY:String = "Play";                       //slotID:2
35743                 public static const PAUSE:String = "Pause";                     //slotID:3
35744                 public static const FAST_FOWARD_LV1:String = "FastForwardLV1";  //slotID:4
35745                 public static const FAST_FOWARD_LV2:String = "FastForwardLV2";  //slotID:5
35746                 public static const FAST_FOWARD_LV3:String = "FastForwardLV3";  //slotID:6
35747                 public static const REWIND_LV1:String = "Rewind_LV1";           //slotID:7
35748                 public static const REWIND_LV2:String = "Rewind_LV2";           //slotID:8
35749                 public static const REWIND_LV3:String = "Rewind_LV3";           //slotID:9
35750                 public static const FAST_FOWARD_EX:String = "FastForwardEX";    //slotID:10
35751                 public static const REWIND_EX:String = "Rewind_EX";             //slotID:11
35752                 public static const COMMENT_POST_COMPLETE:String = "CommentPostComplete";//slotID:12
35753                 public static const COMMENT_POST_ERROR:String = "CommentPostError";//slotID:13
35754                 public static const COMMENT_POST_REJECT:String = "CommentPostReject";//slotID:14
35755                 public static const COMMENT_VISIBLE:String = "CommentVisible";  //slotID:15
35756                 public static const COMMENT_INVISIBLE:String = "CommentInVisible";//slotID:16
35757                 public static const FULLSCREEN_ON:String = "FullScreenOn";      //slotID:17
35758                 public static const FULLSCREEN_OFF:String = "FullScreenOff";    //slotID:18
35759                 public static const MUTE_ON:String = "MuteOn";                  //slotID:19
35760                 public static const MUTE_OFF:String = "MuteOff";                //slotID:20
35761                 public static const REPEAT_ON:String = "RepeatOn";              //slotID:21
35762                 public static const REPEAT_OFF:String = "RepeatOff";            //slotID:22
35763                 public static const NICODEN_START:String = "NicodenStart";      //slotID:23
35764                 public static const NICODEN_COMPLETE:String = "NicodenComplete";//slotID:24
35765                 public static const NICODEN_REJECT:String = "NicodenReject";    //slotID:25
35766                 public static const VOTE_START:String = "VoteStart";            //slotID:26
35767                 public static const VOTE_COMPLETE:String = "VoteComplete";      //slotID:27
35768                 public static const VOTE_REJECT:String = "VoteReject";          //slotID:28
35769                 public static const REMOCON_CONNECT:String = "RemoconConnect";  //slotID:29
35770                 public static const REMOCON_MAINTENANCE:String = "RemoconMaintenance";//slotID:30
35771                 public static const REMOCON_ERROR:String = "RemoconError";      //slotID:31
35772                 public static const REMOCON_HALT:String = "RemoconHalt";        //slotID:32
35773                 public static const SEEK_CHANGE:String = "SeekChange";          //slotID:33
35774
35775                 //constructor
35776                 public function AlertState()
35777                 {       //MethodID:4076, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35778                         super();
35779                 }
35780         }
35781 }
35782
35783 //■script261■
35784
35785 package jp.nicovideo.nicoplayer.remocon.method{
35786
35787         //■class(instance)_index:319
35788         public class RemoconSystemMethodName extends Object
35789         {
35790                 //static constructor
35791                 public static function RemoconSystemMethodName$cinit()
35792                 {       //MethodID:4078, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
35793                         INITIALIZE = "__initialize";
35794                         CHANGE_STATUS = "__changeStatus";
35795                 }
35796
35797                 //static variables/etc.
35798                 public static const INITIALIZE:String = "__initialize";         //slotID:1
35799                 public static const CHANGE_STATUS:String = "__changeStatus";    //slotID:2
35800
35801                 //constructor
35802                 public function RemoconSystemMethodName()
35803                 {       //MethodID:4079, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35804                         super();
35805                 }
35806         }
35807 }
35808
35809 //■script262■
35810 //skip components :com.adobe.crypto
35811 //as filename :MD5.as
35812
35813 //■script263■
35814
35815 package jp.nicovideo.util{
35816
35817         //■class(instance)_index:321
35818         public final class ArrayUtils extends Object
35819         {
35820                 //static constructor
35821                 public static function ArrayUtils$cinit()
35822                 {       //MethodID:4097, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
35823                 }
35824
35825                 //static variables/etc.
35826                 public static function lowerBoundIndex(hug1:Function, hug2:*, hug3:Array):int
35827                 {       //dispID:3, MethodID:4098, LocalCount= 9 , MaxScope= 1, MaxStack= 5, CodeLength= 157
35828                         var hug7:int = 0;
35829                         var hug4:int = -1;
35830                         var hug5:int = hug3.length;
35831                         var hug6:Number = -1;
35832
35833                         while((hug5 - hug4) > 1){
35834                                 hug7 = ((hug4 + hug5) / 2);
35835
35836                                 if(!hug3[hug7]){
35837                                         hug5 = hug7;
35838                                         continue;
35839                                 }
35840
35841                                 var hug8:hug3[hug7] = hug1(hug2, hug3[hug7]);
35842                                 hug6 = hug8;
35843
35844                                 if(hug8 <= 0){
35845                                         hug5 = hug7;
35846                                         continue;
35847                                 }
35848
35849                                 hug4 = hug7;
35850                         }
35851
35852                         return ((hug5 == hug3.length) ? (hug5 - 1) : ((hug1(hug2, hug3[hug5]) == 0) ? hug5 : hug4));
35853                 }
35854
35855                 public static function subtract(hug1:Function, hug2:Array, hug3:Array):void
35856                 {       //dispID:4, MethodID:4099, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 99
35857                         var hug6:Number = NaN;
35858                         var hug4:int = 0;
35859                         var hug5:int = 0;
35860
35861                         while((hug4 < hug2.length) && (hug5 < hug3.length)){
35862                                 hug6 = hug1(hug2[hug4], hug3[hug5]);
35863
35864                                 if(hug6 == 0){
35865                                         hug2.splice(hug4, 1);
35866                                         continue;
35867                                 }
35868
35869                                 if(hug6 > 0){
35870                                         hug5++;
35871                                         continue;
35872                                 }
35873
35874                                 hug4++;
35875                         }
35876                 }
35877
35878                 public static function add(hug1:Function, hug2:Array, hug3:Array, hug4:Boolean=false):void
35879                 {       //dispID:5, MethodID:4100, LocalCount= 8 , MaxScope= 1, MaxStack= 6, CodeLength= 155
35880                         var hug7:Number = NaN;
35881                         var hug5:int = 0;
35882                         var hug6:int = 0;
35883
35884                         while((hug5 < hug2.length) && (hug6 < hug3.length)){
35885                                 hug7 = hug1(hug2[hug5], hug3[hug6]);
35886
35887                                 if(hug7 == 0){
35888                                         if(hug4) hug2[hug5] = hug3[hug6];
35889
35890                                         hug5++;
35891                                         hug6++;
35892                                         continue;
35893                                 }
35894
35895                                 if(hug7 > 0){
35896                                         hug2.splice(hug5, 0, hug3[hug6++]);
35897                                         continue;
35898                                 }
35899
35900                                 hug5++;
35901                         }
35902
35903                         if(hug6 < hug3.length) hug2.push.apply(hug2, hug3.slice(hug6));
35904                 }
35905
35906                 public static function fold(hug1:Function, hug2:*, hug3:Array):*
35907                 {       //dispID:6, MethodID:4101, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 49
35908                         var hug4:* = undefined;
35909
35910                         for each(hug4 in hug3){
35911                                 hug2 = hug1(hug2, hug4);
35912                         }
35913
35914                         return hug2;
35915                 }
35916
35917                 public static function copy(hug1:Array, hug2:Array, hug3:uint=0, hug4:uint=0, hug5:int=-1):void
35918                 {       //dispID:7, MethodID:4102, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 64
35919                         if(hug5 < 0) hug5 = (hug1.length - hug3);
35920
35921                         while(0 < (hug5--)){
35922                                 var hug6:Number = (hug3++);
35923                                 hug1[hug6] = hug2[hug4++];
35924                         }
35925                 }
35926
35927                 public static function zip(hug1:Function, ...rest):void
35928                 {       //dispID:8, MethodID:4103, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 100
35929                         var hug4:Array = null;
35930                         var hug5:Array = null;
35931                         var hug3:uint = 0;
35932
35933                         while(true){
35934                                 hug4 = [];
35935
35936                                 for each(hug5 in rest){
35937                                         if(hug3 >= hug5.length) return;
35938                                         hug4.push(hug5[hug3]);
35939                                 }
35940
35941                                 hug1.apply(null, hug4);
35942
35943                                 hug3++;
35944                         }
35945                 }
35946
35947                 //constructor
35948                 public function ArrayUtils()
35949                 {       //MethodID:4104, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
35950                         super();
35951                 }
35952         }
35953 }
35954
35955 //■script264■
35956
35957 package jp.nicovideo.nicoplayer.config{
35958
35959
35960         public const nico_config:* = "jp.nicovideo.nicoplayer.config:nico_config";//slotID:1
35961
35962 }
35963
35964 //■script265■
35965
35966 package jp.nicovideo.nicoplayer.views.comment{
35967
35968         //■class(instance)_index:322
35969         public interface ISlot
35970         {
35971                 //static constructor
35972                 public static function ISlot$cinit()
35973                 {       //MethodID:4107, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
35974                 }
35975
35976                 //variables/etc.
35977                 function get vpos():Number;                                                 //MethodID:4108, dispID:0
35978
35979                 function get vend():Number;                                                 //MethodID:4109, dispID:0
35980
35981                 function get y():Number;                                                    //MethodID:4110, dispID:0
35982
35983                 function get width():Number;                                                //MethodID:4111, dispID:0
35984
35985                 function get height():Number;                                               //MethodID:4112, dispID:0
35986
35987                 function get type():String;                                                 //MethodID:4113, dispID:0
35988
35989                 function get isFullWidth():Boolean;                                         //MethodID:4114, dispID:0
35990
35991                 //constructor
35992                 public function ISlot();                                                    //MethodID:4115, dispID:0
35993         }
35994 }
35995
35996 //■script266■
35997
35998 package jp.nicovideo.nicoplayer.views.comment{
35999
36000         import flash.display.DisplayObject
36001         import flash.utils.Dictionary
36002         import jp.nicovideo.nicoplayer.models.comment.CommandConstants
36003         import jp.nicovideo.nicoplayer.views.VideoLayerConstants
36004         import jp.nicovideo.util.Assert
36005         import jp.nicovideo.util.ObjectUtils
36006
36007         //■class(instance)_index:323
36008         public class CommentSlotList extends Object
36009         {
36010                 //static constructor
36011                 public static function CommentSlotList$cinit()
36012                 {       //MethodID:4117, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
36013                 }
36014
36015                 //constructor
36016                 public function CommentSlotList(hug1:CommentPositioner, hug2:Number)
36017                 {       //MethodID:4118, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 78
36018                         this.__slots = [];
36019                         this.__original = new Dictionary();
36020                         this.__sortedEntries = [];
36021
36022                         super();
36023
36024                         this.__positioner = hug1;
36025                         this.__originalVideoLength = this.__videoLength = hug2;
36026                         var hug3:int = 0;
36027
36028                         while(hug3 < this.__COMMENT_SLOT_LIMIT){
36029                                 this.__slots.push(null);
36030
36031                                 hug3++;
36032                         }
36033                 }
36034
36035                 //variables/etc.
36036                 private const __COMMENT_SLOT_LIMIT:uint = 40;                   //slotID:0
36037                 private var __slots:Array;                                      //slotID:0
36038                 private var __nextIndex:uint = 0;                               //slotID:0
36039                 private var __original:Dictionary;                              //slotID:0
36040                 private var __sortedEntries:Array;                              //slotID:0
36041                 private var __positioner:CommentPositioner;                     //slotID:0
36042                 private var __reverse:Boolean = false;                          //slotID:0
36043                 private var __videoLength:Number;                               //slotID:0
36044                 private var __originalVideoLength:Number;                       //slotID:0
36045                 private var __hasSponsor:Boolean;                               //slotID:0
36046
36047                 public function get isReverseMode():Boolean
36048                 {       //MethodID:4119, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
36049                         return this.__reverse;
36050                 }
36051
36052                 public function set isReverseMode(hug1:Boolean):void
36053                 {       //MethodID:4120, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
36054                         this.__reverse = hug1;
36055                 }
36056
36057                 public function update(hug1:Array, hug2:Array, hug3:Boolean):void
36058                 {       //MethodID:4121, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 158
36059                         var hug4:ViewEntry = null;
36060
36061                         if(((!hug1 || (hug1.length == 0)) && (!hug2 || (hug2.length == 0))) && !hug3) return;
36062
36063                         if(this.__videoLength != (-1)){
36064                                 this.__update_0(hug1, hug2, hug3);
36065
36066                                 return;
36067                         }
36068
36069                         Assert.assert((hug2 == null) && (hug3 == false));
36070
36071                         for each(hug4 in hug1){
36072                                 this.__sortedEntries.push(new _SlotEntry(hug4, this.__videoLength));
36073                         }
36074
36075                         this.__sortEntries();
36076                 }
36077
36078                 public function updateVideoLength(hug1:Number, hug2:Boolean=false):void
36079                 {       //MethodID:4122, LocalCount= 7 , MaxScope= 1, MaxStack= 4, CodeLength= 77
36080                         var hug4:* = undefined;
36081                         this.__videoLength = hug1;
36082
36083                         if(hug2) this.__hasSponsor = true;
36084
36085                         var hug3:Array = [];
36086
36087                         for(hug4 in this.__original){
36088                                 hug3.push(hug4);
36089                         }
36090
36091                         this.__update_0(hug3, null, true);
36092                 }
36093
36094                 private function _clear():void
36095                 {       //MethodID:4123, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 64
36096                         var hug1:int = 0;
36097
36098                         while(hug1 < this.__slots.length){
36099                                 if(this.__slots[hug1]){
36100                                         this.__slots[hug1].release();
36101
36102                                         this.__slots[hug1] = null;
36103                                 }
36104
36105                                 hug1++;
36106                         }
36107
36108                         this.__nextIndex = 0;
36109                 }
36110
36111                 public function refresh(hug1:Number, hug2:Boolean):void
36112                 {       //MethodID:4124, LocalCount= 12 , MaxScope= 1, MaxStack= 4, CodeLength= 670
36113                         var hug3:_SlotEntry = null;
36114                         var hug5:int = 0;
36115                         var hug6:Number = NaN;
36116                         var hug7:DisplayObject = null;
36117                         var hug8:int = 0;
36118                         var hug9:int = 0;
36119                         var hug10:int = 0;
36120
36121                         if(hug2){
36122                                 this._clear();
36123                         }else{
36124                                 hug5 = 0;
36125
36126                                 while(hug5 < this.__slots.length){
36127                                         hug3 = this.__slots[hug5];
36128
36129                                         if(hug3){
36130                                                 hug6 = ((CommandConstants.PLACE_MIDDLE == hug3.type) ? 1000 : 0);
36131
36132                                                 if((hug3.vpos > (hug1 + hug6)) || ((hug3.vend + hug6) <= hug1)){
36133                                                         hug3.release();
36134
36135                                                         this.__slots[hug5] = null;
36136                                                 }
36137                                         }
36138
36139                                         hug5++;
36140                                 }
36141                         }
36142
36143                         var hug4:int = this.__nextIndex;
36144
36145                         while(hug4 < this.__sortedEntries.length){
36146                                 hug3 = this.__sortedEntries[hug4];
36147
36148                                 if(!isNaN(hug3.vend)){
36149                                         hug6 = ((CommandConstants.PLACE_MIDDLE == hug3.type) ? 1000 : 0);
36150
36151                                         if(((hug3.vend + hug6) < hug1) || (!this.__hasSponsor && hug3.forSponsorVideo)){
36152                                                 hug4++;
36153                                                 continue;
36154                                         }
36155
36156                                         if(hug3.vpos > (hug1 + hug6)) break;
36157                                 }
36158
36159                                 hug7 = hug3.viewEntry.provider.create();
36160
36161                                 if(!hug7){
36162                                 }else{
36163                                         hug3.displayObject = hug7;
36164                                         var hug11:int = 1;
36165                                         hug7.scaleY = hug11;
36166                                         hug7.scaleX = hug11;
36167
36168                                         if(hug7.height > (VideoLayerConstants.VIDEO_LAYER_SD_HEIGHT / 3)){
36169                                                 var hug11:Number = 0.5;
36170                                                 hug7.scaleY = hug11;
36171                                                 hug7.scaleX = hug11;
36172                                         }
36173
36174                                         if(hug3.type != CommandConstants.PLACE_MIDDLE){
36175                                                 hug10 = (hug3.isFullWidth ? VideoLayerConstants.VIDEO_LAYER_HD_WIDTH : VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
36176
36177                                                 if(hug7.width > hug10){
36178                                                         var hug11:Number = (hug10 / hug7.width);
36179                                                         hug7.scaleY = hug11;
36180                                                         hug7.scaleX = hug11;
36181                                                 }
36182                                         }
36183
36184                                         hug8 = 0;
36185                                         hug9 = 0;
36186
36187                                         while(hug9 < this.__slots.length){
36188                                                 if(this.__slots[hug9]){
36189                                                         if(this.__slots[hug9].vend < this.__slots[hug8].vend) hug8 = hug9;
36190                                                 }else{
36191                                                         hug8 = hug9;
36192                                                         break;
36193                                                 }
36194
36195                                                 hug9++;
36196                                         }
36197
36198                                         if(this.__slots[hug8]){
36199                                                 this.__slots[hug8].release();
36200
36201                                                 this.__slots[hug8] = null;
36202                                         }
36203
36204                                         this.__slots[hug8] = hug3;
36205
36206                                         hug3.viewEntry.provider.assignZ(hug7, hug8);
36207
36208                                         hug7.y = this.__positioner.getY(hug8, this.__slots);
36209
36210                                         this.__setX(hug3, hug1);
36211                                 }
36212
36213                                 hug4++;
36214                         }
36215
36216                         if(this.__videoLength == (-1)){
36217                                 this.__sortedEntries.splice(0, hug4);
36218                         }else{
36219                                 this.__nextIndex = hug4;
36220                         }
36221                 }
36222
36223                 public function move(hug1:Number):void
36224                 {       //MethodID:4125, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 54
36225                         var hug2:_SlotEntry = null;
36226
36227                         for each(hug2 in this.__slots){
36228                                 if(hug2) this.__setX(hug2, hug1);
36229                         }
36230                 }
36231
36232                 private function __update_0(hug1:Array, hug2:Array, hug3:Boolean):void
36233                 {       //MethodID:4126, LocalCount= 9 , MaxScope= 1, MaxStack= 7, CodeLength= 230
36234                         var hug4:ViewEntry = null;
36235                         var hug5:_SlotEntry = null;
36236                         var hug6:ViewEntry = null;
36237
36238                         if(hug3){
36239                                 this.__original = new Dictionary();
36240                         }else if(hug2 && (hug2.length != 0)){
36241                                 for each(hug4 in hug2){
36242                                         hug5 = this.__original[hug4];
36243
36244                                         hug5.release();
36245                                         delete this.__original[hug4];
36246                                 }
36247                         }
36248
36249                         if(hug1 && (hug1.length != 0)){
36250                                 for each(hug6 in hug1){
36251                                         this.__original[hug6] = new _SlotEntry(hug6, this.__videoLength, (hug6.vpos > this.__originalVideoLength));
36252                                 }
36253                         }
36254
36255                         this.__sortedEntries = ObjectUtils.values(this.__original);
36256
36257                         this.__sortEntries();
36258                 }
36259
36260                 private function __sortEntries():void
36261                 {       //MethodID:4128, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 18
36262                         this.__sortedEntries.sort(function(hug1:_SlotEntry, hug2:_SlotEntry):Number{    //MethodID:4127, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 7
36263                                 return hug1.compare(hug2);
36264                         });
36265                 }
36266
36267                 private function __setX(hug1:_SlotEntry, hug2:Number):void
36268                 {       //MethodID:4129, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 65
36269                         var hug3:Number = this.__positioner.getX(hug1, hug2);
36270
36271                         if(this.__reverse && (hug1.type == CommandConstants.PLACE_MIDDLE)) hug3 = (-hug3 - hug1.width + VideoLayerConstants.VIDEO_LAYER_SD_WIDTH);
36272
36273                         hug1.displayObject.x = hug3;
36274                 }
36275         }
36276 }
36277
36278 import flash.display.DisplayObject
36279 import jp.nicovideo.nicoplayer.views.comment.ViewEntry
36280
36281 //■class(instance)_index:324
36282 //private
36283 class _SlotEntry extends Object implements ISlot
36284 {
36285         //static constructor
36286         public static function _SlotEntry$cinit()
36287         {       //MethodID:4130, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
36288         }
36289
36290         //constructor
36291         public function _SlotEntry(hug1:ViewEntry, hug2:Number, hug3:Boolean=false):void
36292         {       //MethodID:4131, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 81
36293                 super();
36294
36295                 this.viewEntry = hug1;
36296                 this.__vstart = hug1.vpos;
36297                 this.__vend = hug1.vend;
36298                 this.__forSponsorVideo = hug3;
36299
36300                 if(hug2 == (-1)) return;
36301
36302                 var hug4:Number = (this.__vend - hug2);
36303
36304                 if(hug4 > 0){
36305                         this.__vstart = Math.max((this.__vstart - hug4), 0);
36306                         this.__vend = hug2;
36307                 }
36308         }
36309
36310         //variables/etc.
36311         public var viewEntry:ViewEntry;                                 //slotID:0
36312         public var displayObject:DisplayObject;                         //slotID:0
36313         private var __vstart:Number;                                    //slotID:0
36314         private var __vend:Number;                                      //slotID:0
36315         private var __forSponsorVideo:Boolean;                          //slotID:0
36316
36317         public function release():void
36318         {       //MethodID:4132, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 31
36319                 if(this.displayObject){
36320                         this.viewEntry.provider.release(this.displayObject);
36321
36322                         this.displayObject = null;
36323                 }
36324         }
36325
36326         public function compare(hug1:_SlotEntry):Number
36327         {       //MethodID:4133, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
36328                 return ((this.viewEntry.vpos - hug1.viewEntry.vpos) || (this.viewEntry.order - hug1.viewEntry.order));
36329         }
36330
36331         public function get forSponsorVideo():Boolean
36332         {       //MethodID:4134, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
36333                 return this.__forSponsorVideo;
36334         }
36335
36336         public function get vpos():Number
36337         {       //MethodID:4135, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
36338                 return this.__vstart;
36339         }
36340
36341         public function get vend():Number
36342         {       //MethodID:4136, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
36343                 return this.__vend;
36344         }
36345
36346         public function get y():Number
36347         {       //MethodID:4137, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
36348                 return this.displayObject.y;
36349         }
36350
36351         public function get width():Number
36352         {       //MethodID:4138, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
36353                 return this.displayObject.width;
36354         }
36355
36356         public function get height():Number
36357         {       //MethodID:4139, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
36358                 return this.displayObject.height;
36359         }
36360
36361         public function get type():String
36362         {       //MethodID:4140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
36363                 return this.viewEntry.type;
36364         }
36365
36366         public function get isFullWidth():Boolean
36367         {       //MethodID:4141, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
36368                 return this.viewEntry.isFullWidth;
36369         }
36370 }
36371
36372 //■script267■
36373
36374 package jp.nicovideo.nicoplayer.views.comment{
36375
36376         import jp.nicovideo.nicoplayer.models.comment.CommandConstants
36377
36378         //■class(instance)_index:325
36379         public class CommentPositioner extends Object
36380         {
36381                 //static constructor
36382                 public static function CommentPositioner$cinit()
36383                 {       //MethodID:4143, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
36384                 }
36385
36386                 //constructor
36387                 public function CommentPositioner(hug1:Number, hug2:Number)
36388                 {       //MethodID:4144, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
36389                         super();
36390
36391                         this._layerWidth = hug1;
36392                         this._layerHeight = hug2;
36393                 }
36394
36395                 //variables/etc.
36396                 private var _layerWidth:Number;                                 //slotID:0
36397                 private var _layerHeight:Number;                                //slotID:0
36398
36399                 public function getX(hug1:ISlot, hug2:Number):Number
36400                 {       //MethodID:4145, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 69
36401                         if(hug1.type != CommandConstants.PLACE_MIDDLE) return ((this._layerWidth - hug1.width) / 2);
36402
36403                         var hug3:Number = (hug2 - hug1.vpos);
36404                         var hug4:Number = ((this._layerWidth + hug1.width) / (hug1.vend - hug1.vpos));
36405                         return (this._layerWidth - (hug3 * hug4));
36406                 }
36407
36408                 public function getY(hug1:uint, hug2:Array):Number
36409                 {       //MethodID:4146, LocalCount= 14 , MaxScope= 1, MaxStack= 3, CodeLength= 486
36410                         var hug5:Boolean = false;
36411                         var hug6:uint = 0;
36412                         var hug7:ISlot = null;
36413                         var hug8:Number = NaN;
36414                         var hug9:Number = NaN;
36415                         var hug10:Number = NaN;
36416                         var hug11:Number = NaN;
36417                         var hug12:Number = NaN;
36418                         var hug13:Number = NaN;
36419                         var hug3:ISlot = hug2[hug1];
36420                         var hug4:Number = 0;
36421
36422                         if(hug3.type == CommandConstants.PLACE_BOTTOM) hug4 = (this._layerHeight - hug3.height);
36423
36424                         do{
36425                                 hug5 = false;
36426                                 hug6 = 0;
36427
36428                                 while(hug6 < hug2.length){
36429                                         hug7 = hug2[hug6];
36430
36431                                         if(!hug7 || (hug7 === hug3)){
36432                                         }else if(hug3.type != hug7.type){
36433                                         }else if((hug7.y + hug7.height) <= hug4){
36434                                         }else if((hug4 + hug3.height) <= hug7.y){
36435                                         }else{
36436                                                 hug8 = Math.max(hug3.vpos, hug7.vpos);
36437                                                 hug9 = Math.min(hug3.vend, hug7.vend);
36438                                                 hug10 = this.getX(hug3, hug8);
36439                                                 hug11 = this.getX(hug3, hug9);
36440                                                 hug12 = this.getX(hug7, hug8);
36441                                                 hug13 = this.getX(hug7, hug9);
36442
36443                                                 if(((hug10 <= (hug12 + hug7.width)) && (hug12 <= (hug10 + hug3.width))) || ((hug11 <= (hug13 + hug7.width)) && (hug13 <= (hug11 + hug3.width)))){
36444                                                         if(hug3.type == CommandConstants.PLACE_BOTTOM){
36445                                                                 hug4 = (hug7.y - hug3.height - 1);
36446
36447                                                                 if(hug4 < 0){
36448                                                                         hug4 = (Math.random() * (this._layerHeight - hug3.height));
36449                                                                         break;
36450                                                                 }
36451                                                         }else{
36452                                                                 hug4 = (hug7.y + hug7.height + 1);
36453
36454                                                                 if((hug4 + Math.floor(hug3.height)) > this._layerHeight){
36455                                                                         hug4 = (Math.random() * (this._layerHeight - hug3.height));
36456                                                                         break;
36457                                                                 }
36458                                                         }
36459
36460                                                         hug5 = true;
36461                                                         break;
36462                                                 }
36463                                         }
36464
36465                                         hug6++;
36466                                 }
36467
36468                         }while(hug5);
36469
36470                         return hug4;
36471                 }
36472         }
36473 }
36474
36475 //■script268■
36476
36477 package jp.nicovideo.nicoplayer.models.filter{
36478
36479         //■class(instance)_index:326
36480         public class NGStatus extends Object
36481         {
36482                 //static constructor
36483                 public static function NGStatus$cinit()
36484                 {       //MethodID:4148, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
36485                         NONE = 0;
36486                         INVISIBLE = 1;
36487                         REJECT_COMMAND = 2;
36488                 }
36489
36490                 //static variables/etc.
36491                 public static const NONE:uint = 0;                              //slotID:1
36492                 public static const INVISIBLE:uint = 1;                         //slotID:2
36493                 public static const REJECT_COMMAND:uint = 2;                    //slotID:3
36494
36495                 //constructor
36496                 public function NGStatus()
36497                 {       //MethodID:4149, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
36498                         super();
36499                 }
36500         }
36501 }
36502
36503 //■script269■
36504
36505 package jp.nicovideo.nicoplayer.models.filter{
36506
36507         //■class(instance)_index:327
36508         public class ReplacerConstants extends Object
36509         {
36510                 //static constructor
36511                 public static function ReplacerConstants$cinit()
36512                 {       //MethodID:4151, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 46
36513                         MAX_COUNT = 20;
36514                         WHOLE_REPLACE_PREFIX = "*";
36515                         WHOLE_REPLACE_REGEXP = new RegExp("^\*");
36516                         CHECK_ORIGINAL_VARS_REGEXP = new RegExp("(\*?)(.+)");
36517                 }
36518
36519                 //static variables/etc.
36520                 public static const MAX_COUNT:uint = 20;                        //slotID:1
36521                 public static const WHOLE_REPLACE_PREFIX:String = "*";          //slotID:2
36522                 public static const WHOLE_REPLACE_REGEXP:RegExp;                //slotID:3
36523                 public static const CHECK_ORIGINAL_VARS_REGEXP:RegExp;          //slotID:4
36524
36525                 //constructor
36526                 public function ReplacerConstants()
36527                 {       //MethodID:4152, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
36528                         super();
36529                 }
36530         }
36531 }
36532
36533 //■script270■
36534 //skip components :com.adobe.crypto
36535 //as filename :SHA1.as
36536
36537 //■script271■
36538
36539 package jp.nicovideo.nicoplayer.models.comment{
36540
36541         //■class(instance)_index:329
36542         public class CommentDeleteStatus extends Object
36543         {
36544                 //static constructor
36545                 public static function CommentDeleteStatus$cinit()
36546                 {       //MethodID:4165, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
36547                         NON = 0;
36548                         OWNER = 1;
36549                         OFFICIAL = 2;
36550                 }
36551
36552                 //static variables/etc.
36553                 public static const NON:int = 0;                                //slotID:1
36554                 public static const OWNER:int = 1;                              //slotID:2
36555                 public static const OFFICIAL:int = 2;                           //slotID:3
36556
36557                 //constructor
36558                 public function CommentDeleteStatus()
36559                 {       //MethodID:4166, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
36560                         super();
36561                 }
36562         }
36563 }
36564
36565 //■script272■
36566
36567 package jp.nicovideo.nicoplayer.models.log.elements{
36568
36569         import __AS3__.vec.Vector
36570
36571         //■class(instance)_index:330
36572         public interface ILogElement implements IEventDispatcher
36573         {
36574                 //static constructor
36575                 public static function ILogElement$cinit()
36576                 {       //MethodID:4168, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
36577                 }
36578
36579                 //variables/etc.
36580                 function clearLocalStorage(hug1:Boolean=true):void;                         //MethodID:4169, dispID:0
36581
36582                 function reset(hug1:Function=null):void;                                    //MethodID:4170, dispID:0
36583
36584                 function addData(hug1:Object):void;                                         //MethodID:4171, dispID:0
36585
36586                 function updateData(hug1:Object, hug2:uint):void;                           //MethodID:4172, dispID:0
36587
36588                 function onLogSent():void;                                                  //MethodID:4173, dispID:0
36589
36590                 function get name():String;                                                 //MethodID:4174, dispID:0
36591
36592                 function get isInitialized():Boolean;                                       //MethodID:4175, dispID:0
36593
36594                 function get sendType():String;                                             //MethodID:4176, dispID:0
36595
36596                 function get isSendable():Boolean;                                          //MethodID:4177, dispID:0
36597
36598                 function set isSendable(hug1:Boolean):void;                                 //MethodID:4178, dispID:0
36599
36600                 function get isExpired():Boolean;                                           //MethodID:4179, dispID:0
36601
36602                 function get logObjects():Vector.<Object>;                                  //MethodID:4180, dispID:0
36603
36604                 //constructor
36605                 public function ILogElement();                                              //MethodID:4181, dispID:0
36606         }
36607 }
36608
36609 //■script273■
36610
36611 package jp.nicovideo.nicoplayer.models.log{
36612
36613         //■class(instance)_index:331
36614         public interface ILogEventObservable
36615         {
36616                 //static constructor
36617                 public static function ILogEventObservable$cinit()
36618                 {       //MethodID:4183, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
36619                 }
36620
36621                 //variables/etc.
36622                 function onWatchReloaded(hug1:String, hug2:Boolean):void;                   //MethodID:4184, dispID:0
36623
36624                 function onVideoLoadStarted():void;                                         //MethodID:4185, dispID:0
36625
36626                 function onVideoLoadCompleted(hug1:uint):void;                              //MethodID:4186, dispID:0
36627
36628                 function onVideoLoadErrorOccurred():void;                                   //MethodID:4187, dispID:0
36629
36630                 function onVideoBufferingStarted():void;                                    //MethodID:4188, dispID:0
36631
36632                 function storeLoadingIdle(hug1:uint):void;                                  //MethodID:4189, dispID:0
36633
36634                 function onThreadLoadStarted():void;                                        //MethodID:4190, dispID:0
36635
36636                 function onThreadLoadCompleted(hug1:Boolean):void;                          //MethodID:4191, dispID:0
36637
36638                 function onNGCommentInitialized(hug1:int, hug2:int):void;                   //MethodID:4192, dispID:0
36639
36640                 function onHirobaInitializeStarted():void;                                  //MethodID:4193, dispID:0
36641
36642                 function onHirobaInitializeAborted():void;                                  //MethodID:4194, dispID:0
36643
36644                 function onHirobaConnected(hug1:Boolean, hug2:String, hug3:String, hug4:String):void;//MethodID:4195, dispID:0
36645
36646                 function onHirobaDisconnected(hug1:String, hug2:String, hug3:String):void;  //MethodID:4196, dispID:0
36647
36648                 function onPremleadOnSliderDisplayed():void;                                //MethodID:4197, dispID:0
36649
36650                 function onPremleadOnSliderClicked():void;                                  //MethodID:4198, dispID:0
36651
36652                 function onVideoMenuOpened(hug1:String):void;                               //MethodID:4199, dispID:0
36653
36654                 function onVideoenderOpened(hug1:String):void;                              //MethodID:4200, dispID:0
36655
36656                 function onVideoenderContentDisplayed(hug1:String):void;                    //MethodID:4201, dispID:0
36657
36658                 function onVideoenderContentUsed(hug1:String):void;                         //MethodID:4202, dispID:0
36659
36660                 function onVideoenderErrorOccured(hug1:String):void;                        //MethodID:4203, dispID:0
36661
36662                 //constructor
36663                 public function ILogEventObservable();                                      //MethodID:4204, dispID:0
36664         }
36665 }
36666
36667 //■script274■
36668
36669 package jp.nicovideo.nicoplayer.models.log.elements{
36670
36671         import flash.display.Sprite
36672         import flash.events.Event
36673         import flash.events.EventDispatcher
36674         import flash.events.IOErrorEvent
36675         import flash.events.KeyboardEvent
36676         import flash.events.MouseEvent
36677         import flash.events.TimerEvent
36678         import flash.net.SharedObject
36679         import flash.net.URLLoader
36680         import flash.net.URLRequest
36681         import flash.net.URLRequestMethod
36682         import flash.net.URLVariables
36683         import flash.utils.Timer
36684         import jp.nicovideo.nicoplayer.config.DebugMode
36685         import jp.nicovideo.nicoplayer.config.getDebugMode
36686         import jp.nicovideo.nicoplayer.models.api.IInitializeInfo
36687         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
36688         import jp.nicovideo.nicoplayer.models.video.VideoPlayerStatus
36689         import jp.nicovideo.nicoplayer.models.video.VideoWrapper
36690         import jp.nicovideo.util.CrossSharedObject
36691         import jp.nicovideo.util.TimeUtils
36692
36693         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
36694
36695         //■class(instance)_index:332
36696         public class Playlen extends EventDispatcher
36697         {
36698                 //static constructor
36699                 public static function Playlen$cinit()
36700                 {       //MethodID:4206, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
36701                 }
36702
36703                 //constructor
36704                 public function Playlen()
36705                 {       //MethodID:4207, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 122
36706                         this.DEBUG = (getDebugMode() == DebugMode.DEV);
36707                         this.PLAYLEN_INTERVAL = (this.DEBUG ? 8000 : 30000);
36708                         this.PLAYLEN_THRESHOLD = (this.DEBUG ? 20000 : 0x1B7740);
36709                         this.PLAYLEN_MAX = (this.DEBUG ? (1000 * 60 * 1) : (1000 * 60 * 60 * 2));
36710
36711                         super();
36712
36713                         this._SO = CrossSharedObject.getSharedObject("jp.nicovideo.nicoplayer.models.api.playlen");
36714                 }
36715
36716                 //variables/etc.
36717                 private var DEBUG:Boolean;                                      //slotID:0
36718                 private const PLAYLEN_INTERVAL:int;                             //slotID:0
36719                 private const PLAYLEN_THRESHOLD:int;                            //slotID:0
36720                 private const PLAYLEN_MAX:int;                                  //slotID:0
36721                 private var _started:Boolean = false;                           //slotID:0
36722                 private var _rate:Timer;                                        //slotID:0
36723                 private var _initializeInfo:IInitializeInfo;                    //slotID:0
36724                 private var _vars:NicoFlashVars;                                //slotID:0
36725                 private var _video:VideoWrapper;                                //slotID:0
36726                 private var _url:String;                                        //slotID:0
36727                 private var _isThumbWatch:Boolean;                              //slotID:0
36728                 private var _result:URLVariables;                               //slotID:0
36729                 private var _SO:SharedObject;                                   //slotID:0
36730                 private var _isSend:Boolean = false;                            //slotID:0
36731                 private var _root:Sprite;                                       //slotID:0
36732                 private var _lastActionTime:Number;                             //slotID:0
36733                 private var _lastVideoStopTime:Number;                          //slotID:0
36734
36735                 private function start():void
36736                 {       //MethodID:4208, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 221
36737                         if(!this._started) this._lastVideoStopTime = TimeUtils.time;
36738
36739                         this._started = true;
36740
36741                         if(!this._rate.running){
36742                                 this._rate.start();
36743
36744                                 if(isNaN(this._lastActionTime)) this._lastActionTime = TimeUtils.time;
36745
36746                                 this._SO.data.time.s = TimeUtils.time;
36747                                 this._SO.data.time.v = this._vars.originalVideoID;
36748
36749                                 if(this._vars.isChannel && this._vars.isCommunityThread){
36750                                         this._SO.data.time.is_channel = "1";
36751                                 }else if(this._vars.isCommunityThread){
36752                                         this._SO.data.time.is_community = "1";
36753                                 }else if(this._vars.isChannel){
36754                                         this._SO.data.time.is_channel = "1";
36755                                 }
36756
36757                                 this._SO.flush();
36758                         }
36759                 }
36760
36761                 private function setPlaylen(hug1:Event):void
36762                 {       //MethodID:4210, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 309
36763                         internal var event:Event;                                       //slotID:1
36764                         internal var isEndPlaylen:Boolean;                              //slotID:2
36765                         internal var send:Function;                                     //slotID:3
36766
36767                         event = hug1;
36768                         send = function(hug1:Number):void{      //MethodID:4209, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 28
36769                                 _SO.data.time.e = hug1;
36770
36771                                 _SO.flush();
36772                                 sendToAPI();
36773                         };
36774
36775                         if(this._isThumbWatch){
36776                                 this._rate.stop();
36777                                 this._rate.removeEventListener(TimerEvent.TIMER, this.setPlaylen);
36778
36779                                 return;
36780                         }
36781
36782                         if(!this._initializeInfo.userID || ((Number(this._initializeInfo.userID) % 10) != 1)){
36783                                 if(!this.DEBUG){
36784                                         this._rate.stop();
36785                                         this._rate.removeEventListener(TimerEvent.TIMER, this.setPlaylen);
36786
36787                                         return;
36788                                 }
36789                         }
36790
36791                         isEndPlaylen = false;
36792
36793                         if(this._video.videoPlayerStatus == VideoPlayerStatus.PLAYING){
36794                                 if(this.PLAYLEN_MAX < (TimeUtils.time - this._lastActionTime)){
36795                                         isEndPlaylen = true;
36796
36797                                         send(TimeUtils.time);
36798
36799                                         return;
36800                                 }
36801                         }else{
36802                                 if(isNaN(this._lastVideoStopTime)) this._lastVideoStopTime = TimeUtils.time;
36803
36804                                 if(this.PLAYLEN_THRESHOLD < (TimeUtils.time - this._lastActionTime)){
36805                                         isEndPlaylen = true;
36806
36807                                         send((this._lastVideoStopTime > this._lastActionTime) ? this._lastVideoStopTime : this._lastActionTime);
36808
36809                                         return;
36810                                 }else{
36811                                         return;
36812                                 }
36813                         }
36814
36815                         this._SO.data.time.e = TimeUtils.time;
36816
36817                         this._SO.flush();
36818                 }
36819
36820                 private function sendToAPI():void
36821                 {       //MethodID:4214, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 451
36822                         internal var reset:Function;                                    //slotID:1
36823                         internal var vari:URLVariables;                                 //slotID:2
36824                         internal var req:URLRequest;                                    //slotID:3
36825                         internal var loader:URLLoader;                                  //slotID:4
36826
36827                         vari = null;
36828                         req = null;
36829                         loader = null;
36830                         reset = function():void{        //MethodID:4211, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 19
36831                                 _SO.data.time = {};
36832
36833                                 _SO.flush();
36834                         };
36835
36836                         if(this._SO.data.time == undefined) this._SO.data.time = {};
36837
36838                         if(this._SO.data.time.s && this._SO.data.time.e && this._SO.data.time.v){
36839                                 if((this._SO.data.time.e - this._SO.data.time.s) < this.PLAYLEN_INTERVAL){
36840                                         this._SO.data.time.e = undefined;
36841
36842                                         this._SO.flush();
36843
36844                                         return;
36845                                 }
36846
36847                                 if(this._rate) this._rate.stop();
36848
36849                                 vari = new URLVariables();
36850                                 req = new URLRequest(this._url);
36851                                 req.method = URLRequestMethod.POST;
36852                                 vari.s = Math.floor(this._SO.data.time.s / 1000);
36853                                 vari.e = Math.floor(this._SO.data.time.e / 1000);
36854                                 vari.v = this._SO.data.time.v;
36855
36856                                 if(this._SO.data.time.is_channel == "1") vari.is_channel = "1";
36857
36858                                 if(this._SO.data.time.is_community == "1") vari.is_community = "1";
36859
36860                                 req.data = vari;
36861                                 loader = new URLLoader();
36862
36863                                 loader.addEventListener(Event.COMPLETE, function(hug1:Event):void{      //MethodID:4212, LocalCount= 4 , MaxScope= 3, MaxStack= 3, CodeLength= 75
36864                                         internal var event:Event;                                       //slotID:1
36865
36866                                         event = hug1;
36867
36868                                         try{
36869                                                 _result = new URLVariables(event.target.data);
36870                                         }
36871                                         catch(e:Error){
36872                                                 _result = null;
36873                                         }
36874
36875                                         reset();
36876                                         dispatchEvent(event);
36877                                 });
36878                                 loader.addEventListener(IOErrorEvent.IO_ERROR, function(hug1:Event):void{       //MethodID:4213, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 9
36879                                         reset();
36880                                 });
36881                                 loader.load(req);
36882                         }
36883                 }
36884
36885                 public function onLoadVideo():void
36886                 {       //MethodID:4215, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
36887                         this.start();
36888                 }
36889
36890                 public function onVideoEnded():void
36891                 {       //MethodID:4216, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
36892                         this._lastVideoStopTime = TimeUtils.time;
36893                 }
36894
36895                 public function onVideoStopped():void
36896                 {       //MethodID:4217, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
36897                         this._lastVideoStopTime = TimeUtils.time;
36898                 }
36899
36900                 public function onVideoPlayed():void
36901                 {       //MethodID:4218, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 10
36902                         this._lastVideoStopTime = NaN;
36903                 }
36904
36905                 public function initialize(hug1:String, hug2:VideoWrapper, hug3:NicoFlashVars, hug4:IInitializeInfo, hug5:Boolean, hug6:Sprite):void
36906                 {       //MethodID:4221, LocalCount= 8 , MaxScope= 2, MaxStack= 3, CodeLength= 219
36907                         internal var url:String;                                        //slotID:1
36908                         internal var video:VideoWrapper;                                //slotID:2
36909                         internal var vars:NicoFlashVars;                                //slotID:3
36910                         internal var initializeInfo:IInitializeInfo;                    //slotID:4
36911                         internal var isThumbWatch:Boolean;                              //slotID:5
36912                         internal var root:Sprite;                                       //slotID:6
36913
36914                         url = hug1;
36915                         video = hug2;
36916                         vars = hug3;
36917                         initializeInfo = hug4;
36918                         isThumbWatch = hug5;
36919                         root = hug6;
36920                         this._video = VideoWrapper(video);
36921                         this._vars = vars;
36922                         this._initializeInfo = initializeInfo;
36923                         this._url = url;
36924                         this._isThumbWatch = isThumbWatch;
36925
36926                         if(!this._root && root){
36927                                 this._root = root;
36928
36929                                 this._root.addEventListener(MouseEvent.MOUSE_MOVE, function(hug1:MouseEvent):void{      //MethodID:4219, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 41
36930                                         _lastActionTime = TimeUtils.time;
36931
36932                                         if(!_rate.running && _started) start();
36933                                 });
36934                                 this._root.addEventListener(KeyboardEvent.KEY_UP, function(hug1:KeyboardEvent):void{    //MethodID:4220, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 41
36935                                         _lastActionTime = TimeUtils.time;
36936
36937                                         if(!_rate.running && _started) start();
36938                                 });
36939                         }
36940
36941                         this.sendToAPI();
36942
36943                         if(!this._rate){
36944                                 this._rate = new Timer(this.PLAYLEN_INTERVAL);
36945
36946                                 this._rate.addEventListener(TimerEvent.TIMER, this.setPlaylen);
36947                         }else{
36948                                 this._rate.stop();
36949                                 this._rate.addEventListener(TimerEvent.TIMER, this.setPlaylen);
36950                         }
36951                 }
36952
36953                 public function get result():URLVariables
36954                 {       //MethodID:4222, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
36955                         return this._result;
36956                 }
36957
36958                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function sendToAPI():void
36959                 {       //MethodID:4223, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 87
36960                         this._rate.reset();
36961
36962                         this._SO.data.time.s = Math.floor(TimeUtils.time + ((60 * 10) * 1000));
36963                         this._SO.data.time.e = Math.floor(TimeUtils.time + ((60 * 60) * 1000));
36964
36965                         this.sendToAPI();
36966                 }
36967         }
36968 }
36969
36970 //■script275■
36971
36972 package jp.nicovideo.nicoplayer.models.log.elements{
36973
36974         import __AS3__.vec.Vector
36975         import flash.events.EventDispatcher
36976         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
36977         import jp.nicovideo.nicoplayer.models.log.events.LogEvent
36978         import jp.nicovideo.util.CrossSharedObject
36979         import jp.nicovideo.util.TimeUtils
36980         import jp.nicovideo.util.storage.LocalStorage
36981
36982         //■class(instance)_index:333
36983         public class AbstractLogElement extends EventDispatcher implements ILogElement
36984         {
36985                 //static constructor
36986                 public static function AbstractLogElement$cinit()
36987                 {       //MethodID:4225, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
36988                 }
36989
36990                 //constructor
36991                 public function AbstractLogElement(hug1:Function, hug2:String, hug3:String)
36992                 {       //MethodID:4226, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 64
36993                         super();
36994
36995                         this._localStorage = hug1(hug2);
36996                         this._name = hug2;
36997                         this._sendType = hug3;
36998
36999                         if(this._localStorage.data[this._PRIVATE_KEY_LOG_OBJECTS] == undefined) this.clearLocalStorage();
37000
37001                         if(this.isExpired) this.clearLocalStorage();
37002                 }
37003
37004                 //variables/etc.
37005                 private const _PRIVATE_KEY_LOG_OBJECTS:String = "_logObjects";  //slotID:0
37006                 private const _PRIVATE_KEY_IS_SENDABLE:String = "_isSendable";  //slotID:0
37007                 private const _PRIVATE_KEY_EXPIRE_TIME:String = "_expireTime";  //slotID:0
37008                 private var _localStorage:LocalStorage;                         //slotID:0
37009                 private var _name:String;                                       //slotID:0
37010                 private var _sendType:String;                                   //slotID:0
37011                 protected var _cacheStorage:LocalStorage;                       //slotID:0
37012                 private var _isInitialized:Boolean = false;                     //slotID:0
37013
37014                 protected function _onInitialized():void
37015                 {       //MethodID:4227, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 32
37016                         this._isInitialized = true;
37017
37018                         dispatchEvent(new LogEvent(LogEvent.INITIALIZED, this.name));
37019                 }
37020
37021                 public function clearLocalStorage(hug1:Boolean=true):void
37022                 {       //MethodID:4228, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 99
37023                         this._localStorage.clear();
37024
37025                         this._localStorage.data[this._PRIVATE_KEY_EXPIRE_TIME] = NaN;
37026                         this._localStorage.data[this._PRIVATE_KEY_IS_SENDABLE] = false;
37027                         this._localStorage.data[this._PRIVATE_KEY_LOG_OBJECTS] = new Vector.<Object>();
37028
37029                         this._localStorage.flush();
37030
37031                         if(hug1 && this._cacheStorage) this._cacheStorage.clear();
37032                 }
37033
37034                 public function reset(hug1:Function=null):void
37035                 {       //MethodID:4229, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 19
37036                         this._isInitialized = false;
37037
37038                         if(hug1 != null) hug1.apply();
37039                 }
37040
37041                 public function addData(hug1:Object):void
37042                 {       //MethodID:4230, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 30
37043                         Vector.<Object>(this.logObjects).push(hug1);
37044                         this._localStorage.flush();
37045                 }
37046
37047                 public function updateData(hug1:Object, hug2:uint):void
37048                 {       //MethodID:4231, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 20
37049                         this.logObjects[hug2] = hug1;
37050
37051                         this._localStorage.flush();
37052                 }
37053
37054                 protected function _initializeCacheStorage(hug1:String, hug2:String=null, hug3:Boolean=false):void
37055                 {       //MethodID:4232, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 17
37056                         this._cacheStorage = CrossSharedObject.getStorage(hug1, hug2, hug3);
37057                 }
37058
37059                 public function onLogSent():void
37060                 {       //MethodID:4233, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37061                 }
37062
37063                 public function get isInitialized():Boolean
37064                 {       //MethodID:4234, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
37065                         return this._isInitialized;
37066                 }
37067
37068                 public function get name():String
37069                 {       //MethodID:4235, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
37070                         return this._name;
37071                 }
37072
37073                 public function get sendType():String
37074                 {       //MethodID:4236, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
37075                         return this._sendType;
37076                 }
37077
37078                 public function get isSendable():Boolean
37079                 {       //MethodID:4237, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 22
37080                         return Boolean(this._localStorage.data[this._PRIVATE_KEY_IS_SENDABLE]);
37081                 }
37082
37083                 public function set isSendable(hug1:Boolean):void
37084                 {       //MethodID:4238, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 73
37085                         this._localStorage.data[this._PRIVATE_KEY_IS_SENDABLE] = hug1;
37086
37087                         this._localStorage.flush();
37088
37089                         if(hug1 && (this.sendType == LogElementSendType.IMMEDIATE)) dispatchEvent(new LogEvent(LogEvent.PREPARED, this.name));
37090                 }
37091
37092                 public function get isExpired():Boolean
37093                 {       //MethodID:4239, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 62
37094                         var hug1:Number = Number(this._localStorage.data[this._PRIVATE_KEY_EXPIRE_TIME]);
37095
37096                         if(isNaN(hug1) || !isFinite(hug1)) return false;
37097
37098                         return (TimeUtils.time > hug1);
37099                 }
37100
37101                 protected function set _expireTime(hug1:Number):void
37102                 {       //MethodID:4240, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 26
37103                         this._localStorage.data[this._PRIVATE_KEY_EXPIRE_TIME] = hug1;
37104
37105                         this._localStorage.flush();
37106                 }
37107
37108                 public function get logObjects():Vector.<Object>
37109                 {       //MethodID:4241, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
37110                         return this._localStorage.data[this._PRIVATE_KEY_LOG_OBJECTS];
37111                 }
37112         }
37113 }
37114
37115 //■script276■
37116
37117 package jp.nicovideo.nicoplayer.models.log.elements{
37118
37119         import flash.utils.clearTimeout
37120         import flash.utils.getTimer
37121         import flash.utils.setTimeout
37122         import jp.nicovideo.nicoplayer.models.PlayerInfo
37123         import jp.nicovideo.nicoplayer.models.api.IGetFLV
37124         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
37125         import jp.nicovideo.nicoplayer.models.log.LogElementName
37126         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
37127         import jp.nicovideo.util.TimeUtils
37128
37129         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
37130
37131         //■class(instance)_index:334
37132         public class PlayStats extends AbstractLogElement
37133         {
37134                 //static constructor
37135                 public static function PlayStats$cinit()
37136                 {       //MethodID:4243, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37137                 }
37138
37139                 //constructor
37140                 public function PlayStats(hug1:Function)
37141                 {       //MethodID:4244, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 91
37142                         this._intervalList = {};
37143                         this._functions = [];
37144
37145                         this._functions.push(this.initialize);
37146                         this._functions.push(this.onVideoLoadCompleted);
37147                         this._functions.push(this.onVideoLoadErrorOccurred);
37148                         this._functions.push(this.onThreadLoadCompleted);
37149                         this._functions.push(this.onHirobaConnected);
37150                         super(hug1, LogElementName.PLAY_STATS, LogElementSendType.IMMEDIATE);
37151                 }
37152
37153                 //variables/etc.
37154                 private const _VIDEO_CONNECTED_TIME:String = "videoConnectedTime";//slotID:0
37155                 private const _VIDEO_BUFFERFULL_TIME:String = "videoBufferFullTime";//slotID:0
37156                 private const _THREAD_CONNECTED:String = "threadConnected";     //slotID:0
37157                 private const _PRIVATE_KEY_HIROBA_COUNT:String = "_hirobaCount";//slotID:0
37158                 private const _HIROBA_TIMEOUT:Number = 30000.0;                 //slotID:0
37159                 private const _DEFAULT_STOCK_COUNT:int = 10;                    //slotID:0
37160                 private var _intervalList:Object;                               //slotID:0
37161                 private var _functions:Array;                                   //slotID:0
37162                 private var _getFLV:IGetFLV;                                    //slotID:0
37163                 private var _flashvars:NicoFlashVars;                           //slotID:0
37164                 private var _bytesTotal:uint = 0;                               //slotID:0
37165                 private var _initCount:int = 0;                                 //slotID:0
37166                 private var __hirobaCount:Number = Number.NaN;                  //slotID:0
37167                 private var _stockCount:int = 10;                               //slotID:0
37168                 private var _hirobaTimeoutID:int = -1;                          //slotID:0
37169                 private var _hasSetHirobaCount:Boolean = false;                 //slotID:0
37170
37171                 public function initialize(hug1:Boolean, hug2:IGetFLV, hug3:NicoFlashVars, hug4:PlayerInfo, hug5:Boolean, ...args):void
37172                 {       //MethodID:4246, LocalCount= 8 , MaxScope= 2, MaxStack= 4, CodeLength= 261
37173                         internal var enabled:Boolean;                                   //slotID:1
37174                         internal var getFLV:IGetFLV;                                    //slotID:2
37175                         internal var flashvars:NicoFlashVars;                           //slotID:3
37176                         internal var playerInfo:PlayerInfo;                             //slotID:4
37177                         internal var isNoHiroba:Boolean;                                //slotID:5
37178                         internal var arguments:Array;                                   //slotID:6
37179
37180                         enabled = hug1;
37181                         getFLV = hug2;
37182                         flashvars = hug3;
37183                         playerInfo = hug4;
37184                         isNoHiroba = hug5;
37185                         internal var arguments:Object = args;
37186
37187                         super.reset(function():void{    //MethodID:4245, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
37188                                 if(_cacheStorage) _cacheStorage.close();
37189                         });
37190
37191                         this._getFLV = getFLV;
37192                         this._flashvars = flashvars;
37193                         this._stockCount = (isNaN(playerInfo.playStatsCount) ? this._DEFAULT_STOCK_COUNT : playerInfo.playStatsCount);
37194
37195                         if(!enabled) return;
37196                         _initializeCacheStorage("jp.nicovideo.nicoplayer.models.log.elements._PlayStatsLog", "/");
37197
37198                         if(_cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT] == undefined){
37199                                 _cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT] = 0;
37200
37201                                 _cacheStorage.flush();
37202                         }
37203
37204                         if(this._hasSetHirobaCount){
37205                                 _cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT] += this.__hirobaCount;
37206
37207                                 _cacheStorage.flush();
37208                         }
37209
37210                         if(isNoHiroba || isInitialized){
37211                                 this.onHirobaConnectorLoadStarted();
37212                                 this.onHirobaConnected(false);
37213                         }
37214
37215                         super._onInitialized();
37216                         this._checkAndCreate(arguments.callee);
37217                 }
37218
37219                 private function dateFormater(hug1:Date):String
37220                 {       //MethodID:4248, LocalCount= 3 , MaxScope= 2, MaxStack= 6, CodeLength= 141
37221                         internal var d:Date;                                            //slotID:1
37222                         internal var string:String;                                     //slotID:2
37223                         internal var convertToString:Function;                          //slotID:3
37224
37225                         d = hug1;
37226                         convertToString = function(hug1:int):String{    //MethodID:4247, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 30
37227                                 return ((hug1 >= 10) ? String(hug1) : ("0" + String(hug1)));
37228                         };
37229
37230                         string = ((((((d.getFullYear() + "-") + convertToString(d.getMonth() + 1) + "-") + convertToString(d.getDate()) + "T") + convertToString(d.getHours()) + ":") + convertToString(d.getMinutes()) + ":") + convertToString(d.getSeconds()));
37231                         return string;
37232                 }
37233
37234                 private function _getIntervalObject(hug1:String):_Interval
37235                 {       //MethodID:4249, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 38
37236                         if(!this._intervalList[hug1]) this._intervalList[hug1] = new _Interval();
37237
37238                         return this._intervalList[hug1];
37239                 }
37240
37241                 public function setBeginTime(hug1:String):void
37242                 {       //MethodID:4250, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 19
37243                         this._getIntervalObject(hug1).begin = getTimer();
37244                 }
37245
37246                 public function setEndTime(hug1:String, hug2:Boolean=false):void
37247                 {       //MethodID:4251, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 29
37248                         this._getIntervalObject(hug1).end = getTimer();
37249                         this._getIntervalObject(hug1).error = hug2;
37250                 }
37251
37252                 private function _getInterval(hug1:String):String
37253                 {       //MethodID:4252, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 30
37254                         if(this._intervalList[hug1]) return this._intervalList[hug1].intervel;
37255
37256                         return "0";
37257                 }
37258
37259                 private function _checkAndCreate(hug1:Function):Boolean
37260                 {       //MethodID:4253, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 57
37261                         if(this._functions.indexOf(hug1) + 1){
37262                                 if((++this._initCount) == (this._functions.length - 1)){
37263                                         this._create();
37264
37265                                         return true;
37266                                 }
37267                         }
37268
37269                         return false;
37270                 }
37271
37272                 private function _create():void
37273                 {       //MethodID:4254, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 74
37274                         if(!isInitialized) return;
37275
37276                         var hug1:Object = {};
37277
37278                         this._setVideoStatus(hug1);
37279                         this._setThreadStatus(hug1);
37280                         this._setHirobaStatus(hug1);
37281                         addData(hug1);
37282
37283                         if(logObjects.length >= this._stockCount) isSendable = true;
37284
37285                         this._hirobaCount = 0;
37286                         this._hasSetHirobaCount = false;
37287                 }
37288
37289                 private function _setVideoStatus(hug1:Object):void
37290                 {       //MethodID:4255, LocalCount= 7 , MaxScope= 1, MaxStack= 5, CodeLength= 290
37291                         var hug2:String = this._getFLV.videoURL;
37292                         var hug3:Number = hug2.indexOf("//");
37293
37294                         if(hug3 >= 0) hug2 = hug2.substr(hug3 + 2);
37295
37296                         var hug4:String = hug2;
37297                         hug3 = hug4.indexOf("/");
37298
37299                         if(hug3 >= 0) hug4 = hug4.substr(0, hug3);
37300
37301                         var hug5:Number = Number(this._getInterval(this._VIDEO_BUFFERFULL_TIME));
37302                         hug5 = ((hug5 > 0) ? hug5 : 0);
37303                         var hug6:String = (isNaN(Math.floor(this._bytesTotal / hug5)) ? "0" : String(Math.floor(this._bytesTotal / hug5)));
37304                         hug1["date"] = (this.dateFormater(TimeUtils.now()) + "+09:00");
37305                         hug1["host"] = hug4;
37306                         hug1["video"] = this._flashvars.originalVideoID;
37307                         hug1["deleted"] = this._getFLV.deleted;
37308                         hug1["t1"] = this._getInterval(this._VIDEO_CONNECTED_TIME);
37309                         hug1["t2"] = this._getInterval(this._VIDEO_BUFFERFULL_TIME);
37310                         hug1["r"] = String((hug5 == 0) ? this._bytesTotal : hug6);
37311                 }
37312
37313                 private function _setThreadStatus(hug1:Object):void
37314                 {       //MethodID:4256, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
37315                         hug1["frq"] = this._getInterval(this._THREAD_CONNECTED);
37316                 }
37317
37318                 private function _setHirobaStatus(hug1:Object):void
37319                 {       //MethodID:4257, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 67
37320                         if(!_cacheStorage || (_cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT] == undefined)){
37321                                 hug1["hiroba"] = 0;
37322                         }else{
37323                                 hug1["hiroba"] = _cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT];
37324                         }
37325                 }
37326
37327                 private function get _hirobaCount():Number
37328                 {       //MethodID:4258, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 33
37329                         if(_cacheStorage) return Number(_cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT]);
37330
37331                         return this.__hirobaCount;
37332                 }
37333
37334                 private function set _hirobaCount(hug1:Number):void
37335                 {       //MethodID:4259, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 44
37336                         this._hasSetHirobaCount = true;
37337                         this.__hirobaCount = hug1;
37338
37339                         if(_cacheStorage){
37340                                 _cacheStorage.data[this._PRIVATE_KEY_HIROBA_COUNT] = this.__hirobaCount;
37341
37342                                 _cacheStorage.flush();
37343                         }
37344                 }
37345
37346                 public function onVideoLoadStarted():void
37347                 {       //MethodID:4260, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
37348                         this.setBeginTime(this._VIDEO_CONNECTED_TIME);
37349                 }
37350
37351                 public function onVideoBufferingStarted():void
37352                 {       //MethodID:4261, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
37353                         this.setEndTime(this._VIDEO_CONNECTED_TIME);
37354                         this.setBeginTime(this._VIDEO_BUFFERFULL_TIME);
37355                 }
37356
37357                 public function onVideoLoadCompleted(hug1:uint, ...args):void
37358                 {       //MethodID:4262, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 41
37359                         this._bytesTotal = ((hug1 > 0) ? hug1 : 0);
37360
37361                         this.setEndTime(this._VIDEO_BUFFERFULL_TIME);
37362                         this._checkAndCreate(args.callee);
37363                 }
37364
37365                 public function onVideoLoadErrorOccurred(... args):void
37366                 {       //MethodID:4263, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 21
37367                         this.setEndTime(this._VIDEO_CONNECTED_TIME);
37368                         this._checkAndCreate(args.callee);
37369                 }
37370
37371                 public function onThreadLoadStarted():void
37372                 {       //MethodID:4264, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
37373                         this.setBeginTime(this._THREAD_CONNECTED);
37374                 }
37375
37376                 public function onThreadLoadCompleted(hug1:Boolean, ...args):void
37377                 {       //MethodID:4265, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 23
37378                         this.setEndTime(this._THREAD_CONNECTED, !hug1);
37379                         this._checkAndCreate(args.callee);
37380                 }
37381
37382                 public function onHirobaConnectorLoadStarted():void
37383                 {       //MethodID:4266, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 23
37384                         this._hirobaTimeoutID = setTimeout(this.onHirobaConnected, this._HIROBA_TIMEOUT, false);
37385                 }
37386
37387                 public function onHirobaConnected(hug1:Boolean, ...args):void
37388                 {       //MethodID:4267, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 95
37389                         var hug3:Number = NaN;
37390
37391                         if(hug1 && (this._hirobaTimeoutID > (-1))){
37392                                 hug3 = this._hirobaCount;
37393
37394                                 if(isNaN(hug3)){
37395                                         hug3 = 0;
37396                                 }else{
37397                                         hug3++;
37398                                 }
37399
37400                                 this._hirobaCount = hug3;
37401                         }
37402
37403                         if(this._hirobaTimeoutID > (-1)) this._checkAndCreate(args.callee);
37404                         clearTimeout(this._hirobaTimeoutID);
37405
37406                         this._hirobaTimeoutID = -1;
37407                 }
37408
37409                 public function onPlaylistTargetUpdated():void
37410                 {       //MethodID:4268, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 9
37411                         this._initCount = 0;
37412                 }
37413
37414                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function setVideoStatus(hug1:Object):void
37415                 {       //MethodID:4269, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
37416                         this._setVideoStatus(hug1);
37417                 }
37418
37419                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function getThreadStats(hug1:Object):void
37420                 {       //MethodID:4270, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
37421                         this._setThreadStatus(hug1);
37422                 }
37423
37424                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function logCount():int
37425                 {       //MethodID:4271, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
37426                         return logObjects.length;
37427                 }
37428
37429                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function _getInterval(hug1:String):String
37430                 {       //MethodID:4272, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
37431                         return this._getInterval(hug1);
37432                 }
37433         }
37434 }
37435
37436
37437 //■class(instance)_index:335
37438 //private
37439 class _Interval extends Object
37440 {
37441         //static constructor
37442         public static function _Interval$cinit()
37443         {       //MethodID:4273, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37444         }
37445
37446         //constructor
37447         public function _Interval()
37448         {       //MethodID:4274, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
37449                 super();
37450         }
37451
37452         //variables/etc.
37453         public var begin:Number = 0.0;                                  //slotID:0
37454         public var end:Number = 0.0;                                    //slotID:0
37455         public var error:Boolean = false;                               //slotID:0
37456
37457         public function get intervel():String
37458         {       //MethodID:4275, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 41
37459                 var hug1:Number = Math.max((this.end - this.begin), 0);
37460
37461                 if(this.error) hug1 = -1;
37462
37463                 return String(hug1);
37464         }
37465 }
37466
37467 //■script277■
37468
37469 package jp.nicovideo.nicoplayer.models.log.elements{
37470
37471         import flash.system.Capabilities
37472         import jp.nicovideo.nicoplayer.models.log.LogElementName
37473         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
37474
37475         //■class(instance)_index:336
37476         public class PremiumLeadOnSliderLog extends AbstractLogElement
37477         {
37478                 //static constructor
37479                 public static function PremiumLeadOnSliderLog$cinit()
37480                 {       //MethodID:4277, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37481                 }
37482
37483                 //constructor
37484                 public function PremiumLeadOnSliderLog(hug1:Function)
37485                 {       //MethodID:4278, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
37486                         super(hug1, LogElementName.PREMIUM_LEAD_ON_SLIDER, LogElementSendType.PLAYER_START_UP);
37487                 }
37488
37489                 //variables/etc.
37490                 private var _displayed:int = 0;                                 //slotID:0
37491                 private var _clicked:int = 0;                                   //slotID:0
37492                 private var _hasDisplayed:Boolean;                              //slotID:0
37493
37494                 public function initialize(hug1:Boolean):void
37495                 {       //MethodID:4279, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 19
37496                         super.reset();
37497
37498                         if(!hug1) return;
37499                         super._onInitialized();
37500                 }
37501
37502                 public function onPremleadOnSliderDisplayed():void
37503                 {       //MethodID:4280, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 38
37504                         this._hasDisplayed = true;
37505                         this._displayed++;
37506
37507                         if(!isInitialized) return;
37508                         this._updateLogData();
37509                 }
37510
37511                 public function onPremleadOnSliderClicked():void
37512                 {       //MethodID:4281, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 45
37513                         this._clicked++;
37514
37515                         if(!isInitialized || !this._hasDisplayed) return;
37516                         this._updateLogData();
37517                 }
37518
37519                 private function _updateLogData():void
37520                 {       //MethodID:4282, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 129
37521                         var hug1:Object = null;
37522
37523                         if(!isInitialized) return;
37524
37525                         if(this._displayed > 0){
37526                                 hug1 = {};
37527
37528                                 if(logObjects.length > 0){
37529                                         hug1 = logObjects[0];
37530                                 }else{
37531                                         addData(hug1);
37532                                 }
37533
37534                                 hug1["displayed"] = this._displayed;
37535                                 hug1["clicked"] = this._clicked;
37536                                 hug1["is64bit"] = (Boolean(Capabilities.supports64BitProcesses) ? 1 : 0);
37537
37538                                 updateData(hug1, 0);
37539                         }
37540                 }
37541         }
37542 }
37543
37544 //■script278■
37545
37546 package jp.nicovideo.nicoplayer.models.log.elements{
37547
37548         import flash.system.Capabilities
37549         import jp.nicovideo.nicoplayer.models.log.LogElementName
37550         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
37551         import jp.nicovideo.util.TimeUtils
37552
37553         //■class(instance)_index:337
37554         public class CapabilitiesLog extends AbstractLogElement
37555         {
37556                 //static constructor
37557                 public static function CapabilitiesLog$cinit()
37558                 {       //MethodID:4284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37559                 }
37560
37561                 //constructor
37562                 public function CapabilitiesLog(hug1:Function)
37563                 {       //MethodID:4285, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
37564                         super(hug1, LogElementName.CAPABILITIES, LogElementSendType.IMMEDIATE);
37565                 }
37566
37567                 //variables/etc.
37568                 private const _CACHE_NAME:String = "jp.nicovideo.nicoplayer.models.log.elements._CapabilitiesLog";//slotID:0
37569                 private const _EXPIRE_TIME_PROPERTY_NAME:String = "expire_property_name";//slotID:0
37570                 private const _EXPIRE:Number = 0x5265C00;                       //slotID:0
37571
37572                 public function initialize(hug1:Boolean):void
37573                 {       //MethodID:4286, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 262
37574                         super.reset();
37575
37576                         if(!hug1) return;
37577                         _initializeCacheStorage(this._CACHE_NAME, "/");
37578
37579                         var hug2:Number = parseInt(_cacheStorage.data[this._EXPIRE_TIME_PROPERTY_NAME]);
37580
37581                         if((hug2 + this._EXPIRE) > TimeUtils.time) return;
37582                         super._onInitialized();
37583
37584                         var hug3:Object = {};
37585                         hug3["is64"] = (Capabilities.supports64BitProcesses ? "1" : "0");
37586                         hug3["os"] = (new RegExp("^[a-zA-Z0-9\-_\., ]+$").test(Capabilities.os) ? Capabilities.os : "other");
37587                         hug3["isDebugger"] = (Capabilities.isDebugger ? "1" : "0");
37588                         hug3["version"] = (new RegExp("^[a-zA-Z0-9, ]+$").test(Capabilities.version) ? Capabilities.version : "other");
37589
37590                         addData(hug3);
37591
37592                         isSendable = true;
37593                         _cacheStorage.data[this._EXPIRE_TIME_PROPERTY_NAME] = TimeUtils.time;
37594
37595                         _cacheStorage.flush();
37596                 }
37597
37598                 override public function clearLocalStorage(hug1:Boolean=true):void
37599                 {       //MethodID:4287, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 9
37600                         super.clearLocalStorage(false);
37601                 }
37602         }
37603 }
37604
37605 //■script279■
37606
37607 package jp.nicovideo.nicoplayer.models.log.elements{
37608
37609         import flash.utils.getTimer
37610         import jp.nicovideo.nicoplayer.models.log.LogElementName
37611         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
37612         import jp.nicovideo.util.TimeUtils
37613
37614         //■class(instance)_index:338
37615         public class LoadingFailLog extends AbstractLogElement
37616         {
37617                 //static constructor
37618                 public static function LoadingFailLog$cinit()
37619                 {       //MethodID:4289, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37620                 }
37621
37622                 //constructor
37623                 public function LoadingFailLog(hug1:Function)
37624                 {       //MethodID:4290, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
37625                         super(hug1, LogElementName.LOADING_FAIL, LogElementSendType.IMMEDIATE);
37626                 }
37627
37628                 //variables/etc.
37629                 private const _ERROR_CODE_UNKNOWN:String = "unknown";           //slotID:0
37630                 private var _videoId:String = "";                               //slotID:0
37631                 private var _videoServer:String = "";                           //slotID:0
37632                 private var _startTimeStamp:Number = Number.NaN;                //slotID:0
37633                 private var _startTime:Number = Number.NaN;                     //slotID:0
37634
37635                 public function initialize(hug1:String, hug2:String):void
37636                 {       //MethodID:4292, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 59
37637                         internal var watchVideoID:String;                               //slotID:1
37638                         internal var videoURL:String;                                   //slotID:2
37639                         internal var getServerName:Function;                            //slotID:3
37640
37641                         watchVideoID = hug1;
37642                         videoURL = hug2;
37643                         getServerName = function(hug1:String):String{   //MethodID:4291, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 60
37644                                 var hug2:Number = hug1.indexOf("//");
37645
37646                                 if(hug2 >= 0) hug1 = hug1.substr(hug2 + 2);
37647
37648                                 var hug3:String = hug1;
37649                                 hug2 = hug3.indexOf(".");
37650
37651                                 if(hug2 >= 0) hug3 = hug3.substr(0, hug2);
37652
37653                                 return hug3;
37654                         };
37655
37656                         super.reset();
37657
37658                         this._videoId = watchVideoID;
37659                         this._videoServer = getServerName(videoURL);
37660
37661                         super._onInitialized();
37662                 }
37663
37664                 public function onVideoLoadStarted():void
37665                 {       //MethodID:4293, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
37666                         this._startTimeStamp = TimeUtils.time;
37667                         this._startTime = getTimer();
37668                 }
37669
37670                 public function onVideoLoadErrorOccurred():void
37671                 {       //MethodID:4294, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 94
37672                         if(!isInitialized) return;
37673
37674                         var hug1:Object = {};
37675                         hug1["video_id"] = this._videoId;
37676                         hug1["video_server"] = this._videoServer;
37677                         hug1["start_time"] = this._startTimeStamp;
37678                         hug1["loading_time"] = (getTimer() - this._startTime);
37679                         hug1["status"] = this._ERROR_CODE_UNKNOWN;
37680
37681                         addData(hug1);
37682
37683                         isSendable = true;
37684                 }
37685         }
37686 }
37687
37688 //■script280■
37689
37690 package jp.nicovideo.nicoplayer.models.log{
37691
37692         //■class(instance)_index:339
37693         public class LogElementSendType extends Object
37694         {
37695                 //static constructor
37696                 public static function LogElementSendType$cinit()
37697                 {       //MethodID:4296, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
37698                         IMMEDIATE = "immediate";
37699                         PLAYER_START_UP = "playerStartUp";
37700                         LOG_INITIALIZE = "logInitialize";
37701                         WITH_OTHER_LOGS = "withOtherLogs";
37702                 }
37703
37704                 //static variables/etc.
37705                 public static const IMMEDIATE:String = "immediate";             //slotID:1
37706                 public static const PLAYER_START_UP:String = "playerStartUp";   //slotID:2
37707                 public static const LOG_INITIALIZE:String = "logInitialize";    //slotID:3
37708                 public static const WITH_OTHER_LOGS:String = "withOtherLogs";   //slotID:4
37709
37710                 //constructor
37711                 public function LogElementSendType()
37712                 {       //MethodID:4297, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
37713                         super();
37714                 }
37715         }
37716 }
37717
37718 //■script281■
37719
37720 package jp.nicovideo.nicoplayer.models.log.events{
37721
37722         import flash.events.Event
37723
37724         //■class(instance)_index:340
37725         public class LogEvent extends Event
37726         {
37727                 //static constructor
37728                 public static function LogEvent$cinit()
37729                 {       //MethodID:4299, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
37730                         INITIALIZED = "initialized";
37731                         SEND = "send";
37732                         SEND_COMPLETE = "send_complete";
37733                         PREPARED = "prepared";
37734                 }
37735
37736                 //static variables/etc.
37737                 public static const INITIALIZED:String = "initialized";         //slotID:1
37738                 public static const SEND:String = "send";                       //slotID:2
37739                 public static const SEND_COMPLETE:String = "send_complete";     //slotID:3
37740                 public static const PREPARED:String = "prepared";               //slotID:4
37741
37742                 //constructor
37743                 public function LogEvent(hug1:String, hug2:String, hug3:Boolean=false, hug4:Boolean=false)
37744                 {       //MethodID:4300, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
37745                         this._name = hug2;
37746
37747                         super(hug1, hug3, hug4);
37748                 }
37749
37750                 //variables/etc.
37751                 private var _name:String;                                       //slotID:0
37752
37753                 public function get name():String
37754                 {       //MethodID:4301, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
37755                         return this._name;
37756                 }
37757         }
37758 }
37759
37760 //■script282■
37761
37762 package jp.nicovideo.nicoplayer.models.log{
37763
37764         //■class(instance)_index:341
37765         public class LogElementName extends Object
37766         {
37767                 //static constructor
37768                 public static function LogElementName$cinit()
37769                 {       //MethodID:4303, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 147
37770                         NON_SHAREDOBJECT_COUNT = "non_sharedobject_count";
37771                         PLAY_LEN = "playlen";
37772                         PLAY_STATS = "playstats";
37773                         PLAYER_IDLE = "fms_idle_time";
37774                         PLAYER_CONF = "player_conf";
37775                         COMMENT_UPDATE_COUNT = "comment_update_count";
37776                         WATCH_RELOAD = "watch_reload";
37777                         HIRROBA_CONNECTION_FAIL = "hiroba_connection_fail";
37778                         HIRROBA_DISCONNECTED = "hiroba_disconnected";
37779                         LOADING_FAIL = "loading_fail";
37780                         LOADING_IDLE = "loading_idle";
37781                         PLAYLIST_INTERRUPTED = "playlist_interrupt";
37782                         PREMIUM_LEAD_ON_SLIDER = "premlead_on_slider";
37783                         VIDEO_MENU = "videomenu_count";
37784                         CAPABILITIES = "capabilities";
37785                         VIDEOENDER = "videoender";
37786                 }
37787
37788                 //static variables/etc.
37789                 public static const NON_SHAREDOBJECT_COUNT:String = "non_sharedobject_count";//slotID:1
37790                 public static const PLAY_LEN:String = "playlen";                //slotID:2
37791                 public static const PLAY_STATS:String = "playstats";            //slotID:3
37792                 public static const PLAYER_IDLE:String = "fms_idle_time";       //slotID:4
37793                 public static const PLAYER_CONF:String = "player_conf";         //slotID:5
37794                 public static const COMMENT_UPDATE_COUNT:String = "comment_update_count";//slotID:6
37795                 public static const WATCH_RELOAD:String = "watch_reload";       //slotID:7
37796                 public static const HIRROBA_CONNECTION_FAIL:String = "hiroba_connection_fail";//slotID:8
37797                 public static const HIRROBA_DISCONNECTED:String = "hiroba_disconnected";//slotID:9
37798                 public static const LOADING_FAIL:String = "loading_fail";       //slotID:10
37799                 public static const LOADING_IDLE:String = "loading_idle";       //slotID:11
37800                 public static const PLAYLIST_INTERRUPTED:String = "playlist_interrupt";//slotID:12
37801                 public static const PREMIUM_LEAD_ON_SLIDER:String = "premlead_on_slider";//slotID:13
37802                 public static const VIDEO_MENU:String = "videomenu_count";      //slotID:14
37803                 public static const CAPABILITIES:String = "capabilities";       //slotID:15
37804                 public static const VIDEOENDER:String = "videoender";           //slotID:16
37805
37806                 //constructor
37807                 public function LogElementName()
37808                 {       //MethodID:4304, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
37809                         super();
37810                 }
37811         }
37812 }
37813
37814 //■script283■
37815
37816 package jp.nicovideo.nicoplayer.models.log.elements{
37817
37818         import __AS3__.vec.Vector
37819         import flash.errors.IllegalOperationError
37820         import jp.nicovideo.nicoplayer.models.log.LogElementName
37821         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
37822         import jp.nicovideo.nicoplayer.models.log.elements.videoMenu.VideoenderContentType
37823         import jp.nicovideo.nicoplayer.models.log.elements.videoMenu.VideoenderTorrigerType
37824         import jp.nicovideo.nicoplayer.videoender.IVideoenderTesterConfig
37825         import jp.nicovideo.util.TimeUtils
37826
37827         //■class(instance)_index:342
37828         public class VideoenderLog extends AbstractLogElement
37829         {
37830                 //static constructor
37831                 public static function VideoenderLog$cinit()
37832                 {       //MethodID:4306, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
37833                 }
37834
37835                 //static variables/etc.
37836                 private static function _createSendableLogObject(hug1:_VideoenderLogData):Object
37837                 {       //dispID:3, MethodID:4312, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 338
37838                         internal var data:_VideoenderLogData;                           //slotID:1
37839                         internal var object:Object;                                     //slotID:2
37840
37841                         data = hug1;
37842                         object = {};
37843                         object["is_tester"] = function():int{   //MethodID:4307, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 29
37844                                 if(data.isTester) return 1;
37845
37846                                 if(data.isTestable) return 2;
37847
37848                                 return 0;
37849                         }();
37850
37851                         object["video_ended"] = (data.hasVideoEnded ? 1 : 0);
37852                         object["displayed"] = (data.hasDisplayed ? 1 : 0);
37853                         object["menu_clicked"] = (data.hasMenuButtonClicked ? 1 : 0);
37854                         object["related_video_type"] = function():int{  //MethodID:4308, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 54
37855                                 if(data.isGetRelationError) return 3;
37856
37857                                 if(data.relatedVideoType == VideoenderContentType.RELATED_VIDEO) return 2;
37858
37859                                 if(data.relatedVideoType == VideoenderContentType.OWNER_VIDEO) return 1;
37860
37861                                 return 0;
37862                         }();
37863
37864                         object["related_video_jumped"] = (data.hasRelatedVideoClicked ? 1 : 0);
37865                         object["live_dj_displayed"] = (data.hasLiveDJDisplayed ? 1 : 0);
37866                         object["live_dj_jumped"] = (data.hasLiveDJClicked ? 1 : 0);
37867                         object["owner_video_page_link"] = function():int{       //MethodID:4309, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 29
37868                                 if(data.hasOwnerVideoPageLinkClicked) return 2;
37869
37870                                 if(data.hasOwnerVideoPageLinkDisplayed) return 1;
37871
37872                                 return 0;
37873                         }();
37874
37875                         object["mobile_clicked"] = (data.hasMobileBtnClicked ? 1 : 0);
37876                         object["mylist_form"] = function():int{ //MethodID:4310, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 29
37877                                 if(data.hasMylistAdded) return 2;
37878
37879                                 if(data.hasMylistAddDisplayed) return 1;
37880
37881                                 return 0;
37882                         }();
37883
37884                         object["mylist_jumped"] = function():int{       //MethodID:4311, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 41
37885                                 if(data.mylistPageJumpedType == VideoenderContentType.JUST_ADDED_MYLIST_LINK) return 2;
37886
37887                                 if(data.mylistPageJumpedType == VideoenderContentType.ALREADY_ADDED_MYLIST_LINK) return 1;
37888
37889                                 return 0;
37890                         }();
37891
37892                         object["date"] = data.date;
37893                         return object;
37894                 }
37895
37896                 public static function _createDate():String
37897                 {       //dispID:4, MethodID:4314, LocalCount= 2 , MaxScope= 2, MaxStack= 4, CodeLength= 203
37898                         internal var now:Date;                                          //slotID:1
37899                         internal var m:String;                                          //slotID:2
37900                         internal var d:String;                                          //slotID:3
37901                         internal var h:String;                                          //slotID:4
37902                         internal var min:String;                                        //slotID:5
37903                         internal var doublize:Function;                                 //slotID:6
37904
37905                         doublize = function(hug1:String):String{        //MethodID:4313, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 19
37906                                 if(hug1.length < 2) hug1 = ("0" + hug1);
37907
37908                                 return hug1;
37909                         };
37910
37911                         now = new Date();
37912
37913                         now.setTime(TimeUtils.time);
37914
37915                         m = (now.month + 1).toString();
37916                         d = now.date.toString();
37917                         h = now.hours.toString();
37918                         min = now.minutes.toString();
37919                         m = doublize(m);
37920                         d = doublize(d);
37921                         h = doublize(h);
37922                         min = doublize(min);
37923                         return (m + "." + d + "." + h + "." + min);
37924                 }
37925
37926                 //constructor
37927                 public function VideoenderLog(hug1:Function)
37928                 {       //MethodID:4315, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
37929                         super(hug1, LogElementName.VIDEOENDER, LogElementSendType.IMMEDIATE);
37930                 }
37931
37932                 //variables/etc.
37933                 private var _hasInitialized:Boolean = false;                    //slotID:0
37934                 private var _currentData:_VideoenderLogData;                    //slotID:0
37935                 private var _reserver:_VideoenderLogDataReserver;               //slotID:0
37936
37937                 public function initialize(hug1:Boolean, hug2:IVideoenderTesterConfig):void
37938                 {       //MethodID:4317, LocalCount= 4 , MaxScope= 2, MaxStack= 5, CodeLength= 114
37939                         internal var enabled:Boolean;                                   //slotID:1
37940                         internal var testerConfig:IVideoenderTesterConfig;              //slotID:2
37941
37942                         enabled = hug1;
37943                         testerConfig = hug2;
37944
37945                         super.reset();
37946
37947                         if(!enabled) return;
37948                         super._onInitialized();
37949
37950                         this._currentData = new _VideoenderLogData(testerConfig.isTester, testerConfig.isTestable, _createDate());
37951                         this._reserver = new _VideoenderLogDataReserver();
37952
37953                         this._reserver.addEventListener(_SendableLogDataEvent.SENDABLE, function(hug1:_SendableLogDataEvent):void{      //MethodID:4316, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 65
37954                                 var hug4:Object = null;
37955                                 var hug2:Vector.<_VideoenderLogData> = hug1.datas;
37956                                 var hug3:int = 0;
37957
37958                                 while(hug3 < hug2.length){
37959                                         hug4 = _createSendableLogObject(hug2[hug3]);
37960
37961                                         addData(hug4);
37962
37963                                         hug3++;
37964                                 }
37965
37966                                 isSendable = true;
37967                         });
37968                         this._reserver.initialize();
37969                         this._reserveCurrentData();
37970
37971                         this._hasInitialized = true;
37972                 }
37973
37974                 public function onVideoEnded():void
37975                 {       //MethodID:4318, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 25
37976                         if(!this._hasInitialized) return;
37977
37978                         this._currentData.hasVideoEnded = true;
37979
37980                         this._reserveCurrentData();
37981                 }
37982
37983                 public function onOpened(hug1:String):void
37984                 {       //MethodID:4319, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 67
37985                         if(!this._hasInitialized) return;
37986
37987                         this._currentData.hasDisplayed = true;
37988
37989                         if(hug1 == VideoenderTorrigerType.END){
37990                                 this._currentData.hasVideoEnded = true;
37991                         }else if(hug1 == VideoenderTorrigerType.BUTTON_CLICK){
37992                                 this._currentData.hasMenuButtonClicked = true;
37993                         }
37994
37995                         this._reserveCurrentData();
37996                 }
37997
37998                 public function onContentDisplayed(hug1:String):void
37999                 {       //MethodID:4320, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 156
38000                         if(!this._hasInitialized) return;
38001
38002                         if((hug1 == VideoenderContentType.OWNER_VIDEO) || (hug1 == VideoenderContentType.RELATED_VIDEO)){
38003                                 if(this._currentData.isGetRelationError) this._currentData.isGetRelationError = false;
38004
38005                                 this._currentData.relatedVideoType = hug1;
38006                         }else if(hug1 == VideoenderContentType.LIVE_DJ){
38007                                 this._currentData.hasLiveDJDisplayed = true;
38008                         }else if(hug1 == VideoenderContentType.OWNER_VIDEO_LIST_PAGE_LINK){
38009                                 this._currentData.hasOwnerVideoPageLinkDisplayed = true;
38010                         }else if(hug1 == VideoenderContentType.ADD_MYLIST){
38011                                 this._currentData.hasMylistAddDisplayed = true;
38012                         }else{
38013                                 if(hug1 == VideoenderContentType.MOBILE_LEAD) return;
38014
38015                                 return;
38016                         }
38017
38018                         this._reserveCurrentData();
38019                 }
38020
38021                 public function onContentUsed(hug1:String):void
38022                 {       //MethodID:4321, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 253
38023                         if(!this._hasInitialized) return;
38024
38025                         if(hug1 == VideoenderContentType.ADD_MYLIST){
38026                                 this._currentData.hasMylistAdded = true;
38027                         }else if(hug1 == VideoenderContentType.MOBILE_LEAD){
38028                                 this._currentData.hasMobileBtnClicked = true;
38029                         }else if((hug1 == VideoenderContentType.OWNER_VIDEO) || (hug1 == VideoenderContentType.RELATED_VIDEO)){
38030                                 if(this._currentData.relatedVideoType == null) throw new IllegalOperationError("VideoenderLog.onLinkJumped: OWNER_VIDEO has not displayed, but clicked.");
38031
38032                                 this._currentData.hasRelatedVideoClicked = true;
38033                         }else if(hug1 == VideoenderContentType.LIVE_DJ){
38034                                 if(!this._currentData.hasLiveDJDisplayed) throw new IllegalOperationError("VideoenderLog.onLinkJumped: LIVE_DJ has not displayed, but clicked.");
38035
38036                                 this._currentData.hasLiveDJClicked = true;
38037                         }else if((hug1 == VideoenderContentType.ALREADY_ADDED_MYLIST_LINK) || (hug1 == VideoenderContentType.JUST_ADDED_MYLIST_LINK)){
38038                                 this._currentData.mylistPageJumpedType = hug1;
38039                         }else if(hug1 == VideoenderContentType.OWNER_VIDEO_LIST_PAGE_LINK){
38040                                 if(!this._currentData.hasOwnerVideoPageLinkDisplayed) throw new IllegalOperationError("VideoenderLog.onLinkJumped: OWNER_VIDEO_LIST_PAGE_LINK has not displayed, but clicked.");
38041
38042                                 this._currentData.hasOwnerVideoPageLinkClicked = true;
38043                         }else{
38044                                 return;
38045                         }
38046
38047                         this._reserveCurrentData();
38048                 }
38049
38050                 public function onErrorOccured(hug1:String):void
38051                 {       //MethodID:4322, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 41
38052                         if(!this._hasInitialized) return;
38053
38054                         if(hug1 == VideoenderContentType.GET_RELATION_VIDEOS){
38055                                 this._currentData.isGetRelationError = true;
38056                         }else{
38057                                 return;
38058                         }
38059
38060                         this._reserveCurrentData();
38061                 }
38062
38063                 private function _reserveCurrentData():void
38064                 {       //MethodID:4323, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 29
38065                         this._currentData.date = _createDate();
38066
38067                         this._reserver.reserveCurrentData(this._currentData);
38068                 }
38069         }
38070 }
38071
38072 import __AS3__.vec.Vector
38073 import flash.errors.IllegalOperationError
38074 import flash.events.DataEvent
38075 import flash.events.Event
38076 import flash.events.EventDispatcher
38077 import flash.events.TimerEvent
38078 import flash.utils.Timer
38079 import jp.nicovideo.util.CrossSharedObject
38080 import jp.nicovideo.util.net.local.LocalSession
38081 import jp.nicovideo.util.net.local.LocalSessionEvent
38082 import jp.nicovideo.util.storage.LocalStorage
38083
38084 //■class(instance)_index:343
38085 //private
38086 class _VideoenderLogData extends Object
38087 {
38088         //static constructor
38089         public static function _VideoenderLogData$cinit()
38090         {       //MethodID:4324, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38091         }
38092
38093         //static variables/etc.
38094         public static function createByObject(hug1:Object):_VideoenderLogData
38095         {       //dispID:3, MethodID:4325, LocalCount= 4 , MaxScope= 5, MaxStack= 5, CodeLength= 273
38096                 private var obj:Object;                                         //slotID:1
38097                 private var data:_VideoenderLogData;                            //slotID:2
38098
38099                 data = null;
38100                 obj = hug1;
38101
38102                 try{
38103                         data = new _VideoenderLogData(obj.isTester, obj.isTestable, obj.date);
38104                         data.hasVideoEnded = obj.hasVideoEnded;
38105                         data.hasDisplayed = obj.hasDisplayed;
38106                         data.hasMenuButtonClicked = obj.hasMenuButtonClicked;
38107                         data.relatedVideoType = obj.relatedVideoType;
38108                         data.isGetRelationError = obj.isGetRelationError;
38109                         data.hasRelatedVideoClicked = obj.hasRelatedVideoClicked;
38110                         data.hasLiveDJDisplayed = obj.hasLiveDJDisplayed;
38111                         data.hasLiveDJClicked = obj.hasLiveDJClicked;
38112                         data.hasOwnerVideoPageLinkDisplayed = obj.hasOwnerVideoPageLinkDisplayed;
38113                         data.hasOwnerVideoPageLinkClicked = obj.hasOwnerVideoPageLinkClicked;
38114                         data.hasMobileBtnClicked = obj.hasMobileBtnClicked;
38115                         data.hasMylistAddDisplayed = obj.hasMylistAddDisplayed;
38116                         data.hasMylistAdded = obj.hasMylistAdded;
38117                         data.mylistPageJumpedType = obj.mylistPageJumpedType;
38118                 }
38119                 catch(e:*){
38120                         return null;
38121                 }
38122
38123                 return data;
38124         }
38125
38126         //constructor
38127         public function _VideoenderLogData(hug1:Boolean, hug2:Boolean, hug3:String):void
38128         {       //MethodID:4326, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
38129                 super();
38130
38131                 this.isTester = hug1;
38132                 this.isTestable = hug2;
38133                 this.date = hug3;
38134         }
38135
38136         //variables/etc.
38137         public var isTester:Boolean;                                    //slotID:0
38138         public var isTestable:Boolean;                                  //slotID:0
38139         public var date:String;                                         //slotID:0
38140         public var hasVideoEnded:Boolean = false;                       //slotID:0
38141         public var hasDisplayed:Boolean = false;                        //slotID:0
38142         public var hasMenuButtonClicked:Boolean = false;                //slotID:0
38143         public var relatedVideoType:String = null;                      //slotID:0
38144         public var isGetRelationError:Boolean = false;                  //slotID:0
38145         public var hasRelatedVideoClicked:Boolean = false;              //slotID:0
38146         public var hasLiveDJDisplayed:Boolean = false;                  //slotID:0
38147         public var hasLiveDJClicked:Boolean = false;                    //slotID:0
38148         public var hasOwnerVideoPageLinkDisplayed:Boolean = false;      //slotID:0
38149         public var hasOwnerVideoPageLinkClicked:Boolean = false;        //slotID:0
38150         public var hasMobileBtnClicked:Boolean = false;                 //slotID:0
38151         public var hasMylistAddDisplayed:Boolean = false;               //slotID:0
38152         public var hasMylistAdded:Boolean = false;                      //slotID:0
38153         public var mylistPageJumpedType:String = null;                  //slotID:0
38154 }
38155
38156 //■class(instance)_index:344
38157 //private
38158 class _VideoenderLogDataReserver extends EventDispatcher
38159 {
38160         //static constructor
38161         public static function _VideoenderLogDataReserver$cinit()
38162         {       //MethodID:4327, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 33
38163                 _SLAVE_CHECK_INTERVAL = (10 * 1000);
38164                 _SO_NAME = "jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog._DatasReserver";
38165                 _SESSION_DOMAIN = "jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog._DatasReserver";
38166         }
38167
38168         //static variables/etc.
38169         private static const _SLAVE_CHECK_INTERVAL:Number = 10000.0;    //slotID:1
38170         private static const _SO_NAME:String = "jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog._DatasReserver";//slotID:2
38171         private static const _SESSION_DOMAIN:String = "jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog._DatasReserver";//slotID:3
38172
38173         //constructor
38174         public function _VideoenderLogDataReserver():void
38175         {       //MethodID:4328, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
38176                 super();
38177         }
38178
38179         //variables/etc.
38180         private var _session:LocalSession;                              //slotID:0
38181         private var _hasInitialized:Boolean = false;                    //slotID:0
38182
38183         public function initialize():void
38184         {       //MethodID:4332, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 83
38185                 private var initializeAsMaster:Function;                        //slotID:1
38186
38187                 initializeAsMaster = function():void{   //MethodID:4330, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 66
38188                         private var slaveCheckTimer:Timer;                              //slotID:1
38189                         _dispatchSendableDatas();
38190                         _session.addEventListener(DataEvent.DATA, _dispatchSendableDatas);
38191
38192                         slaveCheckTimer = new Timer(_SLAVE_CHECK_INTERVAL);
38193
38194                         slaveCheckTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{      //MethodID:4329, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 12
38195                                 _session.sendAll("dummy_check", null);
38196                         });
38197                         slaveCheckTimer.start();
38198                 };
38199
38200                 this._session = new LocalSession(_SESSION_DOMAIN);
38201
38202                 this._session.join();
38203
38204                 if(this._session.isMaster){
38205                         initializeAsMaster();
38206                 }else{
38207                         this._session.addEventListener(LocalSessionEvent.MASTERIZE, function(hug1:LocalSessionEvent):void{      //MethodID:4331, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 9
38208                                 initializeAsMaster();
38209                         });
38210                 }
38211
38212                 this._hasInitialized = true;
38213         }
38214
38215         private function _dispatchSendableDatas(hug1:Event=null):void
38216         {       //MethodID:4333, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 43
38217                 var hug2:Vector.<_VideoenderLogData> = this._getSendableDatas();
38218
38219                 if(hug2.length > 0) dispatchEvent(new _SendableLogDataEvent(hug2, _SendableLogDataEvent.SENDABLE));
38220         }
38221
38222         public function reserveCurrentData(hug1:_VideoenderLogData):void
38223         {       //MethodID:4334, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 58
38224                 if(!this._hasInitialized) throw new IllegalOperationError("VideoenderLog._DatasReserver.reserveCurrentData: has not initialized.");
38225
38226                 var hug2:LocalStorage = CrossSharedObject.getStorage(_SO_NAME, "/");
38227                 hug2.data[this._session.connectionName] = hug1;
38228
38229                 hug2.flush();
38230         }
38231
38232         private function _getSendableDatas():Vector.<_VideoenderLogData>
38233         {       //MethodID:4335, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 224
38234                 var hug4:String = null;
38235                 var hug5:_VideoenderLogData = null;
38236
38237                 if(!this._session.isMaster) throw new IllegalOperationError("VideoenderLog$_VideoenderLogDataReserver._getSendableDatas: not master. _session.isMaster=" + this._session.isMaster);
38238
38239                 var hug1:LocalStorage = CrossSharedObject.getStorage(_SO_NAME, "/");
38240                 var hug2:Vector.<_VideoenderLogData> = new Vector.<_VideoenderLogData>();
38241                 var hug3:int = 0;
38242
38243                 for(hug4 in hug1.data){
38244                         hug3++;
38245
38246                         if((this._session.slaveNames.indexOf(hug4) < 0) && (this._session.maseterConnectionName != hug4)){
38247                                 hug5 = _VideoenderLogData.createByObject(hug1.data[hug4]);
38248
38249                                 if(hug5 != null) hug2.push(hug5);
38250                                 delete hug1.data[hug4];
38251                         }
38252                 }
38253
38254                 if(hug2.length == hug3) hug1.clear();
38255
38256                 if(hug2.length > 0) hug1.flush();
38257
38258                 return hug2;
38259         }
38260 }
38261
38262 //■class(instance)_index:345
38263 //private
38264 class _SendableLogDataEvent extends Event
38265 {
38266         //static constructor
38267         public static function _SendableLogDataEvent$cinit()
38268         {       //MethodID:4336, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38269                 SENDABLE = "sendable";
38270         }
38271
38272         //static variables/etc.
38273         public static const SENDABLE:String = "sendable";               //slotID:1
38274
38275         //constructor
38276         public function _SendableLogDataEvent(hug1:Vector.<_VideoenderLogData>, hug2:String, hug3:Boolean=false, hug4:Boolean=false)
38277         {       //MethodID:4337, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
38278                 super(hug2, hug3, hug4);
38279
38280                 this._sendableDatas = hug1;
38281         }
38282
38283         //variables/etc.
38284         private var _sendableDatas:Vector.<_VideoenderLogData>;         //slotID:0
38285
38286         public function get datas():Vector.<_VideoenderLogData>
38287         {       //MethodID:4338, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
38288                 return this._sendableDatas;
38289         }
38290 }
38291
38292 //■script284■
38293
38294 package jp.nicovideo.nicoplayer.models.log{
38295
38296         import jp.nicovideo.nicoplayer.models.log.elements.Playlen
38297
38298         //■class(instance)_index:346
38299         public class LogEventObserverFactory extends Object
38300         {
38301                 //static constructor
38302                 public static function LogEventObserverFactory$cinit()
38303                 {       //MethodID:4340, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38304                 }
38305
38306                 //static variables/etc.
38307                 public static function create(hug1:Function=null, hug2:Playlen=null):ILogEventObservable
38308                 {       //dispID:3, MethodID:4341, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 26
38309                         if(hug1 != null) return new _Observer(hug1, hug2);
38310
38311                         return new _DummyObserver();
38312                 }
38313
38314                 //constructor
38315                 public function LogEventObserverFactory()
38316                 {       //MethodID:4342, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
38317                         super();
38318                 }
38319         }
38320 }
38321
38322 import jp.nicovideo.nicoplayer.models.log.LogElementName
38323 import jp.nicovideo.nicoplayer.models.log.elements.LoadingFailLog
38324 import jp.nicovideo.nicoplayer.models.log.elements.PlayStats
38325 import jp.nicovideo.nicoplayer.models.log.elements.PlayerIdleLog
38326 import jp.nicovideo.nicoplayer.models.log.elements.Playlen
38327 import jp.nicovideo.nicoplayer.models.log.elements.PremiumLeadOnSliderLog
38328 import jp.nicovideo.nicoplayer.models.log.elements.VideoenderLog
38329 import jp.nicovideo.nicoplayer.models.playlist.VideoInfo
38330 import jp.nicovideo.util.events.EventResult
38331
38332 use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver);
38333
38334 //■class(instance)_index:347
38335 //private
38336 class _Observer extends Object implements ILogEventObservable
38337 {
38338         //static constructor
38339         public static function _Observer$cinit()
38340         {       //MethodID:4343, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38341         }
38342
38343         //constructor
38344         public function _Observer(hug1:Function, hug2:Playlen)
38345         {       //MethodID:4344, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 116
38346                 super();
38347
38348                 this._playlen = hug2;
38349                 this._playStats = PlayStats(hug1(LogElementName.PLAY_STATS));
38350                 this._playerIdleLog = PlayerIdleLog(hug1(LogElementName.PLAYER_IDLE));
38351                 this._loadingFailLog = LoadingFailLog(hug1(LogElementName.LOADING_FAIL));
38352                 this._premiumLeadOnSliderLog = PremiumLeadOnSliderLog(hug1(LogElementName.PREMIUM_LEAD_ON_SLIDER));
38353                 this._videoenderLog = VideoenderLog(hug1(LogElementName.VIDEOENDER));
38354         }
38355
38356         //variables/etc.
38357         private var _playlen:Playlen;                                   //slotID:0
38358         private var _playStats:PlayStats;                               //slotID:0
38359         private var _playerIdleLog:PlayerIdleLog;                       //slotID:0
38360         private var _loadingFailLog:LoadingFailLog;                     //slotID:0
38361         private var _premiumLeadOnSliderLog:PremiumLeadOnSliderLog;     //slotID:0
38362         private var _videoenderLog:VideoenderLog;                       //slotID:0
38363
38364         public function onWatchReloaded(hug1:String, hug2:Boolean):void
38365         {       //MethodID:4345, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38366         }
38367
38368         public function onVideoLoadStarted():void
38369         {       //MethodID:4346, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 27
38370                 this._playlen.onLoadVideo();
38371                 this._playStats.onVideoLoadStarted();
38372                 this._loadingFailLog.onVideoLoadStarted();
38373         }
38374
38375         public function onVideoLoadCompleted(hug1:uint):void
38376         {       //MethodID:4347, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38377                 this._playStats.onVideoLoadCompleted(hug1);
38378         }
38379
38380         public function onVideoLoadErrorOccurred():void
38381         {       //MethodID:4348, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 19
38382                 this._playStats.onVideoLoadErrorOccurred();
38383                 this._loadingFailLog.onVideoLoadErrorOccurred();
38384         }
38385
38386         public function onVideoBufferingStarted():void
38387         {       //MethodID:4349, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
38388                 this._playStats.onVideoBufferingStarted();
38389         }
38390
38391         public function storeLoadingIdle(hug1:uint):void
38392         {       //MethodID:4350, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38393         }
38394
38395         public function onThreadLoadStarted():void
38396         {       //MethodID:4351, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
38397                 this._playStats.onThreadLoadStarted();
38398         }
38399
38400         public function onThreadLoadCompleted(hug1:Boolean):void
38401         {       //MethodID:4352, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38402                 this._playStats.onThreadLoadCompleted(hug1);
38403         }
38404
38405         public function onNGCommentInitialized(hug1:int, hug2:int):void
38406         {       //MethodID:4353, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38407         }
38408
38409         public function onHirobaInitializeStarted():void
38410         {       //MethodID:4354, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
38411                 this._playStats.onHirobaConnectorLoadStarted();
38412         }
38413
38414         public function onHirobaInitializeAborted():void
38415         {       //MethodID:4355, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38416                 this._playStats.onHirobaConnected(false);
38417         }
38418
38419         public function onHirobaConnected(hug1:Boolean, hug2:String, hug3:String, hug4:String):void
38420         {       //MethodID:4356, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38421                 this._playStats.onHirobaConnected(hug1);
38422         }
38423
38424         public function onHirobaDisconnected(hug1:String, hug2:String, hug3:String):void
38425         {       //MethodID:4357, LocalCount= 4 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38426         }
38427
38428         public function onPremleadOnSliderDisplayed():void
38429         {       //MethodID:4358, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
38430                 this._premiumLeadOnSliderLog.onPremleadOnSliderDisplayed();
38431         }
38432
38433         public function onPremleadOnSliderClicked():void
38434         {       //MethodID:4359, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
38435                 this._premiumLeadOnSliderLog.onPremleadOnSliderClicked();
38436         }
38437
38438         public function onVideoMenuOpened(hug1:String):void
38439         {       //MethodID:4360, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38440         }
38441
38442         public function onVideoenderOpened(hug1:String):void
38443         {       //MethodID:4361, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38444                 this._videoenderLog.onOpened(hug1);
38445         }
38446
38447         public function onVideoenderContentDisplayed(hug1:String):void
38448         {       //MethodID:4362, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38449                 this._videoenderLog.onContentDisplayed(hug1);
38450         }
38451
38452         public function onVideoenderContentUsed(hug1:String):void
38453         {       //MethodID:4363, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38454                 this._videoenderLog.onContentUsed(hug1);
38455         }
38456
38457         public function onVideoenderErrorOccured(hug1:String):void
38458         {       //MethodID:4364, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
38459                 this._videoenderLog.onErrorOccured(hug1);
38460         }
38461
38462         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStarted():EventResult
38463         {       //MethodID:4365, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 16
38464                 this._playerIdleLog.onVideoStarted();
38465
38466                 return EventResult.THROUGH;
38467         }
38468
38469         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
38470         {       //MethodID:4366, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 24
38471                 this._playlen.onVideoPlayed();
38472                 this._playerIdleLog.onVideoPlayed();
38473
38474                 return EventResult.THROUGH;
38475         }
38476
38477         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
38478         {       //MethodID:4367, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 24
38479                 this._playlen.onVideoStopped();
38480                 this._playerIdleLog.onVideoStopped();
38481
38482                 return EventResult.THROUGH;
38483         }
38484
38485         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
38486         {       //MethodID:4368, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 34
38487                 if(!hug1) this._playlen.onVideoEnded();
38488
38489                 if(!hug1) this._videoenderLog.onVideoEnded();
38490
38491                 return EventResult.THROUGH;
38492         }
38493
38494         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAutomaticLoadingUpdated(hug1:Boolean):EventResult
38495         {       //MethodID:4369, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38496                 return EventResult.THROUGH;
38497         }
38498
38499         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdateTried():EventResult
38500         {       //MethodID:4370, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38501                 return EventResult.THROUGH;
38502         }
38503
38504         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdateCompleted(hug1:Boolean):EventResult
38505         {       //MethodID:4371, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38506                 return EventResult.THROUGH;
38507         }
38508
38509         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistTargetUpdated(hug1:VideoInfo):EventResult
38510         {       //MethodID:4372, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 16
38511                 this._playStats.onPlaylistTargetUpdated();
38512
38513                 return EventResult.THROUGH;
38514         }
38515
38516         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistInterrupted():EventResult
38517         {       //MethodID:4373, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38518                 return EventResult.THROUGH;
38519         }
38520 }
38521
38522 //■class(instance)_index:348
38523 //private
38524 class _DummyObserver extends Object implements ILogEventObservable
38525 {
38526         //static constructor
38527         public static function _DummyObserver$cinit()
38528         {       //MethodID:4374, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38529         }
38530
38531         //constructor
38532         public function _DummyObserver()
38533         {       //MethodID:4375, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
38534                 super();
38535         }
38536
38537         //variables/etc.
38538         public function onWatchReloaded(hug1:String, hug2:Boolean):void
38539         {       //MethodID:4376, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38540         }
38541
38542         public function onVideoLoadStarted():void
38543         {       //MethodID:4377, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38544         }
38545
38546         public function onVideoLoadCompleted(hug1:uint):void
38547         {       //MethodID:4378, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38548         }
38549
38550         public function onVideoLoadErrorOccurred():void
38551         {       //MethodID:4379, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38552         }
38553
38554         public function onVideoBufferingStarted():void
38555         {       //MethodID:4380, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38556         }
38557
38558         public function storeLoadingIdle(hug1:uint):void
38559         {       //MethodID:4381, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38560         }
38561
38562         public function onThreadLoadStarted():void
38563         {       //MethodID:4382, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38564         }
38565
38566         public function onThreadLoadCompleted(hug1:Boolean):void
38567         {       //MethodID:4383, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38568         }
38569
38570         public function onNGCommentInitialized(hug1:int, hug2:int):void
38571         {       //MethodID:4384, LocalCount= 3 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38572         }
38573
38574         public function onHirobaInitializeStarted():void
38575         {       //MethodID:4385, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38576         }
38577
38578         public function onHirobaInitializeAborted():void
38579         {       //MethodID:4386, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38580         }
38581
38582         public function onHirobaConnected(hug1:Boolean, hug2:String, hug3:String, hug4:String):void
38583         {       //MethodID:4387, LocalCount= 5 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38584         }
38585
38586         public function onHirobaDisconnected(hug1:String, hug2:String, hug3:String):void
38587         {       //MethodID:4388, LocalCount= 4 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38588         }
38589
38590         public function onVideoMenuOpened(hug1:String):void
38591         {       //MethodID:4389, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38592         }
38593
38594         public function onVideoenderOpened(hug1:String):void
38595         {       //MethodID:4390, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38596         }
38597
38598         public function onVideoenderContentDisplayed(hug1:String):void
38599         {       //MethodID:4391, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38600         }
38601
38602         public function onVideoenderContentUsed(hug1:String):void
38603         {       //MethodID:4392, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38604         }
38605
38606         public function onVideoenderErrorOccured(hug1:String):void
38607         {       //MethodID:4393, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38608         }
38609
38610         public function onPremleadOnSliderDisplayed():void
38611         {       //MethodID:4394, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38612         }
38613
38614         public function onPremleadOnSliderClicked():void
38615         {       //MethodID:4395, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38616         }
38617
38618         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStarted():EventResult
38619         {       //MethodID:4396, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38620                 return EventResult.THROUGH;
38621         }
38622
38623         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoPlayed():EventResult
38624         {       //MethodID:4397, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38625                 return EventResult.THROUGH;
38626         }
38627
38628         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoStopped():EventResult
38629         {       //MethodID:4398, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38630                 return EventResult.THROUGH;
38631         }
38632
38633         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onVideoEnded(hug1:Boolean):EventResult
38634         {       //MethodID:4399, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38635                 return EventResult.THROUGH;
38636         }
38637
38638         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlayerConfigAutomaticLoadingUpdated(hug1:Boolean):EventResult
38639         {       //MethodID:4400, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38640                 return EventResult.THROUGH;
38641         }
38642
38643         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdateTried():EventResult
38644         {       //MethodID:4401, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38645                 return EventResult.THROUGH;
38646         }
38647
38648         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onCommentListUpdateCompleted(hug1:Boolean):EventResult
38649         {       //MethodID:4402, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38650                 return EventResult.THROUGH;
38651         }
38652
38653         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistTargetUpdated(hug1:VideoInfo):EventResult
38654         {       //MethodID:4403, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38655                 return EventResult.THROUGH;
38656         }
38657
38658         (http://www.nicovideo.jp/as3_ns/nicoplayer/util.event.EventPipe.event_receiver) function onPlaylistInterrupted():EventResult
38659         {       //MethodID:4404, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
38660                 return EventResult.THROUGH;
38661         }
38662 }
38663
38664 //■script285■
38665
38666 package jp.nicovideo.nicoplayer.models{
38667
38668         //■class(instance)_index:349
38669         public class PremiumLeadOnSliderTarget extends Object
38670         {
38671                 //static constructor
38672                 public static function PremiumLeadOnSliderTarget$cinit()
38673                 {       //MethodID:4406, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38674                 }
38675
38676                 //static variables/etc.
38677                 public static function isTargetUser(hug1:String, hug2:Boolean=false):Boolean
38678                 {       //dispID:3, MethodID:4407, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 17
38679                         var hug3:Boolean = ((int(hug1) % 10) == 2);
38680                         return hug3;
38681                 }
38682
38683                 //constructor
38684                 public function PremiumLeadOnSliderTarget()
38685                 {       //MethodID:4408, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
38686                         super();
38687                 }
38688         }
38689 }
38690
38691 //■script286■
38692
38693 package jp.nicovideo.nicoplayer.models.log.elements{
38694
38695         import __AS3__.vec.Vector
38696         import flash.events.TimerEvent
38697         import flash.utils.Timer
38698         import jp.nicovideo.nicoplayer.models.log.LogElementName
38699         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
38700
38701         //■class(instance)_index:350
38702         public class PlayerIdleLog extends AbstractLogElement
38703         {
38704                 //static constructor
38705                 public static function PlayerIdleLog$cinit()
38706                 {       //MethodID:4410, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38707                 }
38708
38709                 //constructor
38710                 public function PlayerIdleLog(hug1:Function)
38711                 {       //MethodID:4411, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
38712                         super(hug1, LogElementName.PLAYER_IDLE, LogElementSendType.WITH_OTHER_LOGS);
38713                 }
38714
38715                 //variables/etc.
38716                 private const _PLAYER_IDLE_INTERVAL:int = 30000;                //slotID:0
38717                 private const _STOCK_COUNT:int = 3;                             //slotID:0
38718                 private const _PRIVATE_KEY_CHANNEL_ID:String = "channelID";     //slotID:0
38719                 private const _PRIVATE_KEY_VIDEO_ID:String = "videoID";         //slotID:0
38720                 private const _PRIVATE_KEY_IDLE_TIMES:String = "idleTimes";     //slotID:0
38721                 private var _timer:Timer;                                       //slotID:0
38722                 private var _idleTime:int;                                      //slotID:0
38723                 private var _isChannel:Boolean = false;                         //slotID:0
38724
38725                 public function initialize(hug1:Boolean, hug2:Boolean, hug3:String, hug4:String):void
38726                 {       //MethodID:4413, LocalCount= 6 , MaxScope= 2, MaxStack= 4, CodeLength= 286
38727                         internal var enabled:Boolean;                                   //slotID:1
38728                         internal var isChannel:Boolean;                                 //slotID:2
38729                         internal var channelID:String;                                  //slotID:3
38730                         internal var videoID:String;                                    //slotID:4
38731
38732                         enabled = hug1;
38733                         isChannel = hug2;
38734                         channelID = hug3;
38735                         videoID = hug4;
38736
38737                         reset(function():void{  //MethodID:4412, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 15
38738                                 if(_cacheStorage) _cacheStorage.close();
38739                         });
38740
38741                         this._isChannel = isChannel;
38742
38743                         if(!enabled) return;
38744                         _initializeCacheStorage("jp.nicovideo.nicoplayer.models.log.elements._PlayerIdleLog", "/");
38745
38746                         if((_cacheStorage.data[this._PRIVATE_KEY_CHANNEL_ID] != null) && (_cacheStorage.data[this._PRIVATE_KEY_CHANNEL_ID] != undefined) && (_cacheStorage.data[this._PRIVATE_KEY_VIDEO_ID] != null) && (_cacheStorage.data[this._PRIVATE_KEY_VIDEO_ID] != undefined) && (_cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] != null) && (_cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] != undefined)) this._create();
38747
38748                         if(this._isChannel){
38749                                 _cacheStorage.data[this._PRIVATE_KEY_CHANNEL_ID] = channelID;
38750                                 _cacheStorage.data[this._PRIVATE_KEY_VIDEO_ID] = videoID;
38751                                 _cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] = new Vector.<int>();
38752
38753                                 _cacheStorage.flush();
38754                         }
38755
38756                         super._onInitialized();
38757                 }
38758
38759                 private function _create():void
38760                 {       //MethodID:4414, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 102
38761                         if(this.idleTimes.length <= 0) return;
38762
38763                         var hug1:Object = {};
38764                         hug1["cid"] = _cacheStorage.data[this._PRIVATE_KEY_CHANNEL_ID];
38765                         hug1["vid"] = _cacheStorage.data[this._PRIVATE_KEY_VIDEO_ID];
38766                         hug1["times"] = this._formatTimeString;
38767
38768                         addData(hug1);
38769
38770                         if(logObjects.length >= this._STOCK_COUNT) isSendable = true;
38771                 }
38772
38773                 public function onVideoStarted():void
38774                 {       //MethodID:4415, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 66
38775                         if((this._timer == null) && isInitialized && this._isChannel){
38776                                 this._timer = new Timer(this._PLAYER_IDLE_INTERVAL, 0);
38777
38778                                 this._timer.addEventListener(TimerEvent.TIMER, this.onIdleIntervalHandler);
38779                         }
38780                 }
38781
38782                 private function onIdleIntervalHandler(hug1:TimerEvent):void
38783                 {       //MethodID:4416, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 20
38784                         this._idleTime += (this._PLAYER_IDLE_INTERVAL / 1000);
38785                 }
38786
38787                 public function onVideoPlayed():void
38788                 {       //MethodID:4417, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 55
38789                         if(this._timer != null){
38790                                 this._timer.stop();
38791
38792                                 if(this._idleTime >= (this._PLAYER_IDLE_INTERVAL / 1000)){
38793                                         this.idleTimes.push(this._idleTime);
38794                                         _cacheStorage.flush();
38795                                 }
38796                         }
38797                 }
38798
38799                 public function onVideoStopped():void
38800                 {       //MethodID:4418, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
38801                         if(this._timer != null){
38802                                 this._idleTime = 0;
38803
38804                                 this._timer.start();
38805                         }
38806                 }
38807
38808                 private function get idleTimes():Vector.<int>
38809                 {       //MethodID:4419, LocalCount= 1 , MaxScope= 1, MaxStack= 4, CodeLength= 80
38810                         if((_cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] == null) || (_cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] == undefined)) _cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] = new Vector.<int>();
38811
38812                         return _cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES];
38813                 }
38814
38815                 private function set idleTimes(hug1:Vector.<int>):void
38816                 {       //MethodID:4420, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 24
38817                         _cacheStorage.data[this._PRIVATE_KEY_IDLE_TIMES] = hug1;
38818
38819                         _cacheStorage.flush();
38820                 }
38821
38822                 private function get _formatTimeString():String
38823                 {       //MethodID:4421, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 22
38824                         return ("[" + this.idleTimes.join(",") + "]");
38825                 }
38826         }
38827 }
38828
38829 //■script287■
38830
38831 package jp.nicovideo.nicoplayer.models.log.elements{
38832
38833         import jp.nicovideo.nicoplayer.models.log.LogElementName
38834         import jp.nicovideo.nicoplayer.models.log.LogElementSendType
38835
38836         //■class(instance)_index:351
38837         public class NonSharedObjectCountLog extends AbstractLogElement
38838         {
38839                 //static constructor
38840                 public static function NonSharedObjectCountLog$cinit()
38841                 {       //MethodID:4423, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38842                 }
38843
38844                 //constructor
38845                 public function NonSharedObjectCountLog(hug1:Function)
38846                 {       //MethodID:4424, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
38847                         super(hug1, LogElementName.NON_SHAREDOBJECT_COUNT, LogElementSendType.IMMEDIATE);
38848                 }
38849
38850                 //variables/etc.
38851                 public function initialize():void
38852                 {       //MethodID:4425, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 33
38853                         super.reset();
38854
38855                         var hug1:Object = {};
38856
38857                         addData(hug1);
38858
38859                         isSendable = true;
38860
38861                         super._onInitialized();
38862                 }
38863         }
38864 }
38865
38866 //■script288■
38867
38868 package jp.nicovideo.nicoplayer.views.comment{
38869
38870         //■class(instance)_index:352
38871         public class CommentViewConstants extends Object
38872         {
38873                 //static constructor
38874                 public static function CommentViewConstants$cinit()
38875                 {       //MethodID:4427, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 29
38876                         COMMENT_SHOW_EXPIRE = 3000;
38877                         COMMENT_SHOW_AHEAD = 1000;
38878                         COMMENT_SHOW_AHEAD_POSY = 0;
38879                 }
38880
38881                 //static variables/etc.
38882                 public static const COMMENT_SHOW_EXPIRE:uint = 3000;            //slotID:1
38883                 public static const COMMENT_SHOW_AHEAD:uint = 1000;             //slotID:2
38884                 public static const COMMENT_SHOW_AHEAD_POSY:uint = 0;           //slotID:3
38885
38886                 //constructor
38887                 public function CommentViewConstants()
38888                 {       //MethodID:4428, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
38889                         super();
38890                 }
38891         }
38892 }
38893
38894 //■script289■
38895
38896 package jp.nicovideo.nicoplayer.views.comment.elements{
38897
38898         import flash.display.DisplayObject
38899         import flash.text.TextFormat
38900         import jp.nicovideo.nicoplayer.models.comment.IComment
38901         import jp.nicovideo.nicoplayer.models.comment.command.CommandSize
38902         import jp.nicovideo.util.Assert
38903
38904         //■class(instance)_index:353
38905         public class ClickableComment extends Object
38906         {
38907                 //static constructor
38908                 public static function ClickableComment$cinit()
38909                 {       //MethodID:4430, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
38910                 }
38911
38912                 //constructor
38913                 public function ClickableComment()
38914                 {       //MethodID:4431, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
38915                         super();
38916
38917                         this._buttonContainer = new ButtonContainer();
38918                 }
38919
38920                 //variables/etc.
38921                 private var _buttonContainer:ButtonContainer;                   //slotID:0
38922
38923                 public function get displayObject():DisplayObject
38924                 {       //MethodID:4432, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
38925                         return this._buttonContainer;
38926                 }
38927
38928                 public function reset(hug1:IComment):void
38929                 {       //MethodID:4434, LocalCount= 4 , MaxScope= 2, MaxStack= 4, CodeLength= 677
38930                         internal var comment:IComment;                                  //slotID:1
38931                         internal var result:Object;                                     //slotID:2
38932                         internal var _fieldFormat:TextFormat;                           //slotID:3
38933                         internal var copyTextFormat:Function;                           //slotID:4
38934                         internal var _countFormat:TextFormat;                           //slotID:5
38935                         internal var _preCountFormat:TextFormat;                        //slotID:6
38936
38937                         _countFormat = null;
38938                         _preCountFormat = null;
38939                         comment = hug1;
38940                         copyTextFormat = function(hug1:TextFormat):TextFormat{  //MethodID:4433, LocalCount= 2 , MaxScope= 0, MaxStack= 14, CodeLength= 60
38941                                 return new TextFormat(hug1.font, hug1.size, hug1.color, hug1.bold, hug1.italic, hug1.underline, hug1.url, hug1.target, hug1.align, hug1.leftMargin, hug1.rightMargin, hug1.indent, hug1.leading);
38942                         };
38943
38944                         result = new RegExp("^(.*?)\[(.*)\](.*)", "s").exec(comment.buttonComment);
38945
38946                         Assert.assert(result, ("comment.buttonComment=" + comment.buttonComment));
38947
38948                         this._buttonContainer.button.field.text = ((result[2] == "") ? " " : result[2]);
38949                         this._buttonContainer.prefix.text = result[1];
38950                         this._buttonContainer.postfix.text = result[3];
38951
38952                         if(comment.clickCount == 0){
38953                                 this._buttonContainer.button.counter.visible = false;
38954                         }else{
38955                                 this._buttonContainer.button.counter.visible = true;
38956                                 this._buttonContainer.button.counter.text = (" ×" + comment.clickCount);
38957                         }
38958
38959                         _fieldFormat = copyTextFormat(CommentTextField.BASE_TEXTFORMAT);
38960                         _fieldFormat.color = comment.command.colorCode;
38961
38962                         switch(comment.command.size){
38963                         case CommandSize.BIG:
38964                                 _fieldFormat.size = CommentTextField.TEXT_FONTSIZE_BIG;
38965                                 break;
38966                         case CommandSize.SMALL:
38967                                 _fieldFormat.size = CommentTextField.TEXT_FONTSIZE_SMALL;
38968                                 break;
38969                         default:
38970                                 _fieldFormat.size = CommentTextField.TEXT_FONTSIZE_MEDIUM;
38971                                 break;
38972                         }
38973
38974                         this._buttonContainer.button.field.setTextFormat(_fieldFormat);
38975                         this._buttonContainer.prefix.setTextFormat(_fieldFormat);
38976                         this._buttonContainer.postfix.setTextFormat(_fieldFormat);
38977
38978                         if(this._buttonContainer.button.counter.visible){
38979                                 _countFormat = copyTextFormat(_fieldFormat);
38980                                 _preCountFormat = copyTextFormat(_fieldFormat);
38981                                 var hug3:int = 0xFFFF00;
38982                                 _preCountFormat.color = hug3;
38983                                 _countFormat.color = hug3;
38984
38985                                 this._buttonContainer.button.counter.setTextFormat(_countFormat);
38986
38987                                 _preCountFormat.size = (Number(_countFormat.size) * 0.6);
38988
38989                                 this._buttonContainer.button.counter.setTextFormat(_preCountFormat, 1, 2);
38990                         }
38991
38992                         if(_fieldFormat.color == 0){
38993                                 var hug3:Array = [CommentTextField.BEVELFILTER_BLACK];
38994                                 this._buttonContainer.postfix.filters = hug3;
38995                                 this._buttonContainer.prefix.filters = hug3;
38996                         }
38997
38998                         this._buttonContainer.setupBoard();
38999
39000                         if(comment.isClickable) this._buttonContainer.initMouseHandler(comment);
39001
39002                         this._buttonContainer.visible = true;
39003                 }
39004         }
39005 }
39006
39007 //■script290■
39008
39009 package jp.nicovideo.util{
39010
39011         import flash.display.DisplayObject
39012         import flash.display.DisplayObjectContainer
39013         import flash.utils.Dictionary
39014
39015         //■class(instance)_index:354
39016         public class ZIndexManager extends Object
39017         {
39018                 //static constructor
39019                 public static function ZIndexManager$cinit()
39020                 {       //MethodID:4436, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39021                 }
39022
39023                 //constructor
39024                 public function ZIndexManager(hug1:DisplayObjectContainer)
39025                 {       //MethodID:4438, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 36
39026                         this.__mapping = new Dictionary();
39027                         this.__children = new SortedArray(function(hug1:Number, hug2:_Pair):Number{     //MethodID:4437, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 7
39028                                 return (hug1 - hug2._zIndex);
39029                         });
39030                         super();
39031
39032                         this.__container = hug1;
39033                 }
39034
39035                 //variables/etc.
39036                 private var __container:DisplayObjectContainer;                 //slotID:0
39037                 private var __mapping:Dictionary;                               //slotID:0
39038                 private var __children:SortedArray;                             //slotID:0
39039
39040                 public function setZIndex(hug1:DisplayObject, hug2:Number):void
39041                 {       //MethodID:4439, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 92
39042                         var hug3:_Pair = this.__mapping[hug1];
39043
39044                         if(!hug3){
39045                                 this.__mapping[hug1] = new _Pair(hug1, hug2);
39046                                 hug3 = new _Pair(hug1, hug2);
39047                         }else{
39048                                 if(hug3._zIndex == hug2) return;
39049                                 this.__remove_0(hug3);
39050                         }
39051
39052                         var hug4:int = this.__children.add(hug2, hug3);
39053
39054                         this.__container.addChildAt(hug1, hug4);
39055                 }
39056
39057                 public function remove(hug1:DisplayObject):void
39058                 {       //MethodID:4440, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 36
39059                         var hug2:_Pair = this.__mapping[hug1];
39060
39061                         if(!hug2) return;
39062                         this.__remove_0(hug2);
39063                         delete this.__mapping[hug1];
39064                 }
39065
39066                 private function __remove_0(hug1:_Pair):void
39067                 {       //MethodID:4442, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 30
39068                         internal var pair:_Pair;                                        //slotID:1
39069
39070                         pair = hug1;
39071
39072                         this.__children.select(function(hug1:int, hug2:_Pair):uint{     //MethodID:4441, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 33
39073                                 if(hug2 !== pair) return 0;
39074                                 __container.removeChildAt(hug1);
39075
39076                                 return (SortedArray.BREAK | SortedArray.REMOVE);
39077                         }, pair._zIndex);
39078                 }
39079         }
39080 }
39081
39082 import flash.display.DisplayObject
39083
39084 //■class(instance)_index:355
39085 //private
39086 class _Pair extends Object
39087 {
39088         //static constructor
39089         public static function _Pair$cinit()
39090         {       //MethodID:4443, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39091         }
39092
39093         //constructor
39094         public function _Pair(hug1:DisplayObject, hug2:Number)
39095         {       //MethodID:4444, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
39096                 super();
39097
39098                 this._dObj = hug1;
39099                 this._zIndex = hug2;
39100         }
39101
39102         //variables/etc.
39103         public var _dObj:DisplayObject;                                 //slotID:0
39104         public var _zIndex:Number;                                      //slotID:0
39105 }
39106
39107 //■script291■
39108
39109 package jp.nicovideo.nicoplayer.models.comment{
39110
39111         //■class(instance)_index:356
39112         public class CommandConstants extends Object
39113         {
39114                 //static constructor
39115                 public static function CommandConstants$cinit()
39116                 {       //MethodID:4446, LocalCount= 1 , MaxScope= 1, MaxStack= 35, CodeLength= 487
39117                         PLACE_TOP = "ue";
39118                         PLACE_BOTTOM = "shita";
39119                         PLACE_MIDDLE = "naka";
39120                         PLACE_RIGHT = "migi";
39121                         PLACE_LEFT = "hidari";
39122                         COLOR_WHITE = "white";
39123                         COLOR_RED = "red";
39124                         COLOR_PINK = "pink";
39125                         COLOR_ORANGE = "orange";
39126                         COLOR_YELLOW = "yellow";
39127                         COLOR_GREEN = "green";
39128                         COLOR_CYAN = "cyan";
39129                         COLOR_BLUE = "blue";
39130                         COLOR_PURPLE = "purple";
39131                         COLOR_BLACK = "black";
39132                         COLOR_WHITE2 = "white2";
39133                         COLOR_RED2 = "red2";
39134                         COLOR_PINK2 = "pink2";
39135                         COLOR_ORANGE2 = "orange2";
39136                         COLOR_YELLOW2 = "yellow2";
39137                         COLOR_GREEN2 = "green2";
39138                         COLOR_CYAN2 = "cyan2";
39139                         COLOR_BLUE2 = "blue2";
39140                         COLOR_PURPLE2 = "purple2";
39141                         COLOR_BLACK2 = "black2";
39142                         HAS_BUTTON = "is_button";
39143                         SAGE = "sage";
39144                         ANONYMITY = "184";
39145                         FULL = "full";
39146                         FROMLIVE = "_live";
39147                         PATISSIER = "patissier";
39148                         PLACE_X = [PLACE_RIGHT, PLACE_LEFT];
39149                         PLACE_Y = [PLACE_TOP, PLACE_BOTTOM, PLACE_MIDDLE];
39150                         NORMAL_COLOR_CODES = {white:0xFFFFFF, red:0xFF0000, pink:0xFF8080, orange:0xFFC000, yellow:0xFFFF00, green:0xFF00, cyan:0xFFFF, blue:255, purple:0xC000FF, black:0};
39151                         PREMIUM_COLOR_CODES = {white2:0xCCCC99, niconicowhite:0xCCCC99, red2:0xCC0033, truered:0xCC0033, pink2:0xFF33CC, orange2:0xFF6600, passionorange:0xFF6600, yellow2:0x999900, madyellow:0x999900, green2:0xCC66, elementalgreen:0xCC66, cyan2:0xCCCC, blue2:0x3399FF, marineblue:0x3399FF, purple2:0x6633CC, nobleviolet:0x6633CC, black2:0x666666};
39152                 }
39153
39154                 //static variables/etc.
39155                 public static const PLACE_TOP:String = "ue";                    //slotID:1
39156                 public static const PLACE_BOTTOM:String = "shita";              //slotID:2
39157                 public static const PLACE_MIDDLE:String = "naka";               //slotID:3
39158                 public static const PLACE_RIGHT:String = "migi";                //slotID:4
39159                 public static const PLACE_LEFT:String = "hidari";               //slotID:5
39160                 public static const COLOR_WHITE:String = "white";               //slotID:6
39161                 public static const COLOR_RED:String = "red";                   //slotID:7
39162                 public static const COLOR_PINK:String = "pink";                 //slotID:8
39163                 public static const COLOR_ORANGE:String = "orange";             //slotID:9
39164                 public static const COLOR_YELLOW:String = "yellow";             //slotID:10
39165                 public static const COLOR_GREEN:String = "green";               //slotID:11
39166                 public static const COLOR_CYAN:String = "cyan";                 //slotID:12
39167                 public static const COLOR_BLUE:String = "blue";                 //slotID:13
39168                 public static const COLOR_PURPLE:String = "purple";             //slotID:14
39169                 public static const COLOR_BLACK:String = "black";               //slotID:15
39170                 public static const COLOR_WHITE2:String = "white2";             //slotID:16
39171                 public static const COLOR_RED2:String = "red2";                 //slotID:17
39172                 public static const COLOR_PINK2:String = "pink2";               //slotID:18
39173                 public static const COLOR_ORANGE2:String = "orange2";           //slotID:19
39174                 public static const COLOR_YELLOW2:String = "yellow2";           //slotID:20
39175                 public static const COLOR_GREEN2:String = "green2";             //slotID:21
39176                 public static const COLOR_CYAN2:String = "cyan2";               //slotID:22
39177                 public static const COLOR_BLUE2:String = "blue2";               //slotID:23
39178                 public static const COLOR_PURPLE2:String = "purple2";           //slotID:24
39179                 public static const COLOR_BLACK2:String = "black2";             //slotID:25
39180                 public static const HAS_BUTTON:String = "is_button";            //slotID:26
39181                 public static const SAGE:String = "sage";                       //slotID:27
39182                 public static const ANONYMITY:String = 184;                     //slotID:28
39183                 public static const FULL:String = "full";                       //slotID:29
39184                 public static const FROMLIVE:String = "_live";                  //slotID:30
39185                 public static const PATISSIER:String = "patissier";             //slotID:31
39186                 public static const PLACE_X:Array;                              //slotID:32
39187                 public static const PLACE_Y:Array;                              //slotID:33
39188                 public static const NORMAL_COLOR_CODES:Object;                  //slotID:34
39189                 public static const PREMIUM_COLOR_CODES:Object;                 //slotID:35
39190
39191                 //constructor
39192                 public function CommandConstants()
39193                 {       //MethodID:4447, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
39194                         super();
39195                 }
39196         }
39197 }
39198
39199 //■script292■
39200
39201 package jp.nicovideo.nicoplayer.views.comment.elements{
39202
39203         import jp.nicovideo.nicoplayer.models.comment.IComment
39204
39205         //■class(instance)_index:357
39206         public interface ICommentDisplayObject
39207         {
39208                 //static constructor
39209                 public static function ICommentDisplayObject$cinit()
39210                 {       //MethodID:4449, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
39211                 }
39212
39213                 //variables/etc.
39214                 function get comment():IComment;                                            //MethodID:4450, dispID:0
39215
39216                 function set comment(hug1:IComment):void;                                   //MethodID:4451, dispID:0
39217
39218                 //constructor
39219                 public function ICommentDisplayObject();                                    //MethodID:4452, dispID:0
39220         }
39221 }
39222
39223 //■script293■
39224
39225 package jp.nicovideo.nicoplayer.views.comment.elements{
39226
39227         import flash.display.DisplayObject
39228         import flash.filters.BevelFilter
39229         import flash.text.TextFieldAutoSize
39230         import flash.text.TextFormat
39231         import jp.nicovideo.nicoplayer.models.comment.CommentConstants
39232         import jp.nicovideo.nicoplayer.models.comment.IComment
39233         import jp.nicovideo.nicoplayer.models.comment.command.CommandSize
39234
39235         //■class(instance)_index:358
39236         public class CommentTextField extends Object
39237         {
39238                 //static constructor
39239                 public static function CommentTextField$cinit()
39240                 {       //MethodID:4454, LocalCount= 1 , MaxScope= 1, MaxStack= 13, CodeLength= 126
39241                         TEXT_FONTSIZE_MEDIUM = (16 * 1.5);
39242                         TEXT_FONTSIZE_BIG = (26 * 1.5);
39243                         TEXT_FONTSIZE_SMALL = (10 * 1.5);
39244                         BASE_TEXTFORMAT = new TextFormat("Arial", TEXT_FONTSIZE_MEDIUM, 0xFFFFFF, true);
39245                         BEVELFILTER_NORMAL = new BevelFilter(1, 45, 0, 1, 0, 1, 2, 2, 1, 1, "outer");
39246                         BEVELFILTER_BLACK = new BevelFilter(1, 45, 0xFFFFFF, 1, 0, 1, 2, 2, 1, 1, "outer");
39247                 }
39248
39249                 //static variables/etc.
39250                 public static const TEXT_FONTSIZE_MEDIUM:Number = 24.0;         //slotID:1
39251                 public static const TEXT_FONTSIZE_BIG:Number = 39.0;            //slotID:2
39252                 public static const TEXT_FONTSIZE_SMALL:Number = 15.0;          //slotID:3
39253                 public static const BASE_TEXTFORMAT:TextFormat;                 //slotID:4
39254                 public static const BEVELFILTER_NORMAL:BevelFilter;             //slotID:5
39255                 public static const BEVELFILTER_BLACK:BevelFilter;              //slotID:6
39256
39257                 public static function getCommentFontSize(hug1:String):Number
39258                 {       //dispID:3, MethodID:4455, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 89
39259                         var hug2:String = hug1;
39260
39261                         switch(hug2){
39262                         case CommandSize.BIG:
39263                                 return TEXT_FONTSIZE_BIG;
39264                         case CommandSize.SMALL:
39265                                 return TEXT_FONTSIZE_SMALL;
39266                         default:
39267                                 return TEXT_FONTSIZE_MEDIUM;
39268                                 break;
39269                         }
39270                 }
39271
39272                 //constructor
39273                 public function CommentTextField()
39274                 {       //MethodID:4456, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 46
39275                         super();
39276
39277                         this._textField = new CommentText();
39278                         this._textField.autoSize = TextFieldAutoSize.CENTER;
39279                         this._textField.selectable = false;
39280                         this._textField.multiline = true;
39281                 }
39282
39283                 //variables/etc.
39284                 private var _textField:CommentText;                             //slotID:0
39285
39286                 public function get displayObject():DisplayObject
39287                 {       //MethodID:4457, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39288                         return this._textField;
39289                 }
39290
39291                 public function reset(hug1:IComment, hug2:int):void
39292                 {       //MethodID:4458, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 280
39293                         var hug4:Number = NaN;
39294                         var hug5:String = null;
39295                         this._textField.comment = hug1;
39296                         this._textField.text = hug1.message;
39297                         var hug3:TextFormat = BASE_TEXTFORMAT;
39298                         hug3.color = hug1.command.colorCode;
39299                         hug3.size = getCommentFontSize(hug1.command.size);
39300
39301                         this._textField.setTextFormat(hug3);
39302
39303                         if(hug3.color == 0){
39304                                 this._textField.filters = [BEVELFILTER_BLACK];
39305                         }else{
39306                                 this._textField.filters = [BEVELFILTER_NORMAL];
39307                         }
39308
39309                         if(hug1.justPosted){
39310                                 this._textField.border = true;
39311                                 hug4 = 0xFFFF00;
39312
39313                                 if(hug1.commentList){
39314                                         hug5 = hug1.commentList.name;
39315
39316                                         if(hug5 == CommentConstants.CL_NICOS){
39317                                                 hug4 = 0xFF00;
39318                                         }else if(hug5 == CommentConstants.CL_LOCAL){
39319                                                 hug4 = 255;
39320                                         }
39321                                 }
39322
39323                                 this._textField.borderColor = hug4;
39324                                 this._textField.alpha = 1;
39325                         }else{
39326                                 this._textField.border = false;
39327
39328                                 if(hug2 == (-1)){
39329                                         this._textField.alpha = 1;
39330                                 }else{
39331                                         this._textField.alpha = (0.6 + ((hug1.resNo / hug2) * 0.4));
39332                                 }
39333                         }
39334
39335                         if(hug1.command.fromLive) this._textField.alpha = 0.5;
39336                 }
39337         }
39338 }
39339
39340 import flash.text.TextField
39341 import jp.nicovideo.nicoplayer.models.comment.IComment
39342
39343 //■class(instance)_index:359
39344 //private
39345 class CommentText extends TextField implements ICommentDisplayObject
39346 {
39347         //static constructor
39348         public static function CommentText$cinit()
39349         {       //MethodID:4459, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39350         }
39351
39352         //constructor
39353         public function CommentText()
39354         {       //MethodID:4460, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
39355                 super();
39356         }
39357
39358         //variables/etc.
39359         private var _comment:IComment;                                  //slotID:0
39360
39361         public function get comment():IComment
39362         {       //MethodID:4461, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39363                 return this._comment;
39364         }
39365
39366         public function set comment(hug1:IComment):void
39367         {       //MethodID:4462, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
39368                 this._comment = hug1;
39369         }
39370 }
39371
39372 //■script294■
39373
39374 package jp.nicovideo.util{
39375
39376         //■class(instance)_index:360
39377         public interface IObjectPool
39378         {
39379                 //static constructor
39380                 public static function IObjectPool$cinit()
39381                 {       //MethodID:4464, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
39382                 }
39383
39384                 //variables/etc.
39385                 function create(... rest):*;                                                //MethodID:4465, dispID:0
39386
39387                 function restore(hug1:*):void;                                              //MethodID:4466, dispID:0
39388
39389                 //constructor
39390                 public function IObjectPool();                                              //MethodID:4467, dispID:0
39391         }
39392 }
39393
39394 //■script295■
39395
39396 package jp.nicovideo.util{
39397
39398         //■class(instance)_index:361
39399         public class ObjectPool extends Object implements IObjectPool
39400         {
39401                 //static constructor
39402                 public static function ObjectPool$cinit()
39403                 {       //MethodID:4469, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39404                 }
39405
39406                 //constructor
39407                 public function ObjectPool(hug1:Function, hug2:uint=0xFFFFFFFF, hug3:Function=null)
39408                 {       //MethodID:4470, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 27
39409                         this._pool = [];
39410
39411                         super();
39412
39413                         this._create = hug1;
39414                         this._reset = hug3;
39415                         this._limit = hug2;
39416                 }
39417
39418                 //variables/etc.
39419                 private var _create:Function;                                   //slotID:0
39420                 private var _reset:Function;                                    //slotID:0
39421                 private var _limit:uint;                                        //slotID:0
39422                 private var _pool:Array;                                        //slotID:0
39423
39424                 public function create(... rest):*
39425                 {       //MethodID:4471, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 105
39426                         var hug2:* = undefined;
39427
39428                         if(this._pool.length != 0){
39429                                 hug2 = this._pool.pop();
39430
39431                                 if(this._reset != null) hug2 = this._reset.apply(null, [hug2].concat(rest));
39432                         }else if(this._limit > 0){
39433                                 this._limit--;
39434                                 hug2 = this._create.apply(null, rest);
39435                         }
39436
39437                         return hug2;
39438                 }
39439
39440                 public function restore(hug1:*):void
39441                 {       //MethodID:4472, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
39442                         this._pool.push(hug1);
39443                 }
39444         }
39445 }
39446
39447 //■script296■
39448
39449 package jp.nicovideo.nicoplayer.views.comment{
39450
39451         import flash.errors.IllegalOperationError
39452         import jp.nicovideo.nicoplayer.models.comment.CommandConstants
39453
39454         //■class(instance)_index:362
39455         public class ViewEntry extends Object
39456         {
39457                 //static constructor
39458                 public static function ViewEntry$cinit()
39459                 {       //MethodID:4474, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39460                 }
39461
39462                 //constructor
39463                 public function ViewEntry(hug1:Number, hug2:uint, hug3:String, hug4:IDisplayObjectProvider, hug5:Number, hug6:Boolean)
39464                 {       //MethodID:4475, LocalCount= 7 , MaxScope= 1, MaxStack= 2, CodeLength= 44
39465                         super();
39466
39467                         this.__vpos = hug1;
39468                         this.__duration = hug2;
39469                         this.__type = hug3;
39470                         this.__provider = hug4;
39471                         this.__order = hug5;
39472                         this.type = hug3;
39473                         this._isFullWidth = hug6;
39474                 }
39475
39476                 //variables/etc.
39477                 private var __vpos:Number;                                      //slotID:0
39478                 private var __duration:uint;                                    //slotID:0
39479                 private var __type:String;                                      //slotID:0
39480                 private var __provider:IDisplayObjectProvider;                  //slotID:0
39481                 private var __order:Number;                                     //slotID:0
39482                 private var _isFullWidth:Boolean = false;                       //slotID:0
39483
39484                 public function get vpos():Number
39485                 {       //MethodID:4476, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39486                         return this.__vpos;
39487                 }
39488
39489                 public function get type():String
39490                 {       //MethodID:4477, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39491                         return this.__type;
39492                 }
39493
39494                 public function set type(hug1:String):void
39495                 {       //MethodID:4478, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 133
39496                         if(hug1 == ""){
39497                                 this.__type = CommandConstants.PLACE_MIDDLE;
39498                                 return;
39499                         }
39500
39501                         var hug2:String = hug1;
39502
39503                         switch(hug2){
39504                         case CommandConstants.PLACE_BOTTOM:
39505                         case CommandConstants.PLACE_MIDDLE:
39506                         case CommandConstants.PLACE_TOP:
39507                                 break;
39508                         default:
39509                                 throw new IllegalOperationError("type=" + hug1);
39510                         }
39511
39512                         this.__type = hug1;
39513                 }
39514
39515                 public function get provider():IDisplayObjectProvider
39516                 {       //MethodID:4479, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39517                         return this.__provider;
39518                 }
39519
39520                 public function get vend():Number
39521                 {       //MethodID:4480, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
39522                         return (this.__vpos + this.__duration);
39523                 }
39524
39525                 public function get order():Number
39526                 {       //MethodID:4481, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39527                         return this.__order;
39528                 }
39529
39530                 public function get isFullWidth():Boolean
39531                 {       //MethodID:4482, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39532                         return this._isFullWidth;
39533                 }
39534         }
39535 }
39536
39537 //■script297■
39538
39539 package jp.nicovideo.nicoscript.macro.parsers{
39540
39541         import jp.nicovideo.nicoscript.macro.NicoScriptError
39542         import jp.nicovideo.util.loka.__MSG__
39543
39544         //■class(instance)_index:363
39545         public class MacroParser extends Object
39546         {
39547                 //static constructor
39548                 public static function MacroParser$cinit()
39549                 {       //MethodID:4484, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39550                 }
39551
39552                 //static variables/etc.
39553                 public static function findMacroName(hug1:String):String
39554                 {       //dispID:3, MethodID:4485, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
39555                         return _Parser.findMacroName(hug1);
39556                 }
39557
39558                 public static function parse(hug1:String):IMacroParserResult
39559                 {       //dispID:4, MethodID:4486, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 56
39560                         var hug2:Object = _Parser.parse(hug1);
39561
39562                         if(!hug2) throw new NicoScriptError(__MSG__("ニコスクリプトが含まれていません。文法を確認してください。"));
39563
39564                         return new _MacroParserResult(hug2.macroName, hug2.label, hug2.args);
39565                 }
39566
39567                 //constructor
39568                 public function MacroParser()
39569                 {       //MethodID:4487, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
39570                         super();
39571                 }
39572         }
39573 }
39574
39575
39576 //■class(instance)_index:364
39577 //private
39578 class _Parser extends Object
39579 {
39580         //static constructor
39581         public static function _Parser$cinit()
39582         {       //MethodID:4488, LocalCount= 1 , MaxScope= 1, MaxStack= 6, CodeLength= 619
39583                 SPACE_CHAR = "  ";
39584                 SPACE = ("[" + SPACE_CHAR + "]");
39585                 SOME_SPACES = (SPACE + "+");
39586                 ANY_SPACES = (SPACE + "*");
39587                 LABEL_SYMBOL_CHAR = "::";
39588                 LABEL_SYMBOL = ("[" + LABEL_SYMBOL_CHAR + "]");
39589                 LABEL_NAME_CHAR = ("[^" + SPACE_CHAR + "]");
39590                 LABEL_NAME = ("(?P<label>" + LABEL_NAME_CHAR + "+)");
39591                 LABEL = ("(?:" + LABEL_SYMBOL + LABEL_NAME + ")");
39592                 MACRO_SYMBOL_CHAR = "@@";
39593                 MACRO_SYMBOL = ("[" + MACRO_SYMBOL_CHAR + "]");
39594                 MACRO_NAME_CHAR = ("[^" + LABEL_SYMBOL_CHAR + SPACE_CHAR + "]");
39595                 MACRO_NAME = ("(?P<macroName>" + MACRO_NAME_CHAR + "+)");
39596                 MACRO = ("(?:" + MACRO_SYMBOL + MACRO_NAME + ")");
39597                 ARG_VALUE_SEP_CHAR = ",、,、";
39598                 ARG_VALUE_SEP = ("[" + ARG_VALUE_SEP_CHAR + "]");
39599                 VALUE_QUOTES = ["''", "\"\"", "「」", "‘’", "“”"];
39600                 QUOTED_VALUE = _buildQuotedValuePattern(VALUE_QUOTES, false);
39601                 NAKED_VALUE = ("[^" + SPACE_CHAR + ARG_VALUE_SEP_CHAR + "]+");
39602                 ARG_VALUE = ("(?:" + QUOTED_VALUE + "|" + NAKED_VALUE + ")");
39603                 ARG = (ARG_VALUE + "(?:" + ARG_VALUE_SEP + ARG_VALUE + ")*");
39604                 ARG_SEP = SOME_SPACES;
39605                 ARG_LIST = (ARG + "(?:" + ARG_SEP + ARG + ")*");
39606                 ARGS = ("(?:" + SOME_SPACES + "(?P<args>" + ARG_LIST + ")" + ")");
39607                 FIND_MACRO_NAME = new RegExp(("^" + ANY_SPACES + MACRO), "x");
39608                 SOURCE_PARSER = new RegExp(("^" + ANY_SPACES + MACRO + LABEL + "?" + ARGS + "?" + ANY_SPACES + "$"), "x");
39609                 ARG_SCANNER = new RegExp(("(?:" + "^" + ANY_SPACES + "|" + ARG_SEP + ")" + "(?P<arg>" + ARG + ")"), "xg");
39610                 QUOTED_VALUE_TESTER = new RegExp("^(?:" + _buildQuotedValuePattern(VALUE_QUOTES, true) + ")$");
39611                 ARG_VALUE_SCANNER = new RegExp(("(?:" + "^" + "|" + ARG_VALUE_SEP + ")" + "(?P<value>" + ARG_VALUE + ")"), "xg");
39612         }
39613
39614         //static variables/etc.
39615         private static const SPACE_CHAR:String = "  ";                 //slotID:1
39616         private static const SPACE:String;                              //slotID:2
39617         private static const SOME_SPACES:String;                        //slotID:3
39618         private static const ANY_SPACES:String;                         //slotID:4
39619         private static const LABEL_SYMBOL_CHAR:String = "::";          //slotID:5
39620         private static const LABEL_SYMBOL:String;                       //slotID:6
39621         private static const LABEL_NAME_CHAR:String;                    //slotID:7
39622         private static const LABEL_NAME:String;                         //slotID:8
39623         private static const LABEL:String;                              //slotID:9
39624         private static const MACRO_SYMBOL_CHAR:String = "@@";          //slotID:10
39625         private static const MACRO_SYMBOL:String;                       //slotID:11
39626         private static const MACRO_NAME_CHAR:String;                    //slotID:12
39627         private static const MACRO_NAME:String;                         //slotID:13
39628         private static const MACRO:String;                              //slotID:14
39629         private static const ARG_VALUE_SEP_CHAR:String = ",、,、";      //slotID:15
39630         private static const ARG_VALUE_SEP:String;                      //slotID:16
39631         private static const VALUE_QUOTES:Array;                        //slotID:17
39632         private static const QUOTED_VALUE:String;                       //slotID:18
39633         private static const NAKED_VALUE:String;                        //slotID:19
39634         private static const ARG_VALUE:String;                          //slotID:20
39635         private static const ARG:String;                                //slotID:21
39636         private static const ARG_SEP:String;                            //slotID:22
39637         private static const ARG_LIST:String;                           //slotID:23
39638         private static const ARGS:String;                               //slotID:24
39639         private static const FIND_MACRO_NAME:RegExp;                    //slotID:25
39640         private static const SOURCE_PARSER:RegExp;                      //slotID:26
39641         private static const ARG_SCANNER:RegExp;                        //slotID:27
39642         private static const QUOTED_VALUE_TESTER:RegExp;                //slotID:28
39643         private static const ARG_VALUE_SCANNER:RegExp;                  //slotID:29
39644
39645         public static function findMacroName(hug1:String):String
39646         {       //dispID:3, MethodID:4489, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 30
39647                 var hug2:Object = FIND_MACRO_NAME.exec(hug1);
39648                 return (hug2 ? hug2.macroName : null);
39649         }
39650
39651         public static function parse(hug1:String):Object
39652         {       //dispID:4, MethodID:4490, LocalCount= 6 , MaxScope= 1, MaxStack= 6, CodeLength= 100
39653                 var hug4:Object = null;
39654                 var hug2:Object = SOURCE_PARSER.exec(hug1);
39655
39656                 if(!hug2) return null;
39657
39658                 var hug3:Array = [];
39659                 ARG_SCANNER.lastIndex = 0;
39660                 hug4 = ARG_SCANNER.exec(hug2.args);
39661
39662                 while(ARG_SCANNER.exec(hug2.args)){
39663                         hug3.push(hug4.arg);
39664                 }
39665
39666                 return {macroName:hug2.macroName, label:hug2.label, args:hug3};
39667         }
39668
39669         public static function unquote(hug1:String):String
39670         {       //dispID:5, MethodID:4491, LocalCount= 8 , MaxScope= 1, MaxStack= 4, CodeLength= 125
39671                 var hug4:String = null;
39672                 var hug5:String = null;
39673                 var hug2:Object = QUOTED_VALUE_TESTER.exec(hug1);
39674
39675                 if(!hug2) return hug1;
39676
39677                 var hug3:int = 1;
39678
39679                 for each(hug4 in VALUE_QUOTES){
39680                         if(hug2[hug3] !== undefined){
39681                                 hug5 = hug4.charAt(1);
39682                                 return hug2[hug3].replace(new RegExp(("\\" + hug5 + "\\" + hug5), "g"), hug5);
39683                         }
39684
39685                         hug3++;
39686                 }
39687
39688                 return hug1;
39689         }
39690
39691         public static function splitArgs(hug1:String):Array
39692         {       //dispID:6, MethodID:4492, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 64
39693                 var hug3:Object = null;
39694                 var hug2:Array = [];
39695                 ARG_VALUE_SCANNER.lastIndex = 0;
39696                 hug3 = ARG_VALUE_SCANNER.exec(hug1);
39697
39698                 while(ARG_VALUE_SCANNER.exec(hug1)){
39699                         hug2.push(unquote(hug3.value));
39700                 }
39701
39702                 return hug2;
39703         }
39704
39705         private static function _buildQuotedValuePattern(hug1:Array, hug2:Boolean):String
39706         {       //dispID:7, MethodID:4493, LocalCount= 9 , MaxScope= 1, MaxStack= 3, CodeLength= 146
39707                 var hug4:String = null;
39708                 var hug5:String = null;
39709                 var hug6:String = null;
39710                 var hug3:Array = [];
39711
39712                 for each(hug6 in hug1){
39713                         hug4 = hug6.charAt(0);
39714                         hug5 = hug6.charAt(1);
39715
39716                         hug3.push(hug4 + (hug2 ? "(" : "") + "(?:[^" + hug5 + "]|" + hug5 + hug5 + ")*" + (hug2 ? ")" : "") + hug5);
39717                 }
39718
39719                 return hug3.join("|");
39720         }
39721
39722         //constructor
39723         public function _Parser()
39724         {       //MethodID:4494, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
39725                 super();
39726         }
39727 }
39728
39729 //■class(instance)_index:365
39730 //private
39731 class _MacroParserResult extends Object implements IMacroParserResult
39732 {
39733         //static constructor
39734         public static function _MacroParserResult$cinit()
39735         {       //MethodID:4495, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39736         }
39737
39738         //constructor
39739         public function _MacroParserResult(hug1:String, hug2:String, hug3:Array)
39740         {       //MethodID:4496, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 27
39741                 super();
39742
39743                 this._macroName = hug1;
39744                 this._label = hug2;
39745                 this._args = hug3;
39746                 this._cachedArgs = {};
39747         }
39748
39749         //variables/etc.
39750         private var _macroName:String;                                  //slotID:0
39751         private var _label:String;                                      //slotID:0
39752         private var _args:Array;                                        //slotID:0
39753         private var _cachedArgs:Object;                                 //slotID:0
39754
39755         public function get macroName():String
39756         {       //MethodID:4497, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39757                 return this._macroName;
39758         }
39759
39760         public function get label():String
39761         {       //MethodID:4498, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
39762                 return this._label;
39763         }
39764
39765         public function get argLength():int
39766         {       //MethodID:4499, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
39767                 return this._args.length;
39768         }
39769
39770         public function arg(hug1:int, hug2:String=null):String
39771         {       //MethodID:4500, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 64
39772                 if(hug1 in this._cachedArgs) return this._cachedArgs[hug1];
39773
39774                 if(this._args.length <= hug1) return hug2;
39775
39776                 this._cachedArgs[hug1] = _Parser.unquote(this._args[hug1]);
39777                 return _Parser.unquote(this._args[hug1]);
39778         }
39779
39780         public function argArray(hug1:int, hug2:Array=null):Array
39781         {       //MethodID:4501, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 76
39782                 if(("a" + hug1) in this._cachedArgs) return this._cachedArgs["a" + hug1];
39783
39784                 if(this._args.length <= hug1) return hug2;
39785
39786                 this._cachedArgs["a" + hug1] = _Parser.splitArgs(this._args[hug1]);
39787                 return _Parser.splitArgs(this._args[hug1]);
39788         }
39789 }
39790
39791 //■script298■
39792
39793 package jp.nicovideo.nicoplayer.storages.commentStorage{
39794
39795         import flash.events.TimerEvent
39796         import flash.utils.Timer
39797
39798         //■class(instance)_index:366
39799         public class Poller extends Object
39800         {
39801                 //static constructor
39802                 public static function Poller$cinit()
39803                 {       //MethodID:4503, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39804                 }
39805
39806                 //constructor
39807                 public function Poller(hug1:Function)
39808                 {       //MethodID:4505, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 60
39809                         internal var poller:Function;                                   //slotID:1
39810
39811                         poller = hug1;
39812                         this.__timer = new Timer(1000 * 30);
39813                         this.__callback_Q = [];
39814
39815                         super();
39816
39817                         this.__poller = poller;
39818
39819                         this.__timer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{ //MethodID:4504, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 9
39820                                 __doPoll(false);
39821                         });
39822                 }
39823
39824                 //variables/etc.
39825                 private var __poller:Function;                                  //slotID:0
39826                 private var __enabled:Boolean;                                  //slotID:0
39827                 private var __waiting:Boolean;                                  //slotID:0
39828                 private var __timer:Timer;                                      //slotID:0
39829                 private var __callback_Q:Array;                                 //slotID:0
39830
39831                 public function get interval():int
39832                 {       //MethodID:4506, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
39833                         return this.__timer.delay;
39834                 }
39835
39836                 public function set interval(hug1:int):void
39837                 {       //MethodID:4507, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
39838                         this.__timer.delay = hug1;
39839                 }
39840
39841                 public function resume():void
39842                 {       //MethodID:4508, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 23
39843                         if(this.__enabled) return;
39844
39845                         this.__enabled = true;
39846
39847                         this.__resetPoller(false);
39848                 }
39849
39850                 public function suspend():void
39851                 {       //MethodID:4509, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 25
39852                         if(!this.__enabled) return;
39853
39854                         this.__enabled = false;
39855
39856                         this.__timer.stop();
39857                 }
39858
39859                 public function pollImmediately(hug1:Function=null):void
39860                 {       //MethodID:4510, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 24
39861                         if(hug1 != null) this.__callback_Q.push(hug1);
39862                         this.__resetPoller(true);
39863                 }
39864
39865                 private function __resetPoller(hug1:Boolean):void
39866                 {       //MethodID:4511, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 43
39867                         if(this.__waiting) return;
39868                         this.__timer.stop();
39869
39870                         if(hug1){
39871                                 this.__doPoll(true);
39872                         }else{
39873                                 this.__timer.start();
39874                         }
39875                 }
39876
39877                 private function __doPoll(hug1:Boolean):void
39878                 {       //MethodID:4514, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 25
39879                         internal var force:Boolean;                                     //slotID:1
39880
39881                         force = hug1;
39882                         this.__waiting = true;
39883
39884                         this.__poller(function(hug1:Function):Function{ //MethodID:4513, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 13
39885                                 internal var f:Function;                                        //slotID:1
39886
39887                                 f = hug1;
39888                                 return function(... rest):void{ //MethodID:4512, LocalCount= 5 , MaxScope= 0, MaxStack= 3, CodeLength= 97
39889                                         var hug2:* = undefined;
39890                                         __waiting = false;
39891
39892                                         if(__enabled || force){
39893                                                 if(__enabled) __resetPoller(false);
39894                                                 f.apply(null, rest);
39895                                         }
39896
39897                                         for each(hug2 in __callback_Q){
39898                                                 hug2();
39899                                         }
39900
39901                                         __callback_Q = [];
39902                                 };
39903                         });
39904                 }
39905         }
39906 }
39907
39908 //■script299■
39909
39910 package jp.nicovideo.nicoplayer.storages.commentStorage{
39911
39912         import flash.errors.IllegalOperationError
39913         import jp.nicovideo.nicoplayer.storages.MessageServerClient
39914         import jp.nicovideo.util.ObjectUtils
39915
39916         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
39917
39918         //■class(instance)_index:367
39919         public class RequestDispatcher extends Object
39920         {
39921                 //static constructor
39922                 public static function RequestDispatcher$cinit()
39923                 {       //MethodID:4516, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
39924                 }
39925
39926                 //constructor
39927                 public function RequestDispatcher(hug1:Boolean)
39928                 {       //MethodID:4517, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 29
39929                         this.__request_Q = [];
39930                         this.__actives = [];
39931                         this.__passives = [];
39932
39933                         super();
39934
39935                         this.__useChunk = hug1;
39936                 }
39937
39938                 //variables/etc.
39939                 private var __useChunk:Boolean = false;                         //slotID:0
39940                 private var __request_Q:Array;                                  //slotID:0
39941                 private var __actives:Array;                                    //slotID:0
39942                 private var __passives:Array;                                   //slotID:0
39943                 private var __sendRequest_Q:Array = null;                       //slotID:0
39944                 private var __proceeding:Boolean;                               //slotID:0
39945
39946                 public function addRequest(hug1:Request):void
39947                 {       //MethodID:4519, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 20
39948                         internal var req:Request;                                       //slotID:1
39949
39950                         req = hug1;
39951
39952                         this.__proceed(function():void{ //MethodID:4518, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 49
39953                                 if(__butting(req, __actives)){
39954                                         __request_Q.push(req);
39955
39956                                         return;
39957                                 }
39958
39959                                 __actives.push(req);
39960                                 __proceedRequest(req);
39961                         });
39962                 }
39963
39964                 public function addPassiveRequest(hug1:Request):void
39965                 {       //MethodID:4521, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 20
39966                         internal var req:Request;                                       //slotID:1
39967
39968                         req = hug1;
39969
39970                         this.__proceed(function():void{ //MethodID:4520, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 21
39971                                 __passives.push(req);
39972                                 __proceedRequest(req);
39973                         });
39974                 }
39975
39976                 private function __butting(hug1:Request, hug2:Array):Boolean
39977                 {       //MethodID:4522, LocalCount= 12 , MaxScope= 1, MaxStack= 2, CodeLength= 142
39978                         var hug3:Request = null;
39979                         var hug4:LockDesc = null;
39980                         var hug5:LockDesc = null;
39981
39982                         for each(hug3 in hug2){
39983                                 for each(hug4 in hug1.locks){
39984                                         for each(hug5 in hug3.locks){
39985                                                 if(hug4.buttingWith(hug5)) return true;
39986                                         }
39987                                 }
39988                         }
39989
39990                         return false;
39991                 }
39992
39993                 private function __proceedRequest(hug1:Request):void
39994                 {       //MethodID:4525, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 80
39995                         internal var req:Request;                                       //slotID:1
39996
39997                         req = hug1;
39998
39999                         if(!req.transactor) return;
40000
40001                         if(!this.__useChunk){
40002                                 req.transactor.start();
40003
40004                                 return;
40005                         }
40006
40007                         if(!this.__sendRequest_Q){
40008                                 this.__sendRequest_Q = [];
40009
40010                                 ObjectUtils.callLater(function():void{  //MethodID:4524, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 78
40011                                         if(__sendRequest_Q.length == 1){
40012                                                 Request(__sendRequest_Q[0]).transactor.start();
40013                                         }else{
40014                                                 Request(__sendRequest_Q[0]).parent.__client.chunk(function(hug1:MessageServerClient):void{      //MethodID:4523, LocalCount= 5 , MaxScope= 0, MaxStack= 2, CodeLength= 47
40015                                                         var hug2:Request = null;
40016
40017                                                         for each(hug2 in __sendRequest_Q){
40018                                                                 hug2.transactor.start();
40019                                                         }
40020                                                 });
40021                                         }
40022
40023                                         __sendRequest_Q = null;
40024                                 });
40025                         }
40026
40027                         this.__sendRequest_Q.push(req);
40028                 }
40029
40030                 public function receive(hug1:String, hug2:Array):Boolean
40031                 {       //MethodID:4527, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 26
40032                         internal var name:String;                                       //slotID:1
40033                         internal var args:Array;                                        //slotID:2
40034
40035                         name = hug1;
40036                         args = hug2;
40037                         return this.__proceed(function():Boolean{       //MethodID:4526, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 158
40038                                 var hug2:* = undefined;
40039                                 var hug1:* = (__forEachMatchedRequest(__actives, name, args) || __forEachMatchedRequest(__passives, name, args) && -1);
40040
40041                                 if(hug1 == 0) return false;
40042
40043                                 if(hug1 != (-1)){
40044                                         hug2 = 0;
40045
40046                                         while(hug2 < __request_Q.length){
40047                                                 if(!__butting(__request_Q[hug2], __actives)){
40048                                                         __actives.push(__request_Q[hug2]);
40049                                                         __proceedRequest(__request_Q.splice((hug2--), 1)[0]);
40050                                                 }
40051
40052                                                 hug2++;
40053                                         }
40054                                 }
40055
40056                                 return true;
40057                         }, true);
40058                 }
40059
40060                 public function spoil():void
40061                 {       //MethodID:4530, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 25
40062                         internal var spoil_0:Function;                                  //slotID:1
40063
40064                         spoil_0 = function(hug1:Array):void{    //MethodID:4528, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 58
40065                                 var hug3:Request = null;
40066                                 var hug2:int = 0;
40067
40068                                 while(hug2 < hug1.length){
40069                                         hug3 = hug1[hug2];
40070
40071                                         hug3.onDisconnect();
40072
40073                                         if(!hug3.indomitable) hug1.splice((hug2--), 1);
40074
40075                                         hug2++;
40076                                 }
40077                         };
40078
40079                         this.__proceed(function():void{ //MethodID:4529, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 23
40080                                 spoil_0(__actives);
40081                                 spoil_0(__passives);
40082                         }, true);
40083                 }
40084
40085                 private function __forEachMatchedRequest(hug1:Array, hug2:String, hug3:Array):int
40086                 {       //MethodID:4531, LocalCount= 7 , MaxScope= 5, MaxStack= 4, CodeLength= 617
40087                         internal var requests:Array;                                    //slotID:1
40088                         internal var name:String;                                       //slotID:2
40089                         internal var args:Array;                                        //slotID:3
40090                         internal var j:int;                                             //slotID:4
40091                         internal var req:Request;                                       //slotID:5
40092                         internal var i:int;                                             //slotID:6
40093                         internal var lock:LockDesc;                                     //slotID:7
40094                         internal var found:Boolean;                                     //slotID:8
40095                         internal var key:String;                                        //slotID:9
40096                         internal var select:String;                                     //slotID:10
40097
40098                         j = 0;
40099                         req = null;
40100                         i = 0;
40101                         lock = null;
40102                         found = false;
40103                         key = null;
40104                         select = null;
40105                         requests = hug1;
40106                         name = hug2;
40107                         args = hug3;
40108                         j = 0;
40109
40110                         while(j < requests.length){
40111                                 req = requests[j];
40112                                 i = 0;
40113
40114                                 while(i < req.locks.length){
40115                                         lock = req.locks[i];
40116
40117                                         if(lock._name != name){
40118                                         }else{
40119                                                 found = false;
40120
40121                                                 for(key in lock._pattern){
40122                                                         if(lock._pattern[key] != args[int(key)]){
40123                                                                 found = true;
40124                                                                 break;
40125                                                         }
40126                                                 }
40127
40128                                                 if(found) break;
40129
40130                                                 try{
40131                                                         select = req.transactor.proceed(name, args);
40132                                                 }
40133                                                 catch(error:TransactorError){
40134                                                         req.onErrorOccured.apply(null, error.args);
40135                                                         requests.splice(j, 1);
40136
40137                                                         return 1;
40138                                                 }
40139
40140                                                 switch(select){
40141                                                 case AbstractTransactor.MSG_COMPLETE:
40142                                                         req.locks.splice(i, 1);
40143
40144                                                         if(req.locks.length != 0) return 1;
40145
40146                                                 case AbstractTransactor.MSG_QUIT:
40147                                                 case AbstractTransactor.MSG_REJECT_TO_QUIT:
40148                                                         requests.splice(j, 1);
40149                                                         req.onQuit();
40150
40151                                                         if(select == AbstractTransactor.MSG_REJECT_TO_QUIT) break;
40152
40153                                                         return 1;
40154                                                 case AbstractTransactor.MSG_CONTINUE:
40155                                                         return -1;
40156                                                 case AbstractTransactor.MSG_REJECT:
40157                                                         break;
40158                                                 default:
40159                                                         break;
40160                                                 }
40161                                         }
40162
40163                                         i++;
40164                                 }
40165
40166                                 j++;
40167                         }
40168
40169                         return 0;
40170                 }
40171
40172                 private function __proceed(hug1:Function, hug2:Boolean=false):*
40173                 {       //MethodID:4532, LocalCount= 6 , MaxScope= 7, MaxStack= 4, CodeLength= 170
40174                         internal var f:Function;                                        //slotID:1
40175                         internal var ensureImmediatelyCalling:Boolean = false;          //slotID:2
40176
40177                         f = hug1;
40178                         ensureImmediatelyCalling = hug2;
40179
40180                         if(this.__proceeding){
40181                                 if(ensureImmediatelyCalling) throw new IllegalOperationError("RequestDispatcher.__proceed: OMG.");
40182                                 ObjectUtils.callLater(this.__proceed, f);
40183
40184                                 return undefined;
40185                         }
40186
40187                         try{
40188                                 this.__proceeding = true;
40189                                 var hug4:* = f();
40190                                 return hug4;
40191                         }
40192                         finally{
40193                                 this.__proceeding = false;
40194                         }
40195
40196                         return undefined;
40197                 }
40198
40199                 private function __dumpLocks(hug1:String, hug2:Array):void
40200                 {       //MethodID:4533, LocalCount= 9 , MaxScope= 1, MaxStack= 4, CodeLength= 141
40201                         var hug3:LockDesc = null;
40202                         var hug4:String = null;
40203
40204                         if(hug2.length == 0) return;
40205                         trace(hug1);
40206
40207                         for each(hug3 in hug2){
40208                                 trace("\tlock:" + hug3._name);
40209
40210                                 for(hug4 in hug3._pattern){
40211                                         trace(("\t\t*" + hug4 + "=") + hug3._pattern[hug4]);
40212                                 }
40213                         }
40214                 }
40215
40216                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get actives():Array
40217                 {       //MethodID:4534, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
40218                         return this.__actives;
40219                 }
40220
40221                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get request_Q():Array
40222                 {       //MethodID:4535, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
40223                         return this.__request_Q;
40224                 }
40225         }
40226 }
40227
40228 //■script300■
40229
40230 package jp.nicovideo.nicoplayer.storages.commentStorage{
40231
40232         import jp.nicovideo.nicoplayer.storages.CommentStorage
40233
40234         //■class(instance)_index:368
40235         public final class Request extends Object
40236         {
40237                 //static constructor
40238                 public static function Request$cinit()
40239                 {       //MethodID:4537, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
40240                         __DUMMY_FUNC = function(... rest):void{ //MethodID:4538, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
40241                         };
40242                 }
40243
40244                 //static variables/etc.
40245                 private static const __DUMMY_FUNC:Function;                     //slotID:1
40246
40247                 //constructor
40248                 public function Request(hug1:Array, hug2:String="[?]")
40249                 {       //MethodID:4539, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 37
40250                         this.onErrorOccured = __DUMMY_FUNC;
40251                         this.onQuit = __DUMMY_FUNC;
40252                         this.onDisconnect = __DUMMY_FUNC;
40253
40254                         super();
40255
40256                         this.locks = hug1;
40257                         this.id = hug2;
40258                 }
40259
40260                 //variables/etc.
40261                 public var id:String;                                           //slotID:0
40262                 public var parent:CommentStorage;                               //slotID:0
40263                 public var locks:Array;                                         //slotID:0
40264                 public var transactor:AbstractTransactor;                       //slotID:0
40265                 public var indomitable:Boolean = false;                         //slotID:0
40266                 public var onErrorOccured:Function;                             //slotID:0
40267                 public var onQuit:Function;                                     //slotID:0
40268                 public var onDisconnect:Function;                               //slotID:0
40269         }
40270 }
40271
40272 //■script301■
40273
40274 package jp.nicovideo.nicoplayer.storages.commentStorage{
40275
40276         //■class(instance)_index:369
40277         public final class LockDesc extends Object
40278         {
40279                 //static constructor
40280                 public static function LockDesc$cinit()
40281                 {       //MethodID:4541, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40282                 }
40283
40284                 //constructor
40285                 public function LockDesc(hug1:String, hug2:Object=null)
40286                 {       //MethodID:4542, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
40287                         super();
40288
40289                         this._name = hug1;
40290                         this._pattern = hug2;
40291                 }
40292
40293                 //variables/etc.
40294                 public var _name:String;                                        //slotID:0
40295                 public var _pattern:Object;                                     //slotID:0
40296
40297                 public function buttingWith(hug1:LockDesc):Boolean
40298                 {       //MethodID:4543, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 119
40299                         var hug2:String = null;
40300                         var hug3:* = undefined;
40301
40302                         if(this._name != hug1._name) return false;
40303
40304                         if(!(this._pattern && hug1._pattern)) return true;
40305
40306                         for(hug2 in this._pattern){
40307                                 hug3 = hug1._pattern[hug2];
40308
40309                                 if((hug3 !== undefined) && (this._pattern[hug2] != hug3)) return false;
40310                         }
40311
40312                         return true;
40313                 }
40314         }
40315 }
40316
40317 //■script302■
40318
40319 package jp.nicovideo.nicoplayer.storages.transmitter{
40320
40321         //■class(instance)_index:370
40322         public class TransmitterType extends Object
40323         {
40324                 //static constructor
40325                 public static function TransmitterType$cinit()
40326                 {       //MethodID:4545, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 20
40327                         XML_SOCKET = "xmlSocket";
40328                         HTTP = "http";
40329                 }
40330
40331                 //static variables/etc.
40332                 public static const XML_SOCKET:String = "xmlSocket";            //slotID:1
40333                 public static const HTTP:String = "http";                       //slotID:2
40334
40335                 //constructor
40336                 public function TransmitterType()
40337                 {       //MethodID:4546, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40338                         super();
40339                 }
40340         }
40341 }
40342
40343 //■script303■
40344
40345 package jp.nicovideo.nicoplayer.storages.commentStorage{
40346
40347         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40348
40349         //■class(instance)_index:371
40350         public class AbstractTransactor extends Object
40351         {
40352                 //static constructor
40353                 public static function AbstractTransactor$cinit()
40354                 {       //MethodID:4548, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
40355                         MSG_REJECT = "REJECT";
40356                         MSG_CONTINUE = "CONTINUE";
40357                         MSG_COMPLETE = "COMPLETE";
40358                         MSG_QUIT = "QUIT";
40359                         MSG_REJECT_TO_QUIT = "REJECT_TO_QUIT";
40360                 }
40361
40362                 //static variables/etc.
40363                 public static const MSG_REJECT:String = "REJECT";               //slotID:1
40364                 public static const MSG_CONTINUE:String = "CONTINUE";           //slotID:2
40365                 public static const MSG_COMPLETE:String = "COMPLETE";           //slotID:3
40366                 public static const MSG_QUIT:String = "QUIT";                   //slotID:4
40367                 public static const MSG_REJECT_TO_QUIT:String = "REJECT_TO_QUIT";//slotID:5
40368
40369                 //constructor
40370                 public function AbstractTransactor()
40371                 {       //MethodID:4549, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40372                         super();
40373                 }
40374
40375                 //variables/etc.
40376                 public var client:MessageServerClient;                          //slotID:0
40377
40378                 public function start():void
40379                 {       //MethodID:4550, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40380                 }
40381
40382                 public function proceed(hug1:String, hug2:Array):String
40383                 {       //MethodID:4551, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 18
40384                         return this["onCMsg" + hug1].apply(this, hug2);
40385                 }
40386
40387                 public function error(... rest):void
40388                 {       //MethodID:4552, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
40389                         throw new TransactorError(rest);
40390                 }
40391         }
40392 }
40393
40394 //■script304■
40395
40396 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40397
40398         import flash.errors.IllegalOperationError
40399         import jp.nicovideo.nicoplayer.models.comment.IComment
40400         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40401         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40402
40403         //■class(instance)_index:372
40404         public class CommentPoster extends AbstractTransactor
40405         {
40406                 //static constructor
40407                 public static function CommentPoster$cinit()
40408                 {       //MethodID:4554, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40409                 }
40410
40411                 //constructor
40412                 public function CommentPoster()
40413                 {       //MethodID:4555, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40414                         super();
40415                 }
40416
40417                 //variables/etc.
40418                 public var comment:IComment;                                    //slotID:0
40419                 public var threadID:int;                                        //slotID:0
40420                 public var ticket:String;                                       //slotID:0
40421                 public var userID:String;                                       //slotID:0
40422                 public var postkey:String;                                      //slotID:0
40423                 public var yugi:Boolean = false;                                //slotID:0
40424                 public var premium:Boolean = false;                             //slotID:0
40425                 public var no:int;                                              //slotID:0
40426
40427                 override public function start():void
40428                 {       //MethodID:4556, LocalCount= 1 , MaxScope= 1, MaxStack= 12, CodeLength= 127
40429                         if(!this.comment) throw new IllegalOperationError("_CommentPoster.start: comment が設定されていません。");
40430                         client.sendCMsgPostChat(this.comment.message, this.threadID, (this.comment.vpos / 10), this.comment.command.command, null, this.ticket, (this.comment.command.sage ? 1 : 0), this.userID, this.postkey, (this.premium ? 1 : 0), (this.yugi ? 1 : 0));
40431                 }
40432
40433                 public function onCMsgPostChatResult(hug1:int, hug2:int, hug3:int, hug4:int):String
40434                 {       //MethodID:4557, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 30
40435                         this.no = hug3;
40436
40437                         if(hug2 != MessageServerClient.POST_SUCCESS) error(hug2);
40438
40439                         return MSG_QUIT;
40440                 }
40441         }
40442 }
40443
40444 //■script305■
40445
40446 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40447
40448         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40449
40450         //■class(instance)_index:373
40451         public class SimpleTransactor extends AbstractTransactor
40452         {
40453                 //static constructor
40454                 public static function SimpleTransactor$cinit()
40455                 {       //MethodID:4559, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40456                 }
40457
40458                 //constructor
40459                 public function SimpleTransactor(hug1:Function)
40460                 {       //MethodID:4560, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
40461                         super();
40462
40463                         this.__f = hug1;
40464                 }
40465
40466                 //variables/etc.
40467                 private var __f:Function;                                       //slotID:0
40468
40469                 override public function proceed(hug1:String, hug2:Array):String
40470                 {       //MethodID:4561, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 16
40471                         this.__f.apply(null, hug2);
40472
40473                         return MSG_CONTINUE;
40474                 }
40475         }
40476 }
40477
40478 //■script306■
40479
40480 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40481
40482         import jp.nicovideo.nicoplayer.models.comment.IComment
40483         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40484         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40485
40486         //■class(instance)_index:374
40487         public class ThreadUpdater extends AbstractTransactor
40488         {
40489                 //static constructor
40490                 public static function ThreadUpdater$cinit()
40491                 {       //MethodID:4563, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40492                 }
40493
40494                 //constructor
40495                 public function ThreadUpdater()
40496                 {       //MethodID:4564, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
40497                         this.comments = [];
40498
40499                         super();
40500                 }
40501
40502                 //variables/etc.
40503                 public var threadID:String;                                     //slotID:0
40504                 public var userID:String;                                       //slotID:0
40505                 public var ticket:String;                                       //slotID:0
40506                 public var updatekey:String;                                    //slotID:0
40507                 public var isPremium:Boolean;                                   //slotID:0
40508                 public var comments:Array;                                      //slotID:0
40509
40510                 override public function start():void
40511                 {       //MethodID:4566, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 17
40512                         client.chunk(function():void{   //MethodID:4565, LocalCount= 4 , MaxScope= 0, MaxStack= 7, CodeLength= 107
40513                                 var hug1:IComment = null;
40514
40515                                 for each(hug1 in comments){
40516                                         client.sendCMsgAddThreadItem(hug1.message, (hug1.vpos / 10), hug1.command.command, "");
40517                                 }
40518
40519                                 client.sendCMsgUpdateThread(int(threadID), userID, comments.length, ticket, updatekey, (isPremium ? 1 : 0));
40520                         });
40521                 }
40522
40523                 public function onCMsgUpdateThreadResult(hug1:int, hug2:String):String
40524                 {       //MethodID:4567, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 30
40525                         if(hug1 != MessageServerClient.UPDATE_SUCCESS) error(hug1);
40526
40527                         this.ticket = hug2;
40528                         return MSG_COMPLETE;
40529                 }
40530         }
40531 }
40532
40533 //■script307■
40534
40535 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40536
40537         import jp.nicovideo.nicoplayer.models.comment.Command
40538         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
40539         import jp.nicovideo.nicoplayer.models.comment.IComment
40540         import jp.nicovideo.nicoplayer.models.comment.ILeaf
40541         import jp.nicovideo.nicoplayer.models.comment.Leaf
40542         import jp.nicovideo.nicoplayer.models.video.VideoConstants
40543         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40544         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40545         import jp.nicovideo.util.ArrayUtils
40546
40547         //■class(instance)_index:375
40548         public class ThreadLoader extends AbstractTransactor
40549         {
40550                 //static constructor
40551                 public static function ThreadLoader$cinit()
40552                 {       //MethodID:4569, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40553                 }
40554
40555                 //static variables/etc.
40556                 public static function commentMaker(hug1:String, hug2:int, hug3:int, hug4:int, hug5:int, hug6:String, hug7:String, hug8:Boolean, hug9:String, hug10:String, hug11:int, hug12:int, hug13:int, hug14:int, hug15:String, hug16:int):IComment
40557                 {       //dispID:3, MethodID:4571, LocalCount= 18 , MaxScope= 2, MaxStack= 4, CodeLength= 313
40558                         internal var message:String;                                    //slotID:1
40559                         internal var thread_id:int;                                     //slotID:2
40560                         internal var no:int;                                            //slotID:3
40561                         internal var vpos:int;                                          //slotID:4
40562                         internal var date:int;                                          //slotID:5
40563                         internal var mail:String;                                       //slotID:6
40564                         internal var name:String;                                       //slotID:7
40565                         internal var yourpost:Boolean;                                  //slotID:8
40566                         internal var user_id:String;                                    //slotID:9
40567                         internal var raw_user_id:String;                                //slotID:10
40568                         internal var deleted:int;                                       //slotID:11
40569                         internal var premium:int;                                       //slotID:12
40570                         internal var anonymity:int;                                     //slotID:13
40571                         internal var fork:int;                                          //slotID:14
40572                         internal var remote:String;                                     //slotID:15
40573                         internal var leafID:int;                                        //slotID:16
40574                         internal var builder:CommentBuilder;                            //slotID:17
40575                         internal var isPremium:Boolean;                                 //slotID:18
40576
40577                         message = hug1;
40578                         thread_id = hug2;
40579                         no = hug3;
40580                         vpos = hug4;
40581                         date = hug5;
40582                         mail = hug6;
40583                         name = hug7;
40584                         yourpost = hug8;
40585                         user_id = hug9;
40586                         raw_user_id = hug10;
40587                         deleted = hug11;
40588                         premium = hug12;
40589                         anonymity = hug13;
40590                         fork = hug14;
40591                         remote = hug15;
40592                         leafID = hug16;
40593                         builder = new CommentBuilder();
40594                         builder.message = message;
40595                         builder.resNo = no;
40596                         builder.vpos = (vpos * 10);
40597                         builder.date = new Date(date * 1000);
40598                         isPremium = (premium == 1);
40599                         builder.command = new Command(function(hug1:Command):void{      //MethodID:4570, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 8
40600                                 hug1.command = mail;
40601                         }, isPremium);
40602
40603                         builder.isPremium = isPremium;
40604                         builder.justPosted = yourpost;
40605                         builder.userID = user_id;
40606                         builder.userName = name;
40607                         builder.deleted = deleted;
40608                         builder.anonymity = anonymity;
40609                         builder.fork = fork;
40610                         builder.isOwner = (fork == 1);
40611                         builder.leafID = leafID;
40612                         return builder.make();
40613                 }
40614
40615                 //constructor
40616                 public function ThreadLoader()
40617                 {       //MethodID:4573, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 24
40618                         this.num_click = {};
40619                         this.comments = [];
40620                         this.leaves = [];
40621
40622                         super();
40623                 }
40624
40625                 //variables/etc.
40626                 public var threadID:String;                                     //slotID:0
40627                 public var resFrom:int = 0;                                     //slotID:0
40628                 public var waybackkey:String;                                   //slotID:0
40629                 public var when:int = 0;                                        //slotID:0
40630                 public var userID:String;                                       //slotID:0
40631                 public var noCompress:Boolean = false;                          //slotID:0
40632                 public var fork:int = 0;                                        //slotID:0
40633                 public var threadkey:String;                                    //slotID:0
40634                 public var force184:int = 0;                                    //slotID:0
40635                 public var forceLeafMode:Boolean = false;                       //slotID:0
40636                 public var requestVersion:String = 20061206;                    //slotID:0
40637                 public var duration:int = 0;                                    //slotID:0
40638                 public var lastRes:int = -1;                                    //slotID:0
40639                 public var ticket:String;                                       //slotID:0
40640                 public var revision:int = -1;                                   //slotID:0
40641                 public var resOffset:int;                                       //slotID:0
40642                 public var serverTime:int;                                      //slotID:0
40643                 public var clickRevision:int = -1;                              //slotID:0
40644                 public var clicks:int = -1;                                     //slotID:0
40645                 public var num_click:Object;                                    //slotID:0
40646                 public var comments:Array;                                      //slotID:0
40647                 public var leaves:Array;                                        //slotID:0
40648                 public var leaf_get_num:int = 100;                              //slotID:0
40649                 public var requestNum:int = 1;                                  //slotID:0
40650                 public var resBefore:int = 0;                                   //slotID:0
40651                 public var onServerTime:Function;                               //slotID:0
40652
40653                 public function leafMaker(hug1:int, hug2:int, hug3:int):ILeaf
40654                 {       //MethodID:4572, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 19
40655                         var hug4:ILeaf = new Leaf(hug1, hug2, hug3);
40656                         return hug4;
40657                 }
40658
40659                 public function isLeaf():Boolean
40660                 {       //MethodID:4574, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 34
40661                         return (this.forceLeafMode && (this.fork == 0) && (this.resFrom <= 0));
40662                 }
40663
40664                 override public function start():void
40665                 {       //MethodID:4576, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 51
40666                         if(this.forceLeafMode){
40667                                 this.requestVersion = MessageServerClient.NIWAVIDE_PACKET_LEAF_VERSION;
40668
40669                                 if(this.resFrom <= 0) this.resFrom = 0;
40670                         }
40671
40672                         client.chunk(function():void{   //MethodID:4575, LocalCount= 1 , MaxScope= 0, MaxStack= 13, CodeLength= 129
40673                                 client.sendCMsgGetThread(int(threadID), requestVersion, resFrom, waybackkey, when, userID, (noCompress ? 1 : 0), fork, null, clickRevision, threadkey, force184);
40674
40675                                 if(isLeaf()) client.sendCMsgGetThreadLeaves(_generateLeafExpression(leaf_get_num, true), int(threadID), waybackkey, when, userID, (noCompress ? 1 : 0), threadkey, force184, resBefore);
40676                         });
40677                 }
40678
40679                 public function onCMsgGetThreadResult(hug1:uint, hug2:int, hug3:int, hug4:String, hug5:String, hug6:int, hug7:int, hug8:int, hug9:int, hug10:int, hug11:int, hug12:int, hug13:int):String
40680                 {       //MethodID:4577, LocalCount= 14 , MaxScope= 1, MaxStack= 2, CodeLength= 115
40681                         if(this.onServerTime is Function) this.onServerTime(hug10);
40682
40683                         if(hug1 != MessageServerClient.THREAD_FOUND) error(hug1);
40684
40685                         this.lastRes = hug3;
40686                         this.ticket = hug4;
40687                         this.revision = hug7;
40688                         this.resOffset = hug8;
40689                         this.serverTime = hug10;
40690                         this.clickRevision = hug12;
40691
40692                         if(this.isLeaf() && this.num_click){
40693                                 this.clicks = hug13;
40694                         }else{
40695                                 this.clicks = 0;
40696                         }
40697
40698                         return MSG_CONTINUE;
40699                 }
40700
40701                 public function onCMsgLeaf(... rest):String
40702                 {       //MethodID:4578, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 29
40703                         var hug2:ILeaf = this.leafMaker.apply(null, rest);
40704
40705                         this.leaves.push(hug2);
40706
40707                         return MSG_CONTINUE;
40708                 }
40709
40710                 public function onCMsgChat(... rest):String
40711                 {       //MethodID:4579, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 149
40712                         var hug2:IComment = commentMaker.apply(null, rest);
40713                         var hug3:CommentBuilder = new CommentBuilder(hug2);
40714
40715                         if((this.lastRes == (-1)) || (this.lastRes < hug2.resNo)) return MSG_REJECT;
40716
40717                         if(this.num_click && this.num_click[hug2.resNo]){
40718                                 hug3.clickCount = this.num_click[hug2.resNo];
40719                                 hug2 = hug3.make();
40720                         }
40721
40722                         if((this.lastRes - hug2.resNo) < this._union){
40723                                 hug3.isTrunk = true;
40724                                 hug2 = hug3.make();
40725                         }
40726
40727                         this.comments.push(hug2);
40728
40729                         return MSG_CONTINUE;
40730                 }
40731
40732                 public function onCMsgNumberOfClick(hug1:int, hug2:int, hug3:int):String
40733                 {       //MethodID:4581, LocalCount= 7 , MaxScope= 2, MaxStack= 5, CodeLength= 221
40734                         internal var thread_id:int;                                     //slotID:1
40735                         internal var no:int;                                            //slotID:2
40736                         internal var click:int;                                         //slotID:3
40737                         internal var i:int;                                             //slotID:4
40738                         internal var comment:IComment;                                  //slotID:5
40739                         internal var builder:CommentBuilder;                            //slotID:6
40740
40741                         i = 0;
40742                         comment = null;
40743                         builder = null;
40744                         thread_id = hug1;
40745                         no = hug2;
40746                         click = hug3;
40747                         this.clicks--;
40748                         this.num_click[no] = click;
40749
40750                         if(this.comments.length > 0){
40751                                 i = ArrayUtils.lowerBoundIndex(function(hug1:int, hug2:IComment):Number{        //MethodID:4580, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 7
40752                                         return (hug1 - hug2.resNo);
40753                                 }, no, this.comments);
40754
40755                                 comment = this.comments[i];
40756
40757                                 if((i == (-1)) || (this.comments[i].resNo != no)) return MSG_CONTINUE;
40758
40759                                 builder = new CommentBuilder(comment);
40760                                 builder.clickCount = click;
40761                                 this.comments[i] = builder.make();
40762                         }
40763
40764                         return MSG_CONTINUE;
40765                 }
40766
40767                 public function onCMsgClose(hug1:int, hug2:int):String
40768                 {       //MethodID:4582, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 45
40769                         this.requestNum--;
40770                         return ((this.requestNum > 0) ? MSG_CONTINUE : MSG_QUIT);
40771                 }
40772
40773                 private function _generateLeafExpression(hug1:uint, hug2:Boolean):String
40774                 {       //MethodID:4583, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 103
40775                         var hug3:String = "";
40776                         var hug4:uint = Math.ceil((this.duration + VideoConstants.USER_SPONSOR_VIDEO_LENGTH) / (60 * 1000));
40777
40778                         if(hug4 > 720) hug1 = Math.ceil((hug1 * 720) / hug4);
40779
40780                         hug3 = (("0-" + hug4.toString() + ":") + hug1.toString());
40781
40782                         if(hug2) hug3 += ("," + this._union.toString());
40783
40784                         return hug3;
40785                 }
40786
40787                 private function get _union():uint
40788                 {       //MethodID:4584, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 78
40789                         return ((this.duration >= ((10 * 60) * 1000)) ? 1000 : ((this.duration >= ((5 * 60) * 1000)) ? 500 : ((this.duration >= (60 * 1000)) ? 250 : 100)));
40790                 }
40791         }
40792 }
40793
40794 //■script308■
40795
40796 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40797
40798         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40799         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40800
40801         //■class(instance)_index:376
40802         public class Clicker extends AbstractTransactor
40803         {
40804                 //static constructor
40805                 public static function Clicker$cinit()
40806                 {       //MethodID:4586, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40807                 }
40808
40809                 //constructor
40810                 public function Clicker()
40811                 {       //MethodID:4587, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40812                         super();
40813                 }
40814
40815                 //variables/etc.
40816                 public var threadID:int;                                        //slotID:0
40817                 public var no:int;                                              //slotID:0
40818                 public var userID:String;                                       //slotID:0
40819                 public var clickkey:String;                                     //slotID:0
40820
40821                 override public function start():void
40822                 {       //MethodID:4588, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 26
40823                         client.sendCMsgClick(this.threadID, this.no, this.userID, this.clickkey);
40824                 }
40825
40826                 public function onCMsgClickResult(hug1:int):String
40827                 {       //MethodID:4589, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 25
40828                         if(hug1 != MessageServerClient.CLICK_SUCCESS) error(hug1);
40829
40830                         return MSG_QUIT;
40831                 }
40832         }
40833 }
40834
40835 //■script309■
40836
40837 package jp.nicovideo.nicoplayer.storages.commentStorage.transactor{
40838
40839         import jp.nicovideo.nicoplayer.storages.MessageServerClient
40840         import jp.nicovideo.nicoplayer.storages.commentStorage.AbstractTransactor
40841
40842         //■class(instance)_index:377
40843         public class CommentDeleter extends AbstractTransactor
40844         {
40845                 //static constructor
40846                 public static function CommentDeleter$cinit()
40847                 {       //MethodID:4591, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40848                 }
40849
40850                 //constructor
40851                 public function CommentDeleter()
40852                 {       //MethodID:4592, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40853                         super();
40854                 }
40855
40856                 //variables/etc.
40857                 public var threadID:int;                                        //slotID:0
40858                 public var userID:String;                                       //slotID:0
40859                 public var deletekey:String;                                    //slotID:0
40860                 public var list:String;                                         //slotID:0
40861                 public var undelete:Boolean = false;                            //slotID:0
40862                 public var revision:int;                                        //slotID:0
40863
40864                 override public function start():void
40865                 {       //MethodID:4593, LocalCount= 1 , MaxScope= 1, MaxStack= 8, CodeLength= 48
40866                         client.sendCMsgDeleteComments(this.threadID, this.userID, this.deletekey, this.list, (this.undelete ? 1 : 0), this.revision, 0);
40867                 }
40868
40869                 public function onCMsgDeleteCommentsResult(hug1:int, hug2:int, hug3:int, hug4:int):String
40870                 {       //MethodID:4594, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 30
40871                         if(hug2 != MessageServerClient.DELETE_SUCCESS) error(hug2);
40872
40873                         this.revision = hug3;
40874                         return MSG_QUIT;
40875                 }
40876         }
40877 }
40878
40879 //■script310■
40880
40881 package jp.nicovideo.nicoplayer.remocon.method{
40882
40883         //■class(instance)_index:378
40884         public interface IRemoconMethod
40885         {
40886                 //static constructor
40887                 public static function IRemoconMethod$cinit()
40888                 {       //MethodID:4596, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
40889                 }
40890
40891                 //variables/etc.
40892                 function call(hug1:Object):void;                                            //MethodID:4597, dispID:0
40893
40894                 //constructor
40895                 public function IRemoconMethod();                                           //MethodID:4598, dispID:0
40896         }
40897 }
40898
40899 //■script311■
40900
40901 package jp.nicovideo.nicoplayer.remocon.method{
40902
40903         import jp.nicovideo.nicoplayer.remocon.RemoconReceiver
40904
40905         //■class(instance)_index:379
40906         public class RemoconMethod extends Object implements IRemoconMethod
40907         {
40908                 //static constructor
40909                 public static function RemoconMethod$cinit()
40910                 {       //MethodID:4600, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
40911                 }
40912
40913                 //constructor
40914                 public function RemoconMethod(hug1:Function)
40915                 {       //MethodID:4601, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
40916                         super();
40917
40918                         this._function = hug1;
40919                 }
40920
40921                 //variables/etc.
40922                 private var _function:Function;                                 //slotID:0
40923
40924                 public function call(hug1:Object):void
40925                 {       //MethodID:4602, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 23
40926                         this._function.apply(RemoconReceiver.instance.environment, [hug1]);
40927                 }
40928         }
40929 }
40930
40931 //■script312■
40932
40933 package jp.nicovideo.nicoplayer.models.playlist{
40934
40935         //■class(instance)_index:380
40936         public class PlaylistSortConstants extends Object
40937         {
40938                 //static constructor
40939                 public static function PlaylistSortConstants$cinit()
40940                 {       //MethodID:4604, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 147
40941                         CREATE_TIME_ASCEND = 0;
40942                         CREATE_TIME_DESCEND = 1;
40943                         MYLIST_COMMENT_ASCEND = 2;
40944                         MYLIST_COMMENT_DESCEND = 3;
40945                         TITLE_ASCEND = 4;
40946                         TITLE_DESCEND = 5;
40947                         FIRST_RETREVE_DESCEND = 6;
40948                         FIRST_RETREVE_ASCEND = 7;
40949                         VIEW_COUNTER_DESCEND = 8;
40950                         VIEW_COUNTER_ASCEND = 9;
40951                         UPDATE_TIME_DESCEND = 10;
40952                         UPDATE_TIME_ASCEND = 11;
40953                         NUM_RES_DESCEND = 12;
40954                         NUM_RES_ASCEND = 13;
40955                         MYLIST_COUNTER_DESCEND = 14;
40956                         MYLIST_COUNTER_ASCEND = 15;
40957                         LENGTH_SECONDS_DESCEND = 16;
40958                         LENGTH_SECONDS_ASCEND = 17;
40959                 }
40960
40961                 //static variables/etc.
40962                 public static const CREATE_TIME_ASCEND:uint = 0;                //slotID:1
40963                 public static const CREATE_TIME_DESCEND:uint = 1;               //slotID:2
40964                 public static const MYLIST_COMMENT_ASCEND:uint = 2;             //slotID:3
40965                 public static const MYLIST_COMMENT_DESCEND:uint = 3;            //slotID:4
40966                 public static const TITLE_ASCEND:uint = 4;                      //slotID:5
40967                 public static const TITLE_DESCEND:uint = 5;                     //slotID:6
40968                 public static const FIRST_RETREVE_DESCEND:uint = 6;             //slotID:7
40969                 public static const FIRST_RETREVE_ASCEND:uint = 7;              //slotID:8
40970                 public static const VIEW_COUNTER_DESCEND:uint = 8;              //slotID:9
40971                 public static const VIEW_COUNTER_ASCEND:uint = 9;               //slotID:10
40972                 public static const UPDATE_TIME_DESCEND:uint = 10;              //slotID:11
40973                 public static const UPDATE_TIME_ASCEND:uint = 11;               //slotID:12
40974                 public static const NUM_RES_DESCEND:uint = 12;                  //slotID:13
40975                 public static const NUM_RES_ASCEND:uint = 13;                   //slotID:14
40976                 public static const MYLIST_COUNTER_DESCEND:uint = 14;           //slotID:15
40977                 public static const MYLIST_COUNTER_ASCEND:uint = 15;            //slotID:16
40978                 public static const LENGTH_SECONDS_DESCEND:uint = 16;           //slotID:17
40979                 public static const LENGTH_SECONDS_ASCEND:uint = 17;            //slotID:18
40980
40981                 //constructor
40982                 public function PlaylistSortConstants()
40983                 {       //MethodID:4605, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
40984                         super();
40985                 }
40986         }
40987 }
40988
40989 //■script313■
40990
40991 package jp.nicovideo.nicoplayer.models.relation{
40992
40993         import __AS3__.vec.Vector
40994
40995         //■class(instance)_index:381
40996         public interface IVideoenderInfo
40997         {
40998                 //static constructor
40999                 public static function IVideoenderInfo$cinit()
41000                 {       //MethodID:4607, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
41001                 }
41002
41003                 //variables/etc.
41004                 function get liveDJCatategoryName():String;                                 //MethodID:4608, dispID:0
41005
41006                 function get liveDJLinkURL():String;                                        //MethodID:4609, dispID:0
41007
41008                 function get liveDJThumbnailURL():String;                                   //MethodID:4610, dispID:0
41009
41010                 function get liveDJVideoTitle():String;                                     //MethodID:4611, dispID:0
41011
41012                 function get relatedListTarget():String;                                    //MethodID:4612, dispID:0
41013
41014                 function get relatedList():Vector.<IOwnerOtherVideo>;                       //MethodID:4613, dispID:0
41015
41016                 function get ownerVideoListURL():String;                                    //MethodID:4614, dispID:0
41017
41018                 //constructor
41019                 public function IVideoenderInfo();                                          //MethodID:4615, dispID:0
41020         }
41021 }
41022
41023 //■script314■
41024
41025 package jp.nicovideo.nicoplayer.models.relation{
41026
41027         import __AS3__.vec.Vector
41028
41029         //■class(instance)_index:382
41030         public class VideoenderInfo extends Object implements IVideoenderInfo
41031         {
41032                 //static constructor
41033                 public static function VideoenderInfo$cinit()
41034                 {       //MethodID:4617, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41035                 }
41036
41037                 //constructor
41038                 public function VideoenderInfo(hug1:Vector.<IOwnerOtherVideo>, hug2:String, hug3:String=null, hug4:String=null, hug5:String=null, hug6:String=null, hug7:String=null)
41039                 {       //MethodID:4618, LocalCount= 8 , MaxScope= 1, MaxStack= 2, CodeLength= 45
41040                         super();
41041
41042                         this._liveDJCategoryName = hug4;
41043                         this._liveDJLinkURL = hug5;
41044                         this._liveDJVideoTitle = hug6;
41045                         this._liveDJThumbnailURL = hug7;
41046                         this._relatedListTarget = hug2;
41047                         this._relatedList = hug1;
41048                         this._ownerVideoListURL = hug3;
41049                 }
41050
41051                 //variables/etc.
41052                 private var _liveDJCategoryName:String;                         //slotID:0
41053                 private var _liveDJLinkURL:String;                              //slotID:0
41054                 private var _liveDJThumbnailURL:String;                         //slotID:0
41055                 private var _liveDJVideoTitle:String;                           //slotID:0
41056                 private var _relatedListTarget:String;                          //slotID:0
41057                 private var _relatedList:Vector.<IOwnerOtherVideo>;             //slotID:0
41058                 private var _ownerVideoListURL:String;                          //slotID:0
41059
41060                 public function get liveDJCatategoryName():String
41061                 {       //MethodID:4619, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41062                         return this._liveDJCategoryName;
41063                 }
41064
41065                 public function get liveDJLinkURL():String
41066                 {       //MethodID:4620, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41067                         return this._liveDJLinkURL;
41068                 }
41069
41070                 public function get liveDJThumbnailURL():String
41071                 {       //MethodID:4621, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41072                         return this._liveDJThumbnailURL;
41073                 }
41074
41075                 public function get liveDJVideoTitle():String
41076                 {       //MethodID:4622, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41077                         return this._liveDJVideoTitle;
41078                 }
41079
41080                 public function get relatedListTarget():String
41081                 {       //MethodID:4623, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41082                         return this._relatedListTarget;
41083                 }
41084
41085                 public function get relatedList():Vector.<IOwnerOtherVideo>
41086                 {       //MethodID:4624, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41087                         return this._relatedList;
41088                 }
41089
41090                 public function get ownerVideoListURL():String
41091                 {       //MethodID:4625, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41092                         return this._ownerVideoListURL;
41093                 }
41094         }
41095 }
41096
41097 //■script315■
41098 //skip components :com.adobe.serialization.json
41099 //as filename :JSONEncoder.as
41100
41101 //■script316■
41102 //skip components :com.adobe.serialization.json
41103 //as filename :JSONDecoder.as
41104
41105 //■script317■
41106
41107 package jp.nicovideo.nicoplayer.models.comment{
41108
41109         //■class(instance)_index:385
41110         public class Comment extends Object implements IComment
41111         {
41112                 //static constructor
41113                 public static function Comment$cinit()
41114                 {       //MethodID:4643, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41115                 }
41116
41117                 //constructor
41118                 public function Comment()
41119                 {       //MethodID:4644, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
41120                         super();
41121                 }
41122
41123                 //variables/etc.
41124                 private var _commentList:ICommentList;                          //slotID:0
41125                 private var _comment:String = "";                               //slotID:0
41126                 private var _buttonComment:String;                              //slotID:0
41127                 private var _resNo:uint;                                        //slotID:0
41128                 private var _vpos:Number = 0.0;                                 //slotID:0
41129                 private var _date:Date;                                         //slotID:0
41130                 private var _userID:String;                                     //slotID:0
41131                 private var _userName:String;                                   //slotID:0
41132                 private var _isOwner:Boolean = false;                           //slotID:0
41133                 private var _deleted:uint = 0;                                  //slotID:0
41134                 private var _isPremium:Boolean = false;                         //slotID:0
41135                 private var _anonymity:uint = 0;                                //slotID:0
41136                 private var _fromLive:uint = 0;                                 //slotID:0
41137                 private var _fork:uint = 0;                                     //slotID:0
41138                 private var _command:ICommand;                                  //slotID:0
41139                 private var _justPosted:Boolean = false;                        //slotID:0
41140                 private var _ng:uint = 0;                                       //slotID:0
41141                 private var _clickCount:uint = 0;                               //slotID:0
41142                 private var _leafID:uint = 0;                                   //slotID:0
41143                 private var _isTrunk:Boolean = false;                           //slotID:0
41144
41145                 public function get message():String
41146                 {       //MethodID:4645, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41147                         return this._comment;
41148                 }
41149
41150                 internal function set message(hug1:String):void
41151                 {       //MethodID:4646, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 36
41152                         this._comment = hug1;
41153
41154                         if(this._command && this._command.hasButton) this._initButton();
41155                 }
41156
41157                 public function get resNo():uint
41158                 {       //MethodID:4647, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41159                         return this._resNo;
41160                 }
41161
41162                 internal function set resNo(hug1:uint):void
41163                 {       //MethodID:4648, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41164                         this._resNo = hug1;
41165                 }
41166
41167                 public function get vpos():Number
41168                 {       //MethodID:4649, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41169                         return this._vpos;
41170                 }
41171
41172                 internal function set vpos(hug1:Number):void
41173                 {       //MethodID:4650, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 31
41174                         if((hug1 % 10) != 0) throw new ArgumentError("Commentのvpos値の精度は10e-2秒以上である必要があります。vpos=" + hug1);
41175
41176                         this._vpos = hug1;
41177                 }
41178
41179                 public function get date():Date
41180                 {       //MethodID:4651, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41181                         return this._date;
41182                 }
41183
41184                 internal function set date(hug1:Date):void
41185                 {       //MethodID:4652, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41186                         this._date = hug1;
41187                 }
41188
41189                 public function get userID():String
41190                 {       //MethodID:4653, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41191                         return this._userID;
41192                 }
41193
41194                 internal function set userID(hug1:String):void
41195                 {       //MethodID:4654, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41196                         this._userID = hug1;
41197                 }
41198
41199                 public function get userName():String
41200                 {       //MethodID:4655, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41201                         return this._userName;
41202                 }
41203
41204                 internal function set userName(hug1:String):void
41205                 {       //MethodID:4656, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41206                         this._userName = hug1;
41207                 }
41208
41209                 public function get isOwner():Boolean
41210                 {       //MethodID:4657, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41211                         return this._isOwner;
41212                 }
41213
41214                 internal function set isOwner(hug1:Boolean):void
41215                 {       //MethodID:4658, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41216                         this._isOwner = hug1;
41217                 }
41218
41219                 public function get deleted():uint
41220                 {       //MethodID:4659, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41221                         return this._deleted;
41222                 }
41223
41224                 internal function set deleted(hug1:uint):void
41225                 {       //MethodID:4660, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41226                         this._deleted = hug1;
41227                 }
41228
41229                 public function get isPremium():Boolean
41230                 {       //MethodID:4661, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41231                         return this._isPremium;
41232                 }
41233
41234                 internal function set isPremium(hug1:Boolean):void
41235                 {       //MethodID:4662, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41236                         this._isPremium = hug1;
41237                 }
41238
41239                 public function get anonymity():uint
41240                 {       //MethodID:4663, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41241                         return this._anonymity;
41242                 }
41243
41244                 internal function set anonymity(hug1:uint):void
41245                 {       //MethodID:4664, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41246                         this._anonymity = hug1;
41247                 }
41248
41249                 public function get fromLive():uint
41250                 {       //MethodID:4665, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41251                         return this._fromLive;
41252                 }
41253
41254                 internal function set fromLive(hug1:uint):void
41255                 {       //MethodID:4666, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41256                         this._fromLive = hug1;
41257                 }
41258
41259                 public function get fork():uint
41260                 {       //MethodID:4667, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41261                         return this._fork;
41262                 }
41263
41264                 internal function set fork(hug1:uint):void
41265                 {       //MethodID:4668, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41266                         this._fork = hug1;
41267                 }
41268
41269                 public function get justPosted():Boolean
41270                 {       //MethodID:4669, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41271                         return this._justPosted;
41272                 }
41273
41274                 internal function set justPosted(hug1:Boolean):void
41275                 {       //MethodID:4670, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41276                         this._justPosted = hug1;
41277                 }
41278
41279                 public function get ng():uint
41280                 {       //MethodID:4671, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41281                         return this._ng;
41282                 }
41283
41284                 internal function set ng(hug1:uint):void
41285                 {       //MethodID:4672, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41286                         this._ng = hug1;
41287                 }
41288
41289                 internal function set clickCount(hug1:uint):void
41290                 {       //MethodID:4673, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41291                         this._clickCount = hug1;
41292                 }
41293
41294                 public function get clickCount():uint
41295                 {       //MethodID:4674, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41296                         return this._clickCount;
41297                 }
41298
41299                 public function get command():ICommand
41300                 {       //MethodID:4675, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41301                         return this._command;
41302                 }
41303
41304                 internal function set command(hug1:ICommand):void
41305                 {       //MethodID:4676, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 24
41306                         this._command = hug1;
41307
41308                         if(this._command.hasButton) this._initButton();
41309                 }
41310
41311                 public function get isClickable():Boolean
41312                 {       //MethodID:4677, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 35
41313                         if(!this.command.hasButton) return false;
41314
41315                         if(this.commentList) return this.commentList.isClickable(this);
41316
41317                         return false;
41318                 }
41319
41320                 private function _initButton():void
41321                 {       //MethodID:4678, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 188
41322                         var hug2:int = 0;
41323                         var hug3:int = 0;
41324                         var hug4:int = 0;
41325                         var hug5:int = 0;
41326                         var hug1:RegExp = new RegExp("^(.*?)(\[)(.*)(\])(.*)", "s");
41327                         this._buttonComment = this._comment;
41328
41329                         if(!hug1.test(this._comment)){
41330                                 hug2 = this._comment.indexOf("[");
41331                                 hug3 = this._comment.indexOf("]");
41332                                 hug4 = this._comment.lastIndexOf("[");
41333                                 hug5 = this._comment.lastIndexOf("]");
41334
41335                                 if((hug2 == (-1)) || ((hug3 != (-1)) && (hug2 > hug3))) this._buttonComment = ("[" + this._comment);
41336
41337                                 if((hug3 == (-1)) || ((hug4 != (-1)) && (hug4 > hug5))) this._buttonComment += "]";
41338                         }
41339                 }
41340
41341                 public function get buttonComment():String
41342                 {       //MethodID:4679, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 20
41343                         if(!this._buttonComment) this._initButton();
41344
41345                         return this._buttonComment;
41346                 }
41347
41348                 public function get leafID():uint
41349                 {       //MethodID:4680, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41350                         return this._leafID;
41351                 }
41352
41353                 internal function set leafID(hug1:uint):void
41354                 {       //MethodID:4681, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41355                         this._leafID = hug1;
41356                 }
41357
41358                 public function get isTrunk():Boolean
41359                 {       //MethodID:4682, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41360                         return this._isTrunk;
41361                 }
41362
41363                 internal function set isTrunk(hug1:Boolean):void
41364                 {       //MethodID:4683, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41365                         this._isTrunk = hug1;
41366                 }
41367
41368                 public function get commentList():ICommentList
41369                 {       //MethodID:4684, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41370                         return this._commentList;
41371                 }
41372
41373                 internal function set commentList(hug1:ICommentList):void
41374                 {       //MethodID:4685, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
41375                         this._commentList = hug1;
41376                 }
41377         }
41378 }
41379
41380 //■script318■
41381
41382 package jp.nicovideo.nicoplayer.models.comment{
41383
41384
41385         public const comment_builder:* = "jp.nicovideo.nicoplayer.models.comment:comment_builder";//slotID:0
41386
41387 }
41388
41389 //■script319■
41390
41391 package jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowChildren{
41392
41393         import flash.display.MovieClip
41394
41395         //■class(instance)_index:386
41396         public interface ITabContent
41397         {
41398                 //static constructor
41399                 public static function ITabContent$cinit()
41400                 {       //MethodID:4688, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
41401                 }
41402
41403                 //variables/etc.
41404                 function get tab():Tab;                                                     //MethodID:4689, dispID:0
41405
41406                 function get content():MovieClip;                                           //MethodID:4690, dispID:0
41407
41408                 function onShowingContent():void;                                           //MethodID:4691, dispID:0
41409
41410                 function onHidingContent():void;                                            //MethodID:4692, dispID:0
41411
41412                 //constructor
41413                 public function ITabContent();                                              //MethodID:4693, dispID:0
41414         }
41415 }
41416
41417 //■script320■
41418
41419 package jp.nicovideo.app.applibar.externals.events{
41420
41421         import flash.events.Event
41422         import jp.nicovideo.app.applibar.externals.IApplibarClient
41423
41424         //■class(instance)_index:387
41425         public class ApplibarClientEvent extends Event
41426         {
41427                 //static constructor
41428                 public static function ApplibarClientEvent$cinit()
41429                 {       //MethodID:4695, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
41430                         CONTAINER_RESIZE = "containerResize";
41431                         SCREEN_RESIZE = "screenResize";
41432                         APPLIBAR_VISIBLE_UPDATE = "applibarVisibleUpdate";
41433                 }
41434
41435                 //static variables/etc.
41436                 public static const CONTAINER_RESIZE:String = "containerResize";//slotID:1
41437                 public static const SCREEN_RESIZE:String = "screenResize";      //slotID:2
41438                 public static const APPLIBAR_VISIBLE_UPDATE:String = "applibarVisibleUpdate";//slotID:3
41439
41440                 //constructor
41441                 public function ApplibarClientEvent(hug1:String, hug2:IApplibarClient, hug3:Boolean=false, hug4:Boolean=false)
41442                 {       //MethodID:4696, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 10
41443                         super(hug1, hug3, hug4);
41444                 }
41445
41446                 //variables/etc.
41447                 private var _client:IApplibarClient;                            //slotID:0
41448
41449                 public function get client():IApplibarClient
41450                 {       //MethodID:4697, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41451                         return this._client;
41452                 }
41453         }
41454 }
41455
41456 //■script321■
41457
41458 package jp.nicovideo.app.api{
41459
41460         import jp.nicovideo.app.info.IAppliInfo
41461
41462         //■class(instance)_index:388
41463         public interface IAPIObjectProvider
41464         {
41465                 //static constructor
41466                 public static function IAPIObjectProvider$cinit()
41467                 {       //MethodID:4699, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
41468                 }
41469
41470                 //variables/etc.
41471                 function get majorVersion():uint;                                           //MethodID:4700, dispID:0
41472
41473                 function getObject(hug1:String, hug2:IAppliInfo):*;                         //MethodID:4701, dispID:0
41474
41475                 function putObject(hug1:String, hug2:*):void;                               //MethodID:4702, dispID:0
41476
41477                 function hasSet(hug1:String):Boolean;                                       //MethodID:4703, dispID:0
41478
41479                 //constructor
41480                 public function IAPIObjectProvider();                                       //MethodID:4704, dispID:0
41481         }
41482 }
41483
41484 //■script322■
41485
41486 package jp.nicovideo.app.applibar.externals{
41487
41488         //■class(instance)_index:389
41489         public class ContainerName extends Object
41490         {
41491                 //static constructor
41492                 public static function ContainerName$cinit()
41493                 {       //MethodID:4706, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 39
41494                         NICO_PLAYER = "nicoPlayer";
41495                         LIVE_PLAYER = "livePlayer";
41496                         CANVAS = "canvas";
41497                         PLAYWATCHER = "playwatcher";
41498                 }
41499
41500                 //static variables/etc.
41501                 public static const NICO_PLAYER:String = "nicoPlayer";          //slotID:1
41502                 public static const LIVE_PLAYER:String = "livePlayer";          //slotID:2
41503                 public static const CANVAS:String = "canvas";                   //slotID:3
41504                 public static const PLAYWATCHER:String = "playwatcher";         //slotID:4
41505
41506                 //constructor
41507                 public function ContainerName()
41508                 {       //MethodID:4707, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
41509                         super();
41510                 }
41511         }
41512 }
41513
41514 //■script323■
41515
41516 package jp.nicovideo.nicoplayer.app.api.v1{
41517
41518         import jp.nicovideo.app.api.SoloObjectPool
41519         import jp.nicovideo.app.api.api_system
41520         import jp.nicovideo.app.conf.AppliConstants
41521         import jp.nicovideo.app.info.IAppliInfo
41522         import jp.nicovideo.nicoplayer.app.api.v1.plugin.common.Marquee
41523         import jp.nicovideo.nicoplayer.app.api.v1.plugin.common.NGFilter
41524         import jp.nicovideo.nicoplayer.app.api.v1.plugin.www.CommentServerClient
41525         import jp.nicovideo.nicoplayer.app.api.v1.plugin.www.NicoThread
41526         import jp.nicovideo.nicoplayer.app.api.v1.plugin.www.PlayerConfig
41527         import jp.nicovideo.nicoplayer.app.api.v1.plugin.www.VideoInfo
41528         import jp.nicovideo.nicoplayer.app.api.v1.plugin.www.VideoPlayer
41529         import jp.nicovideo.nicoplayer.plugin.IPluginClient
41530         import jp.nicovideo.util.ObjectPool
41531
41532
41533         public function getPools(hug1:IPluginClient):Object
41534         {       //dispID:3, MethodID:4718, LocalCount= 3 , MaxScope= 2, MaxStack= 6, CodeLength= 210
41535                 internal var client:IPluginClient;                              //slotID:1
41536                 internal var ret:*;                                             //slotID:2
41537                 internal var marquee:Marquee;                                   //slotID:3
41538
41539                 marquee = null;
41540                 client = hug1;
41541                 ret = {};
41542                 ret["jp.nicovideo.app.plugin.www.VideoInfo"] = new SoloObjectPool(function():VideoInfo{ //MethodID:4709, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 20
41543                         return new VideoInfo(client.videoDetail, client.flashVars);
41544                 });
41545
41546                 ret["jp.nicovideo.app.plugin.www.VideoPlayer"] = new ObjectPool(function(hug1:IAppliInfo):VideoPlayer{  //MethodID:4710, LocalCount= 4 , MaxScope= 0, MaxStack= 4, CodeLength= 51
41547                         var hug2:* = new VideoPlayer(client.videoController, client.playerConfig, client.audioShutter);
41548                         var hug3:* = hug2;
41549
41550                         hug3.reset(hug1.id);
41551
41552                         return hug2;
41553                 }, AppliConstants.INSTALL_MAX_NUM, function(hug1:VideoPlayer, hug2:IAppliInfo):VideoPlayer{     //MethodID:4711, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 24
41554                         var hug3:VideoPlayer = hug1;
41555
41556                         hug3.reset(hug2.id);
41557
41558                         return hug1;
41559                 });
41560
41561                 ret["jp.nicovideo.app.plugin.www.CommentServerClient"] = new ObjectPool(function(hug1:IAppliInfo):CommentServerClient{  //MethodID:4712, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 20
41562                         return new CommentServerClient(client.commentListContainer, client.filteredCommentPoolContainer);
41563                 });
41564
41565                 ret["jp.nicovideo.app.plugin.www.NicoThread"] = new SoloObjectPool(function():NicoThread{       //MethodID:4713, LocalCount= 1 , MaxScope= 0, MaxStack= 4, CodeLength= 35
41566                         return new NicoThread(client.getFLV.threadID, client.flashVars.isMymemory, client.getFLV.optionalThreadID);
41567                 });
41568
41569                 ret["jp.nicovideo.app.plugin.www.PlayerConfig"] = new SoloObjectPool(function():PlayerConfig{   //MethodID:4714, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 14
41570                         return new PlayerConfig(client.playerConfig);
41571                 });
41572
41573                 ret["jp.nicovideo.app.plugin.common.NGFilter"] = new SoloObjectPool(function():NGFilter{        //MethodID:4715, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 14
41574                         return new NGFilter(client.ngFilter);
41575                 });
41576
41577                 marquee = new Marquee();
41578
41579                 client.addInitListener(["marqueeClient"], function():void{      //MethodID:4716, LocalCount= 1 , MaxScope= 0, MaxStack= 2, CodeLength= 14
41580                         marquee.init(client.marqueeClient);
41581                 });
41582
41583                 ret["jp.nicovideo.app.plugin.common.Marquee"] = new SoloObjectPool(function():Marquee{  //MethodID:4717, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 4
41584                         return marquee;
41585                 });
41586
41587                 return ret;
41588         }
41589
41590 }
41591
41592 //■script324■
41593
41594 package jp.nicovideo.app.api{
41595
41596         import jp.nicovideo.app.info.IAppliInfo
41597         import jp.nicovideo.util.IObjectPool
41598
41599         //■class(instance)_index:390
41600         public class APIObjectProvider extends Object implements IAPIObjectProvider
41601         {
41602                 //static constructor
41603                 public static function APIObjectProvider$cinit()
41604                 {       //MethodID:4720, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41605                 }
41606
41607                 //constructor
41608                 public function APIObjectProvider(hug1:uint, hug2:Object)
41609                 {       //MethodID:4721, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
41610                         super();
41611
41612                         this._majorVersion = hug1;
41613                         this._pools = hug2;
41614                 }
41615
41616                 //variables/etc.
41617                 private var _majorVersion:uint;                                 //slotID:0
41618                 private var _pools:Object;                                      //slotID:0
41619
41620                 public function get majorVersion():uint
41621                 {       //MethodID:4722, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
41622                         return this._majorVersion;
41623                 }
41624
41625                 public function getObject(hug1:String, hug2:IAppliInfo):*
41626                 {       //MethodID:4723, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 41
41627                         if(!this.hasSet(hug1)) throw new ArgumentError("APIObjectProvider.putObject: name has not been set.");
41628
41629                         return (this._pools[hug1] as IObjectPool).create(hug2);
41630                 }
41631
41632                 public function putObject(hug1:String, hug2:*):void
41633                 {       //MethodID:4724, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 42
41634                         if(!this.hasSet(hug1)) throw new ArgumentError("APIObjectProvider.putObject: name has not been set.");
41635
41636                         var hug3:IObjectPool = this._pools[hug1];
41637
41638                         hug3.restore(hug2);
41639                 }
41640
41641                 public function hasSet(hug1:String):Boolean
41642                 {       //MethodID:4725, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
41643                         return this._pools.hasOwnProperty(hug1);
41644                 }
41645         }
41646 }
41647
41648 //■script325■
41649
41650 package jp.nicovideo.app.applibar.externals{
41651
41652         //■class(instance)_index:391
41653         public interface IBalloonController implements IEventDispatcher
41654         {
41655                 //static constructor
41656                 public static function IBalloonController$cinit()
41657                 {       //MethodID:4727, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
41658                 }
41659
41660                 //variables/etc.
41661                 function get isShowing():Boolean;                                           //MethodID:4728, dispID:0
41662
41663                 function get containerWidth():Number;                                       //MethodID:4729, dispID:0
41664
41665                 function get containerHeight():Number;                                      //MethodID:4730, dispID:0
41666
41667                 function close():void;                                                      //MethodID:4731, dispID:0
41668
41669                 //constructor
41670                 public function IBalloonController();                                       //MethodID:4732, dispID:0
41671         }
41672 }
41673
41674 //■script326■
41675
41676 package jp.nicovideo.util.stream{
41677
41678         import flash.events.AsyncErrorEvent
41679         import flash.events.ErrorEvent
41680         import flash.events.Event
41681         import flash.events.EventDispatcher
41682         import flash.events.NetStatusEvent
41683         import flash.events.SecurityErrorEvent
41684         import flash.events.TimerEvent
41685         import flash.net.NetConnection
41686         import flash.net.NetStream
41687         import flash.utils.Timer
41688         import jp.nicovideo.util.events.EventBarrier
41689         import jp.nicovideo.util.stream.events.StreamErrorEvent
41690         import jp.nicovideo.util.stream.events.StreamEvent
41691
41692         //■class(instance)_index:392
41693         public class AbstractStreamClient extends EventDispatcher
41694         {
41695                 //static constructor
41696                 public static function AbstractStreamClient$cinit()
41697                 {       //MethodID:4734, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41698                 }
41699
41700                 //constructor
41701                 public function AbstractStreamClient(hug1:StreamSource)
41702                 {       //MethodID:4737, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 103
41703                         internal var stream:StreamSource;                               //slotID:1
41704
41705                         stream = hug1;
41706
41707                         super();
41708
41709                         this._stream = stream;
41710                         this._metaDataDelayTimer = new Timer(StreamSource._DEFAULT_BUFFER_TIME, 1);
41711
41712                         this._metaDataDelayTimer.addEventListener(TimerEvent.TIMER, this._onMetaDataDelayHandler);
41713
41714                         this._completeBarrier = new EventBarrier();
41715
41716                         this._stream.addEventListenerClosure(StreamEvent.PAUSED, this._completeBarrier.bind(function(hug1:Event):void{  //MethodID:4735, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
41717                         }));
41718                         this._completeBarrier.finish(function():void{   //MethodID:4736, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 8
41719                                 _stream.init();
41720                         });
41721                 }
41722
41723                 //variables/etc.
41724                 protected var _metaDataDelayTimer:Timer;                        //slotID:0
41725                 protected var _stream:StreamSource;                             //slotID:0
41726                 private var _metaData:Object;                                   //slotID:0
41727                 protected var _ns:NetStream;                                    //slotID:0
41728                 protected var _nc:NetConnection;                                //slotID:0
41729                 private var _vposWatcher:Timer;                                 //slotID:0
41730                 protected var _completeBarrier:EventBarrier;                    //slotID:0
41731
41732                 public function seek(hug1:Number):void
41733                 {       //MethodID:4738, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41734                 }
41735
41736                 public function resume():void
41737                 {       //MethodID:4739, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41738                 }
41739
41740                 public function pause():void
41741                 {       //MethodID:4740, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41742                 }
41743
41744                 public function close():void
41745                 {       //MethodID:4741, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 44
41746                         if(this._vposWatcher) this._vposWatcher.stop();
41747
41748                         if(this._metaDataDelayTimer) this._metaDataDelayTimer.removeEventListener(TimerEvent.TIMER, this._onMetaDataDelayHandler);
41749                 }
41750
41751                 public function end():void
41752                 {       //MethodID:4742, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 21
41753                         this._stream.dispatchEvent(new StreamEvent(StreamEvent.ENDED));
41754                 }
41755
41756                 public function get loadedLength():Number
41757                 {       //MethodID:4743, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
41758                         return 0;
41759                 }
41760
41761                 public function get vpos():Number
41762                 {       //MethodID:4744, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 5
41763                         return 0;
41764                 }
41765
41766                 public function set netSteram(hug1:NetStream):void
41767                 {       //MethodID:4745, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 89
41768                         if(this._ns) return;
41769
41770                         this._ns = hug1;
41771
41772                         this._ns.removeEventListener(NetStatusEvent.NET_STATUS, this._onNetStatus);
41773                         this._ns.removeEventListener(AsyncErrorEvent.ASYNC_ERROR, this._onError);
41774                         this._ns.addEventListener(NetStatusEvent.NET_STATUS, this._onNetStatus);
41775                         this._ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, this._onError);
41776                 }
41777
41778                 public function set netConnection(hug1:NetConnection):void
41779                 {       //MethodID:4746, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 87
41780                         if(this._nc) return;
41781
41782                         this._nc = hug1;
41783
41784                         this._nc.removeEventListener(NetStatusEvent.NET_STATUS, this._onNetStatus);
41785                         this._nc.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this._onError);
41786                         this._nc.addEventListener(NetStatusEvent.NET_STATUS, this._onNetStatus);
41787                         this._nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this._onError);
41788                 }
41789
41790                 private function _onMetaDataDelayHandler(hug1:TimerEvent):void
41791                 {       //MethodID:4747, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 47
41792                         this._metaDataDelayTimer.stop();
41793
41794                         if(this._metaData) this._stream.setMetaData(this._metaData);
41795
41796                         if(!this._stream.isConnected) this._onInit();
41797                 }
41798
41799                 protected function _onInit():void
41800                 {       //MethodID:4748, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 8
41801                         this.pause();
41802                 }
41803
41804                 protected function _onSuccess():void
41805                 {       //MethodID:4754, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 32
41806                         internal var catchEnd:Function;                                 //slotID:1
41807
41808                         catchEnd = function():void{     //MethodID:4753, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 91
41809                                 internal var lastTime:Number;                                   //slotID:1
41810
41811                                 lastTime = NaN;
41812                                 lastTime = 0;
41813                                 _vposWatcher = new Timer(250);
41814
41815                                 _vposWatcher.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{ //MethodID:4749, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 105
41816                                         var hug2:Number = NaN;
41817
41818                                         if(_stream.length == (-1)) return;
41819
41820                                         if((_stream.vpos >= (_stream.length - 2000)) && (lastTime == _ns.time)){
41821                                                 hug2 = (lastTime * 1000);
41822
41823                                                 if(hug2 != _stream.length) _stream.setLength(hug2, true);
41824                                                 end();
41825                                         }
41826
41827                                         lastTime = _ns.time.valueOf();
41828                                 });
41829                                 _stream.addEventListenerClosure(StreamEvent.PLAYED, function(hug1:StreamEvent):void{    //MethodID:4750, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
41830                                         _vposWatcher.start();
41831                                 });
41832                                 _stream.addEventListenerClosure(StreamEvent.PAUSED, function(hug1:StreamEvent):void{    //MethodID:4751, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
41833                                         _vposWatcher.stop();
41834                                 });
41835                                 _stream.addEventListenerClosure(StreamEvent.ENDED, function(hug1:StreamEvent):void{     //MethodID:4752, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 8
41836                                         _vposWatcher.stop();
41837                                 });
41838                         };
41839
41840                         this._stream.createNetStream();
41841                         catchEnd();
41842                 }
41843
41844                 private function _onNetStatus(hug1:NetStatusEvent):void
41845                 {       //MethodID:4755, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 170
41846                         switch(hug1.info.level){
41847                         case "status":
41848                                 this._onNormalNetStatus(hug1);
41849                                 this._stream.dispatchEvent(new StreamEvent(StreamEvent.NET_STATUS, hug1.info));
41850                                 break;
41851                         case "warning":
41852                                 this._onWarningNetStatus(hug1);
41853                                 this._stream.dispatchEvent(new StreamEvent(StreamEvent.NET_STATUS, hug1.info));
41854                                 break;
41855                         case "error":
41856                                 this._onErrorNetStatus(hug1);
41857                                 break;
41858                         default:
41859                                 break;
41860                         }
41861                 }
41862
41863                 protected function _onNormalNetStatus(hug1:NetStatusEvent):void
41864                 {       //MethodID:4756, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 114
41865                         switch(hug1.info.code){
41866                         case "NetConnection.Connect.Success":
41867                                 this._onSuccess();
41868                                 break;
41869                         case "NetConnection.Connect.Closed":
41870                                 this.close();
41871                                 this._stream.dispatchEvent(new StreamEvent(StreamEvent.CLOSE));
41872                                 break;
41873                         default:
41874                                 break;
41875                         }
41876                 }
41877
41878                 protected function _onErrorNetStatus(hug1:NetStatusEvent):void
41879                 {       //MethodID:4757, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 91
41880                         switch(hug1.info.code){
41881                         case "NetStream.Play.StreamNotFound":
41882                                 this.close();
41883                                 break;
41884                         default:
41885                                 break;
41886                         }
41887
41888                         this._stream.dispatchEvent(new StreamErrorEvent(StreamErrorEvent.ERROR, hug1.info));
41889                 }
41890
41891                 protected function _onWarningNetStatus(hug1:NetStatusEvent):void
41892                 {       //MethodID:4758, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41893                 }
41894
41895                 protected function _onError(hug1:ErrorEvent):void
41896                 {       //MethodID:4759, LocalCount= 2 , MaxScope= 1, MaxStack= 7, CodeLength= 37
41897                         this._stream.dispatchEvent(new StreamErrorEvent(StreamErrorEvent.ERROR, {code:hug1.type, description:hug1.text}));
41898                 }
41899
41900                 public function onMetaData(hug1:Object, ...rest):void
41901                 {       //MethodID:4760, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 69
41902                         if(!this._metaData){
41903                                 this._metaData = hug1;
41904
41905                                 if(!this._metaDataDelayTimer.running){
41906                                         this._metaDataDelayTimer.removeEventListener(TimerEvent.TIMER, this._onMetaDataDelayHandler);
41907                                         this._metaDataDelayTimer.addEventListener(TimerEvent.TIMER, this._onMetaDataDelayHandler);
41908                                         this._metaDataDelayTimer.start();
41909                                 }
41910                         }
41911                 }
41912
41913                 public function onPlayStatus(hug1:Object):void
41914                 {       //MethodID:4761, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41915                 }
41916
41917                 public function onXMPData(hug1:Object):void
41918                 {       //MethodID:4762, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41919                 }
41920
41921                 public function onImageData(hug1:Object):void
41922                 {       //MethodID:4763, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41923                 }
41924
41925                 public function onTextData(hug1:Object):void
41926                 {       //MethodID:4764, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41927                 }
41928
41929                 public function onCuePoint(hug1:Object):void
41930                 {       //MethodID:4765, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41931                 }
41932
41933                 public function onLastSecond(hug1:Object):void
41934                 {       //MethodID:4766, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41935                 }
41936         }
41937 }
41938
41939 //■script327■
41940
41941 package jp.nicovideo.util.stream{
41942
41943         import flash.events.NetStatusEvent
41944         import flash.utils.setTimeout
41945         import jp.nicovideo.util.stream.events.StreamEvent
41946
41947         //■class(instance)_index:393
41948         public class RtmpClient extends AbstractStreamClient
41949         {
41950                 //static constructor
41951                 public static function RtmpClient$cinit()
41952                 {       //MethodID:4768, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
41953                 }
41954
41955                 //constructor
41956                 public function RtmpClient(hug1:StreamSource)
41957                 {       //MethodID:4769, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 7
41958                         super(hug1);
41959                 }
41960
41961                 //variables/etc.
41962                 private var _hasSetTimeout4NoMetaData:Boolean = false;          //slotID:0
41963                 private var _sending:Boolean = false;                           //slotID:0
41964
41965                 override protected function _onSuccess():void
41966                 {       //MethodID:4771, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 72
41967                         super._onSuccess();
41968                         _stream.dispatchEvent(new StreamEvent(StreamEvent.START_LOAD));
41969                         _stream.dispatchEvent(new StreamEvent(StreamEvent.COMPLETE_LOAD));
41970
41971                         if(!this._hasSetTimeout4NoMetaData){
41972                                 setTimeout(function():void{     //MethodID:4770, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
41973                                         if(!_stream.isConnected) _metaDataDelayTimer.start();
41974                                 }, 3000);
41975
41976                                 this._hasSetTimeout4NoMetaData = true;
41977                         }
41978                 }
41979
41980                 override public function get loadedLength():Number
41981                 {       //MethodID:4772, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 9
41982                         return _stream.length;
41983                 }
41984
41985                 override public function seek(hug1:Number):void
41986                 {       //MethodID:4773, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 16
41987                         _ns.seek(hug1);
41988
41989                         this._sending = true;
41990                 }
41991
41992                 override public function resume():void
41993                 {       //MethodID:4774, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 15
41994                         _ns.resume();
41995
41996                         this._sending = true;
41997                 }
41998
41999                 override public function pause():void
42000                 {       //MethodID:4775, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 15
42001                         _ns.pause();
42002
42003                         this._sending = true;
42004                 }
42005
42006                 override public function get vpos():Number
42007                 {       //MethodID:4776, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
42008                         return (_ns.time * 1000);
42009                 }
42010
42011                 override protected function _onNormalNetStatus(hug1:NetStatusEvent):void
42012                 {       //MethodID:4780, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 204
42013                         internal var event:NetStatusEvent;                              //slotID:1
42014
42015                         event = hug1;
42016
42017                         super._onNormalNetStatus(event);
42018
42019                         switch(event.info.code){
42020                         case "NetStream.Unpause.Notify":
42021                                 setTimeout(function():void{     //MethodID:4777, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 25
42022                                         _sending = false;
42023
42024                                         _stream.dispatchEvent(new StreamEvent(StreamEvent.PLAYED));
42025                                 }, 0);
42026                                 break;
42027                         case "NetStream.Pause.Notify":
42028                                 setTimeout(function():void{     //MethodID:4778, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 25
42029                                         _sending = false;
42030
42031                                         _stream.dispatchEvent(new StreamEvent(StreamEvent.PAUSED));
42032                                 }, 0);
42033                                 break;
42034                         case "NetStream.Seek.Notify":
42035                                 setTimeout(function():void{     //MethodID:4779, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 25
42036                                         _sending = false;
42037
42038                                         _stream.dispatchEvent(new StreamEvent(StreamEvent.SEEKED));
42039                                 }, 100);
42040                                 break;
42041                         case "NetStream.Buffer.Flush":
42042                         case "NetStream.Buffer.Full":
42043                                 break;
42044                         default:
42045                                 break;
42046                         }
42047                 }
42048
42049                 override protected function _onErrorNetStatus(hug1:NetStatusEvent):void
42050                 {       //MethodID:4781, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 14
42051                         super._onErrorNetStatus(hug1);
42052
42053                         this._sending = false;
42054                 }
42055
42056                 override public function onPlayStatus(hug1:Object):void
42057                 {       //MethodID:4782, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 74
42058                         super.onPlayStatus(hug1);
42059
42060                         switch(hug1.code){
42061                         case "NetStream.Play.Complete":
42062                                 end();
42063                                 break;
42064                         default:
42065                                 break;
42066                         }
42067                 }
42068
42069                 public function onBWDone(... rest):void
42070                 {       //MethodID:4783, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42071                 }
42072
42073                 public function onBWCheck(... rest):void
42074                 {       //MethodID:4784, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42075                 }
42076         }
42077 }
42078
42079 import flash.events.EventDispatcher
42080 import flash.utils.setTimeout
42081 import jp.nicovideo.util.stream.events.StreamEvent
42082
42083 //■class(instance)_index:394
42084 //private
42085 class AsynchronousMethods extends Object
42086 {
42087         //static constructor
42088         public static function AsynchronousMethods$cinit()
42089         {       //MethodID:4785, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42090         }
42091
42092         //constructor
42093         public function AsynchronousMethods(hug1:EventDispatcher)
42094         {       //MethodID:4786, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
42095                 this._processes = [];
42096
42097                 super();
42098
42099                 this._dispatcher = hug1;
42100         }
42101
42102         //variables/etc.
42103         private var _processed:Boolean = false;                         //slotID:0
42104         private var _dispatcher:EventDispatcher;                        //slotID:0
42105         private var _doEvent:String;                                    //slotID:0
42106         private var _processes:Array;                                   //slotID:0
42107
42108         public function send(hug1:Function, hug2:String):void
42109         {       //MethodID:4787, LocalCount= 3 , MaxScope= 1, MaxStack= 5, CodeLength= 74
42110                 if(!this.processed){
42111                         this._doEvent = hug2;
42112
42113                         this._processes.push({type:hug2.toString(), method:hug1});
42114                         hug1();
42115                 }else{
42116                         this._doEvent = hug2;
42117
42118                         this._processes.push({type:hug2.toString(), method:hug1});
42119                 }
42120         }
42121
42122         public function reset():void
42123         {       //MethodID:4788, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 20
42124                 this._doEvent = "";
42125                 this._processed = false;
42126                 this._processes = [];
42127         }
42128
42129         public function get processed():Boolean
42130         {       //MethodID:4789, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 14
42131                 return (this._processes.length != 0);
42132         }
42133
42134         public function recieve(hug1:String):void
42135         {       //MethodID:4791, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 50
42136                 private var type:String;                                        //slotID:1
42137
42138                 type = hug1;
42139                 this._processes = this._processes.filter(function(hug1:*, hug2:Number, hug3:Array):Boolean{     //MethodID:4790, LocalCount= 4 , MaxScope= 0, MaxStack= 3, CodeLength= 28
42140                         if(hug1.type != type){
42141                                 setTimeout(hug1.method, 0);
42142
42143                                 return true;
42144                         }
42145
42146                         return false;
42147                 });
42148                 this._doEvent = type;
42149                 this._processed = (this._processes.length != 0);
42150         }
42151
42152         public function dispatchDoEvent():void
42153         {       //MethodID:4792, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 51
42154                 if((this._doEvent != "") && (this._doEvent != null)){
42155                         this._dispatcher.dispatchEvent(new StreamEvent(this._doEvent));
42156
42157                         this._doEvent = "";
42158                 }
42159         }
42160 }
42161
42162 //■script328■
42163
42164 package jp.nicovideo.util.stream{
42165
42166         import flash.events.Event
42167         import flash.events.NetStatusEvent
42168         import flash.events.TimerEvent
42169         import flash.utils.Timer
42170         import flash.utils.setTimeout
42171         import jp.nicovideo.util.stream.events.StreamEvent
42172
42173         //■class(instance)_index:395
42174         public class HttpClient extends AbstractStreamClient
42175         {
42176                 //static constructor
42177                 public static function HttpClient$cinit()
42178                 {       //MethodID:4794, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42179                 }
42180
42181                 //constructor
42182                 public function HttpClient(hug1:StreamSource)
42183                 {       //MethodID:4796, LocalCount= 3 , MaxScope= 2, MaxStack= 4, CodeLength= 41
42184                         internal var stream:StreamSource;                               //slotID:1
42185
42186                         stream = hug1;
42187
42188                         super(stream);
42189                         _stream.addEventListenerClosure(StreamEvent.SEEKED, _completeBarrier.bind(function(hug1:Event):void{    //MethodID:4795, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
42190                         }));
42191                 }
42192
42193                 //variables/etc.
42194                 private var _progressTimer:Timer;                               //slotID:0
42195                 private var _hasSetTimeout4NoMetaData:Boolean = false;          //slotID:0
42196
42197                 override protected function _onSuccess():void
42198                 {       //MethodID:4800, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 29
42199                         internal var caetchLoaded:Function;                             //slotID:1
42200
42201                         caetchLoaded = function():void{ //MethodID:4799, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 50
42202                                 internal var _isLoadStarted:Boolean;                            //slotID:1
42203
42204                                 _isLoadStarted = false;
42205                                 _isLoadStarted = false;
42206                                 _progressTimer = new Timer(40);
42207
42208                                 _progressTimer.addEventListener(TimerEvent.TIMER, function(hug1:TimerEvent):void{       //MethodID:4798, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 121
42209                                         internal var event:TimerEvent;                                  //slotID:1
42210
42211                                         event = hug1;
42212
42213                                         if(_ns.bytesLoaded <= 0) return;
42214
42215                                         if(!_isLoadStarted){
42216                                                 _stream.dispatchEvent(new StreamEvent(StreamEvent.START_LOAD));
42217
42218                                                 _isLoadStarted = true;
42219                                         }
42220
42221                                         if(!_hasSetTimeout4NoMetaData){
42222                                                 setTimeout(function():void{     //MethodID:4797, LocalCount= 1 , MaxScope= 0, MaxStack= 1, CodeLength= 18
42223                                                         if(!_stream.isConnected) _metaDataDelayTimer.start();
42224                                                 }, 3000);
42225
42226                                                 _hasSetTimeout4NoMetaData = true;
42227                                         }
42228
42229                                         if(_ns.bytesLoaded >= _ns.bytesTotal){
42230                                                 _stream.dispatchEvent(new StreamEvent(StreamEvent.COMPLETE_LOAD));
42231                                                 _progressTimer.stop();
42232                                         }
42233                                 });
42234                                 _progressTimer.start();
42235                         };
42236
42237                         super._onSuccess();
42238                         caetchLoaded();
42239                 }
42240
42241                 override protected function _onInit():void
42242                 {       //MethodID:4801, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 15
42243                         this.seek(0);
42244                         super._onInit();
42245                 }
42246
42247                 override public function resume():void
42248                 {       //MethodID:4803, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 26
42249                         _ns.resume();
42250                         setTimeout(function():void{     //MethodID:4802, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
42251                                 _stream.dispatchEvent(new StreamEvent(StreamEvent.PLAYED));
42252                         }, 0);
42253                 }
42254
42255                 override public function pause():void
42256                 {       //MethodID:4805, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 26
42257                         _ns.pause();
42258                         setTimeout(function():void{     //MethodID:4804, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
42259                                 _stream.dispatchEvent(new StreamEvent(StreamEvent.PAUSED));
42260                         }, 0);
42261                 }
42262
42263                 override public function seek(hug1:Number):void
42264                 {       //MethodID:4806, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
42265                         _ns.seek(hug1);
42266                 }
42267
42268                 override public function get vpos():Number
42269                 {       //MethodID:4807, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
42270                         return (_ns.time * 1000);
42271                 }
42272
42273                 override protected function _onNormalNetStatus(hug1:NetStatusEvent):void
42274                 {       //MethodID:4809, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 97
42275                         internal var event:NetStatusEvent;                              //slotID:1
42276
42277                         event = hug1;
42278
42279                         super._onNormalNetStatus(event);
42280
42281                         switch(event.info.code){
42282                         case "NetStream.Seek.Notify":
42283                                 setTimeout(function():void{     //MethodID:4808, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 18
42284                                         _stream.dispatchEvent(new StreamEvent(StreamEvent.SEEKED));
42285                                 }, 0);
42286                                 break;
42287                         default:
42288                                 break;
42289                         }
42290                 }
42291
42292                 override public function close():void
42293                 {       //MethodID:4810, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 16
42294                         super.close();
42295                         this._progressTimer.stop();
42296                 }
42297
42298                 override protected function _onErrorNetStatus(hug1:NetStatusEvent):void
42299                 {       //MethodID:4811, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 70
42300                         switch(hug1.info.code){
42301                         case "NetStream.Seek.InvalidTime":
42302                                 break;
42303                         default:
42304                                 break;
42305                         }
42306
42307                         super._onErrorNetStatus(hug1);
42308                 }
42309
42310                 override public function get loadedLength():Number
42311                 {       //MethodID:4812, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 38
42312                         return ((Number(_ns.bytesLoaded) / Number(_ns.bytesTotal)) * Number(_stream.length));
42313                 }
42314         }
42315 }
42316
42317 //■script329■
42318
42319 package jp.nicovideo.nicoplayer.models.comment.command{
42320
42321         //■class(instance)_index:396
42322         public class CommandSize extends Object
42323         {
42324                 //static constructor
42325                 public static function CommandSize$cinit()
42326                 {       //MethodID:4814, LocalCount= 1 , MaxScope= 1, MaxStack= 7, CodeLength= 89
42327                         BIG = "big";
42328                         BIG_SIZE = (26 * 1.5);
42329                         SMALL = "small";
42330                         SMALL_SIZE = (10 * 1.5);
42331                         MEDIUM = "medium";
42332                         MEDIUM_SIZE = (16 * 1.5);
42333                         SIZES = {big:BIG_SIZE, small:SMALL_SIZE, medium:MEDIUM_SIZE};
42334                 }
42335
42336                 //static variables/etc.
42337                 public static const BIG:String = "big";                         //slotID:1
42338                 public static const BIG_SIZE:Number = 39.0;                     //slotID:2
42339                 public static const SMALL:String = "small";                     //slotID:3
42340                 public static const SMALL_SIZE:Number = 15.0;                   //slotID:4
42341                 public static const MEDIUM:String = "medium";                   //slotID:5
42342                 public static const MEDIUM_SIZE:Number = 24.0;                  //slotID:6
42343                 public static const SIZES:Object;                               //slotID:7
42344
42345                 //constructor
42346                 public function CommandSize()
42347                 {       //MethodID:4815, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
42348                         super();
42349                 }
42350         }
42351 }
42352
42353 //■script330■
42354
42355 package jp.nicovideo.util.net.local{
42356
42357         import flash.events.SecurityErrorEvent
42358         import flash.net.LocalConnection
42359
42360         //■class(instance)_index:397
42361         public class LocalConnectionFactory extends Object
42362         {
42363                 //static constructor
42364                 public static function LocalConnectionFactory$cinit()
42365                 {       //MethodID:4817, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42366                 }
42367
42368                 //static variables/etc.
42369                 public static function create():LocalConnection
42370                 {       //dispID:3, MethodID:4819, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 41
42371                         internal var lc:LocalConnection;                                //slotID:1
42372
42373                         lc = new LocalConnection();
42374
42375                         lc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function(hug1:SecurityErrorEvent):void{  //MethodID:4818, LocalCount= 2 , MaxScope= 0, MaxStack= 0, CodeLength= 1
42376                         });
42377
42378                         return lc;
42379                 }
42380
42381                 //constructor
42382                 public function LocalConnectionFactory()
42383                 {       //MethodID:4820, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
42384                         super();
42385                 }
42386         }
42387 }
42388
42389 //■script331■
42390 //skip components :com.adobe.utils
42391 //as filename :IntUtil.as
42392
42393 //■script332■
42394 //skip components :mx.utils
42395 //as filename :Base64Encoder.as
42396
42397 //■script333■
42398
42399 package jp.nicovideo.nicoplayer.models.log.elements.videoMenu{
42400
42401         //■class(instance)_index:400
42402         public class VideoenderContentType extends Object
42403         {
42404                 //static constructor
42405                 public static function VideoenderContentType$cinit()
42406                 {       //MethodID:4839, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 84
42407                         RELATED_VIDEO = "relatedVideo";
42408                         OWNER_VIDEO = "ownerVideo";
42409                         LIVE_DJ = "liveDJ";
42410                         OWNER_VIDEO_LIST_PAGE_LINK = "ownerVideoListPageLink";
42411                         MOBILE_LEAD = "mobileLead";
42412                         ADD_MYLIST = "addMylist";
42413                         ALREADY_ADDED_MYLIST_LINK = "alreadyAddedMylistLink";
42414                         JUST_ADDED_MYLIST_LINK = "justAddedMylistLink";
42415                         GET_RELATION_VIDEOS = "getRelationVideos";
42416                 }
42417
42418                 //static variables/etc.
42419                 public static const RELATED_VIDEO:String = "relatedVideo";      //slotID:1
42420                 public static const OWNER_VIDEO:String = "ownerVideo";          //slotID:2
42421                 public static const LIVE_DJ:String = "liveDJ";                  //slotID:3
42422                 public static const OWNER_VIDEO_LIST_PAGE_LINK:String = "ownerVideoListPageLink";//slotID:4
42423                 public static const MOBILE_LEAD:String = "mobileLead";          //slotID:5
42424                 public static const ADD_MYLIST:String = "addMylist";            //slotID:6
42425                 public static const ALREADY_ADDED_MYLIST_LINK:String = "alreadyAddedMylistLink";//slotID:7
42426                 public static const JUST_ADDED_MYLIST_LINK:String = "justAddedMylistLink";//slotID:8
42427                 public static const GET_RELATION_VIDEOS:String = "getRelationVideos";//slotID:9
42428
42429                 //constructor
42430                 public function VideoenderContentType()
42431                 {       //MethodID:4840, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
42432                         super();
42433                 }
42434         }
42435 }
42436
42437 //■script334■
42438
42439 package jp.nicovideo.nicoplayer.models.log.elements.videoMenu{
42440
42441         //■class(instance)_index:401
42442         public class VideoenderTorrigerType extends Object
42443         {
42444                 //static constructor
42445                 public static function VideoenderTorrigerType$cinit()
42446                 {       //MethodID:4842, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
42447                         BUTTON_CLICK = "buttonClick";
42448                         END = "end";
42449                 }
42450
42451                 //static variables/etc.
42452                 public static const BUTTON_CLICK:String = "buttonClick";        //slotID:1
42453                 public static const END:String = "end";                         //slotID:2
42454
42455                 //constructor
42456                 public function VideoenderTorrigerType()
42457                 {       //MethodID:4843, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
42458                         super();
42459                 }
42460         }
42461 }
42462
42463 //■script335■
42464
42465 package jp.nicovideo.util.net.local{
42466
42467         import flash.events.DataEvent
42468         import flash.events.Event
42469         import flash.events.EventDispatcher
42470
42471         use namespace (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test);
42472
42473         //■class(instance)_index:402
42474         public class LocalSession extends EventDispatcher
42475         {
42476                 //static constructor
42477                 public static function LocalSession$cinit()
42478                 {       //MethodID:4845, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 12
42479                         SLAVE_PING_INTERVAL = 1000;
42480                 }
42481
42482                 //static variables/etc.
42483                 internal static const SLAVE_PING_INTERVAL:Number = 1000.0;      //slotID:1
42484
42485                 //constructor
42486                 public function LocalSession(hug1:String)
42487                 {       //MethodID:4846, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 163
42488                         this._receiver = {};
42489                         this._slaveNames = [];
42490
42491                         super();
42492
42493                         this._master = new LocalSessionMaster(hug1);
42494                         this._slave = new LocalSessionSlave(this._master);
42495
42496                         this._slave.addEventListener(Event.INIT, dispatchEvent);
42497                         this._slave.addEventListener(DataEvent.DATA, dispatchEvent);
42498                         this._slave.addEventListener(LocalSessionEvent.SEND_SUCCEEDED, dispatchEvent);
42499                         this._slave.addEventListener(LocalSessionEvent.SEND_FAILURE, dispatchEvent);
42500                         this._master.addEventListener(LocalSessionEvent.MASTERIZE, dispatchEvent);
42501                         this._master.addEventListener(LocalSessionEvent.MASTER_PRESENCE, dispatchEvent);
42502                         this._slave.addEventListener(LocalSessionEvent.MASTER_ABSENCE, dispatchEvent);
42503                 }
42504
42505                 //variables/etc.
42506                 private var _receiver:Object;                                   //slotID:0
42507                 private var _slaveNames:Array;                                  //slotID:0
42508                 private var _hasJoined:Boolean = false;                         //slotID:0
42509                 private var _slave:LocalSessionSlave;                           //slotID:0
42510                 private var _master:LocalSessionMaster;                         //slotID:0
42511
42512                 public function get hasJoined():Boolean
42513                 {       //MethodID:4847, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42514                         return this._hasJoined;
42515                 }
42516
42517                 public function join():void
42518                 {       //MethodID:4848, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
42519                         this._master.masterize([]);
42520                         this._slave.join();
42521                 }
42522
42523                 public function setReceiver(hug1:String, hug2:Function=null):void
42524                 {       //MethodID:4849, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 13
42525                         this._slave.setReceiver(hug1, hug2);
42526                 }
42527
42528                 public function get slaveNames():Array
42529                 {       //MethodID:4850, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42530                         return this._slave.slaveNames;
42531                 }
42532
42533                 public function get connectionName():String
42534                 {       //MethodID:4851, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42535                         return this._slave.name;
42536                 }
42537
42538                 public function send(hug1:String, hug2:String, hug3:*):void
42539                 {       //MethodID:4852, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 14
42540                         this._slave.send(hug1, hug2, hug3);
42541                 }
42542
42543                 public function sendAll(hug1:String, hug2:*):void
42544                 {       //MethodID:4853, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 13
42545                         this._slave.sendAll(hug1, hug2);
42546                 }
42547
42548                 public function ping(hug1:String):void
42549                 {       //MethodID:4854, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
42550                         this._slave.ping(hug1);
42551                 }
42552
42553                 public function close():void
42554                 {       //MethodID:4855, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 36
42555                         this._slave.close();
42556                         this._master.close();
42557                         dispatchEvent(new Event(Event.CLOSE));
42558                 }
42559
42560                 public function get maseterConnectionName():String
42561                 {       //MethodID:4856, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42562                         return this._master.masterName;
42563                 }
42564
42565                 public function get isMaster():Boolean
42566                 {       //MethodID:4857, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42567                         return this._master.isMaster;
42568                 }
42569
42570                 public function get hasInitialized():Boolean
42571                 {       //MethodID:4858, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42572                         return this._slave.hasInitialized;
42573                 }
42574
42575                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get master():LocalSessionMaster
42576                 {       //MethodID:4859, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42577                         return this._master;
42578                 }
42579
42580                 (http://www.nicovideo.jp/as3_ns/nicoplayer/util.test) function get slave():LocalSessionSlave
42581                 {       //MethodID:4860, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42582                         return this._slave;
42583                 }
42584         }
42585 }
42586
42587 //■script336■
42588
42589 package jp.nicovideo.util.net.local{
42590
42591         import flash.events.Event
42592
42593         //■class(instance)_index:403
42594         public class LocalSessionEvent extends Event
42595         {
42596                 //static constructor
42597                 public static function LocalSessionEvent$cinit()
42598                 {       //MethodID:4862, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
42599                         MASTERIZE = "masterize";
42600                         MASTER_ABSENCE = "masterAbsense";
42601                         MASTER_PRESENCE = "masterPresense";
42602                         SEND_SUCCEEDED = "sendSucceeded";
42603                         SEND_FAILURE = "sendFailure";
42604                 }
42605
42606                 //static variables/etc.
42607                 public static const MASTERIZE:String = "masterize";             //slotID:1
42608                 public static const MASTER_ABSENCE:String = "masterAbsense";    //slotID:2
42609                 public static const MASTER_PRESENCE:String = "masterPresense";  //slotID:3
42610                 public static const SEND_SUCCEEDED:String = "sendSucceeded";    //slotID:4
42611                 public static const SEND_FAILURE:String = "sendFailure";        //slotID:5
42612
42613                 //constructor
42614                 public function LocalSessionEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false, hug4:String=null)
42615                 {       //MethodID:4863, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
42616                         super(hug1, hug2, hug3);
42617
42618                         this._connectionName = hug4;
42619                 }
42620
42621                 //variables/etc.
42622                 private var _connectionName:String;                             //slotID:0
42623
42624                 public function get connectionName():String
42625                 {       //MethodID:4864, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42626                         return this._connectionName;
42627                 }
42628
42629                 override public function clone():Event
42630                 {       //MethodID:4865, LocalCount= 1 , MaxScope= 1, MaxStack= 5, CodeLength= 23
42631                         return new LocalSessionEvent(type, bubbles, cancelable, this.connectionName);
42632                 }
42633         }
42634 }
42635
42636 //■script337■
42637
42638 package jp.nicovideo.nicoplayer.views.comment.elements{
42639
42640         import flash.display.MovieClip
42641         import flash.events.MouseEvent
42642         import flash.filters.GlowFilter
42643         import flash.text.TextField
42644         import flash.text.TextFieldAutoSize
42645         import jp.nicovideo.nicoplayer.models.comment.IComment
42646
42647         //■class(instance)_index:404
42648         public class ButtonContainer extends MovieClip
42649         {
42650                 //static constructor
42651                 public static function ButtonContainer$cinit()
42652                 {       //MethodID:4867, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42653                 }
42654
42655                 //constructor
42656                 public function ButtonContainer()
42657                 {       //MethodID:4868, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 135
42658                         this._prefix = new TextField();
42659                         this._postfix = new TextField();
42660                         this._button = new UserButton();
42661
42662                         super();
42663
42664                         this._postfix.autoSize = TextFieldAutoSize.LEFT;
42665                         this._prefix.autoSize = TextFieldAutoSize.LEFT;
42666                         var hug2:Boolean = false;
42667                         this._postfix.selectable = hug2;
42668                         this._prefix.selectable = hug2;
42669                         var hug2:Boolean = true;
42670                         this._postfix.multiline = hug2;
42671                         this._prefix.multiline = hug2;
42672                         var hug1:Array = [CommentTextField.BEVELFILTER_NORMAL];
42673                         var hug2:Array = hug1;
42674                         this._postfix.filters = hug2;
42675                         this._prefix.filters = hug2;
42676                 }
42677
42678                 //variables/etc.
42679                 private var _comment:IComment;                                  //slotID:0
42680                 private var _prefix:TextField;                                  //slotID:0
42681                 private var _postfix:TextField;                                 //slotID:0
42682                 private var _button:UserButton;                                 //slotID:0
42683
42684                 public function setupBoard():void
42685                 {       //MethodID:4869, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 396
42686                         this._button.baseCenter.width = this._button.field.width;
42687
42688                         if(this._button.counter.visible) this._button.baseCenter.width += this._button.counter.width;
42689
42690                         this._button.baseRight.height = this._button.field.height;
42691                         this._button.baseCenter.height = this._button.field.height;
42692                         this._button.baseLeft.height = this._button.field.height;
42693                         var hug1:int = 0;
42694                         this._button.y = hug1;
42695                         this._postfix.y = hug1;
42696                         this._prefix.y = hug1;
42697
42698                         if(this._prefix.text != ""){
42699                                 this._prefix.x = 0;
42700                                 this._button.baseLeft.x = (this._prefix.x + this._prefix.width);
42701
42702                                 addChild(this._prefix);
42703                         }else{
42704                                 this._button.baseLeft.x = 0;
42705                         }
42706
42707                         this._button.field.x = (this._button.baseLeft.x + this._button.baseLeft.width);
42708                         this._button.baseCenter.x = (this._button.baseLeft.x + this._button.baseLeft.width);
42709                         this._button.counter.x = (this._button.field.x + this._button.field.width);
42710                         this._button.baseRight.x = (this._button.baseCenter.x + this._button.baseCenter.width);
42711
42712                         if(this._postfix.text != ""){
42713                                 this._postfix.x = (this._button.baseRight.x + this._button.baseRight.width);
42714
42715                                 addChild(this._postfix);
42716                         }
42717
42718                         addChild(this._button);
42719                 }
42720
42721                 public function initMouseHandler(hug1:IComment):void
42722                 {       //MethodID:4870, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 87
42723                         this._button.mouseChildren = false;
42724                         var hug2:Boolean = true;
42725                         this._button.buttonMode = hug2;
42726                         this._button.useHandCursor = hug2;
42727
42728                         this._button.addEventListener(MouseEvent.MOUSE_OVER, this.mouseOverHandler);
42729                         this._button.addEventListener(MouseEvent.MOUSE_OUT, this.mouseOutHandler);
42730                         this._button.addEventListener(MouseEvent.CLICK, this.onClickButton);
42731
42732                         this._comment = hug1;
42733                 }
42734
42735                 public function releaseClickHandler():void
42736                 {       //MethodID:4871, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 83
42737                         this._button.mouseChildren = false;
42738                         this._button.useHandCursor = false;
42739                         this._button.buttonMode = false;
42740
42741                         this._button.removeEventListener(MouseEvent.MOUSE_OVER, this.mouseOverHandler);
42742                         this._button.removeEventListener(MouseEvent.MOUSE_OUT, this.mouseOutHandler);
42743                         this._button.removeEventListener(MouseEvent.CLICK, this.onClickButton);
42744
42745                         this._comment = null;
42746                 }
42747
42748                 private function mouseOverHandler(hug1:MouseEvent):void
42749                 {       //MethodID:4872, LocalCount= 6 , MaxScope= 1, MaxStack= 8, CodeLength= 83
42750                         var hug2:GlowFilter = new GlowFilter(0xFFFFFF, 0.5, 100, 100, 10, 3, true);
42751                         var hug3:Array = [hug2];
42752                         var hug4:UserButton = (hug1.target as UserButton);
42753                         var hug5:Array = hug3;
42754                         hug4.baseRight.filters = hug5;
42755                         hug4.baseCenter.filters = hug5;
42756                         hug4.baseLeft.filters = hug5;
42757                 }
42758
42759                 private function mouseOutHandler(hug1:MouseEvent):void
42760                 {       //MethodID:4873, LocalCount= 4 , MaxScope= 1, MaxStack= 5, CodeLength= 48
42761                         var hug2:UserButton = (hug1.target as UserButton);
42762                         var hug3:Array = [];
42763                         hug2.baseRight.filters = hug3;
42764                         hug2.baseCenter.filters = hug3;
42765                         hug2.baseLeft.filters = hug3;
42766                 }
42767
42768                 private function onClickButton(hug1:MouseEvent):void
42769                 {       //MethodID:4874, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 34
42770                         this._comment.commentList.clickButtonComment(this._comment);
42771
42772                         if(!this._comment.isClickable) this.releaseClickHandler();
42773                 }
42774
42775                 public function get prefix():TextField
42776                 {       //MethodID:4875, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42777                         return this._prefix;
42778                 }
42779
42780                 public function get postfix():TextField
42781                 {       //MethodID:4876, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42782                         return this._postfix;
42783                 }
42784
42785                 public function get button():UserButton
42786                 {       //MethodID:4877, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42787                         return this._button;
42788                 }
42789
42790                 public function get comment():IComment
42791                 {       //MethodID:4878, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
42792                         return this._comment;
42793                 }
42794         }
42795 }
42796
42797 import flash.display.MovieClip
42798 import flash.text.TextField
42799 import flash.text.TextFieldAutoSize
42800 import jp.nicovideo.nicoplayer.views.comment.elements.CommentTextField
42801
42802 //■class(instance)_index:405
42803 //private
42804 class UserButton extends MovieClip
42805 {
42806         //static constructor
42807         public static function UserButton$cinit()
42808         {       //MethodID:4879, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
42809         }
42810
42811         //constructor
42812         public function UserButton()
42813         {       //MethodID:4880, LocalCount= 4 , MaxScope= 1, MaxStack= 7, CodeLength= 263
42814                 this._ButtonClass = UserButton__ButtonClass;
42815                 this.field = new TextField();
42816                 this.counter = new TextField();
42817
42818                 super();
42819
42820                 var hug1:Object = new this._ButtonClass();
42821                 this.baseLeft = hug1.BaseLeft;
42822                 this.baseCenter = hug1.BaseCenter;
42823                 this.baseRight = hug1.BaseRight;
42824                 var hug2:Array = [CommentTextField.BEVELFILTER_NORMAL];
42825                 this.field.multiline = true;
42826                 var hug3:Boolean = false;
42827                 this.counter.selectable = hug3;
42828                 this.field.selectable = hug3;
42829                 this.counter.autoSize = TextFieldAutoSize.LEFT;
42830                 this.field.autoSize = TextFieldAutoSize.LEFT;
42831                 var hug3:int = 0;
42832                 this.baseRight.y = hug3;
42833                 this.baseCenter.y = hug3;
42834                 this.baseLeft.y = hug3;
42835                 this.counter.y = hug3;
42836                 this.field.y = hug3;
42837                 var hug3:Array = hug2;
42838                 this.counter.filters = hug3;
42839                 this.field.filters = hug3;
42840
42841                 addChild(this.baseLeft);
42842                 addChild(this.baseCenter);
42843                 addChild(this.baseRight);
42844                 addChild(this.field);
42845                 addChild(this.counter);
42846         }
42847
42848         //variables/etc.
42849         private var _ButtonClass:Class;                                 //slotID:0
42850         public var baseLeft:MovieClip;                                  //slotID:0
42851         public var baseCenter:MovieClip;                                //slotID:0
42852         public var baseRight:MovieClip;                                 //slotID:0
42853         public var field:TextField;                                     //slotID:0
42854         public var counter:TextField;                                   //slotID:0
42855 }
42856
42857 //■script338■
42858
42859 package jp.nicovideo.util{
42860
42861         import flash.utils.Proxy
42862         import flash.utils.flash_proxy
42863
42864         use namespace flash_proxy;
42865
42866         //■class(instance)_index:406
42867         public class SortedArray extends Proxy
42868         {
42869                 //static constructor
42870                 public static function SortedArray$cinit()
42871                 {       //MethodID:4882, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 19
42872                         REMOVE = 1;
42873                         BREAK = 2;
42874                 }
42875
42876                 //static variables/etc.
42877                 public static const REMOVE:uint = 1;                            //slotID:1
42878                 public static const BREAK:uint = 2;                             //slotID:2
42879
42880                 //constructor
42881                 public function SortedArray(hug1:Function=null)
42882                 {       //MethodID:4884, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 30
42883                         this.__a = [];
42884                         this.__sorter = function(hug1:*, hug2:*):*{     //MethodID:4883, LocalCount= 3 , MaxScope= 0, MaxStack= 2, CodeLength= 32
42885                                 return ((hug1 < hug2) ? (-1) : ((hug1 == hug2) ? 0 : 1));
42886                         };
42887                         super();
42888
42889                         if(hug1 != null) this.__sorter = hug1;
42890                 }
42891
42892                 //variables/etc.
42893                 private var __a:Array;                                          //slotID:0
42894                 private var __sorter:Function;                                  //slotID:0
42895
42896                 public function get length():uint
42897                 {       //MethodID:4885, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
42898                         return this.__a.length;
42899                 }
42900
42901                 public function add(hug1:*, hug2:*):int
42902                 {       //MethodID:4886, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 69
42903                         if(hug2 === undefined) hug2 = hug1;
42904
42905                         var hug3:int = this.__bSearch(hug1);
42906
42907                         if((hug3 == (-1)) || (this.__sorter(hug1, this.__a[hug3]) != 0)) hug3++;
42908                         this.__a.splice(hug3, 0, hug2);
42909
42910                         return hug3;
42911                 }
42912
42913                 public function addRepeatedly(... rest):void
42914                 {       //MethodID:4887, LocalCount= 5 , MaxScope= 1, MaxStack= 3, CodeLength= 42
42915                         var hug2:* = undefined;
42916
42917                         for each(hug2 in rest){
42918                                 this.add(hug2, hug2);
42919                         }
42920                 }
42921
42922                 public function remove(hug1:*, hug2:Boolean=true):void
42923                 {       //MethodID:4890, LocalCount= 4 , MaxScope= 2, MaxStack= 3, CodeLength= 82
42924                         internal var key:*;                                             //slotID:1
42925                         internal var all:Boolean = true;                                //slotID:2
42926                         internal var remove_all:Function;                               //slotID:3
42927                         internal var remove_first:Function;                             //slotID:4
42928
42929                         remove_all = null;
42930                         remove_first = null;
42931                         key = hug1;
42932                         all = hug2;
42933                         remove_all = function(... rest):uint{   //MethodID:4888, LocalCount= 2 , MaxScope= 0, MaxStack= 1, CodeLength= 4
42934                                 return REMOVE;
42935                         };
42936
42937                         remove_first = function(... rest):uint{ //MethodID:4889, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 8
42938                                 return (REMOVE | BREAK);
42939                         };
42940
42941                         this.select((all ? remove_all : remove_first), key);
42942                 }
42943
42944                 public function select(hug1:Function, hug2:*):void
42945                 {       //MethodID:4891, LocalCount= 5 , MaxScope= 1, MaxStack= 5, CodeLength= 127
42946                         var hug4:uint = 0;
42947                         var hug3:int = this.__bSearch(hug2);
42948
42949                         if(hug3 == (-1)) return;
42950
42951                         while(this.__sorter(hug2, this.__a[hug3]) == 0){
42952                                 hug4 = hug1(hug3, this.__a[hug3]);
42953
42954                                 if((hug4 & REMOVE) != 0) this.__a.splice((hug3--), 1);
42955
42956                                 if(((hug4 & BREAK) != 0) || ((++hug3) >= this.__a.length)) break;
42957                         }
42958                 }
42959
42960                 public function find(hug1:*):*
42961                 {       //MethodID:4892, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 60
42962                         var hug2:int = this.__bSearch(hug1);
42963                         return (((hug2 != (-1)) && (this.__sorter(hug1, this.__a[hug2]) == 0)) ? this.__a[hug2] : undefined);
42964                 }
42965
42966                 public function contains(hug1:*):Boolean
42967                 {       //MethodID:4893, LocalCount= 3 , MaxScope= 1, MaxStack= 4, CodeLength= 39
42968                         var hug2:int = this.__bSearch(hug1);
42969                         return ((hug2 != (-1)) && (this.__sorter(hug1, this.__a[hug2]) == 0));
42970                 }
42971
42972                 public function clear():void
42973                 {       //MethodID:4894, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 13
42974                         this.__a.splice(0);
42975                 }
42976
42977                 private function __bSearch(hug1:*):int
42978                 {       //MethodID:4895, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 19
42979                         return ArrayUtils.lowerBoundIndex(this.__sorter, hug1, this.__a);
42980                 }
42981
42982                 override flash_proxy function nextNameIndex(hug1:int):int
42983                 {       //MethodID:4896, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 27
42984                         return ((hug1 < this.__a.length) ? (hug1 + 1) : 0);
42985                 }
42986
42987                 override flash_proxy function nextValue(hug1:int):*
42988                 {       //MethodID:4897, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 12
42989                         return this.__a[hug1 - 1];
42990                 }
42991         }
42992 }
42993
42994 //■script339■
42995
42996 package jp.nicovideo.nicoscript.macro{
42997
42998         //■class(instance)_index:407
42999         public class NicoScriptError extends Error
43000         {
43001                 //static constructor
43002                 public static function NicoScriptError$cinit()
43003                 {       //MethodID:4899, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43004                 }
43005
43006                 //constructor
43007                 public function NicoScriptError(hug1:String)
43008                 {       //MethodID:4900, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 7
43009                         super(hug1);
43010                 }
43011         }
43012 }
43013
43014 //■script340■
43015
43016 package jp.nicovideo.nicoplayer.storages.commentStorage{
43017
43018         //■class(instance)_index:408
43019         public class TransactorError extends Error
43020         {
43021                 //static constructor
43022                 public static function TransactorError$cinit()
43023                 {       //MethodID:4902, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43024                 }
43025
43026                 //constructor
43027                 public function TransactorError(hug1:Array)
43028                 {       //MethodID:4903, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 15
43029                         super("", 0);
43030
43031                         this.args = hug1;
43032                 }
43033
43034                 //variables/etc.
43035                 public var args:Array;                                          //slotID:0
43036         }
43037 }
43038
43039 //■script341■
43040
43041 package jp.nicovideo.nicoplayer.models.comment{
43042
43043         //■class(instance)_index:409
43044         public interface ILeaf
43045         {
43046                 //static constructor
43047                 public static function ILeaf$cinit()
43048                 {       //MethodID:4905, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43049                 }
43050
43051                 //variables/etc.
43052                 function get id():int;                                                      //MethodID:4906, dispID:0
43053
43054                 function get threadID():int;                                                //MethodID:4907, dispID:0
43055
43056                 function get count():int;                                                   //MethodID:4908, dispID:0
43057
43058                 //constructor
43059                 public function ILeaf();                                                    //MethodID:4909, dispID:0
43060         }
43061 }
43062
43063 //■script342■
43064
43065 package jp.nicovideo.nicoplayer.models.comment{
43066
43067         //■class(instance)_index:410
43068         public class Leaf extends Object implements ILeaf
43069         {
43070                 //static constructor
43071                 public static function Leaf$cinit()
43072                 {       //MethodID:4911, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43073                 }
43074
43075                 //constructor
43076                 public function Leaf(hug1:int, hug2:int, hug3:int)
43077                 {       //MethodID:4912, LocalCount= 4 , MaxScope= 1, MaxStack= 2, CodeLength= 21
43078                         super();
43079
43080                         this._id = hug1;
43081                         this._threadID = hug2;
43082                         this._count = hug3;
43083                 }
43084
43085                 //variables/etc.
43086                 private var _id:int = 0;                                        //slotID:0
43087                 private var _threadID:int = 0;                                  //slotID:0
43088                 private var _count:int = 0;                                     //slotID:0
43089
43090                 public function get id():int
43091                 {       //MethodID:4913, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43092                         return this._id;
43093                 }
43094
43095                 public function get threadID():int
43096                 {       //MethodID:4914, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43097                         return this._threadID;
43098                 }
43099
43100                 public function get count():int
43101                 {       //MethodID:4915, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43102                         return this._count;
43103                 }
43104         }
43105 }
43106
43107 //■script343■
43108 //skip components :com.adobe.serialization.json
43109 //as filename :JSONTokenizer.as
43110
43111 //■script344■
43112 //skip components :com.adobe.serialization.json
43113 //as filename :JSONToken.as
43114
43115 //■script345■
43116 //skip components :com.adobe.serialization.json
43117 //as filename :JSONTokenType.as
43118
43119 //■script346■
43120
43121 package jp.nicovideo.nicoplayer.tpls.NicoplayerTemplateChildren.WindowChildren{
43122
43123         import flash.display.MovieClip
43124         import flash.events.MouseEvent
43125         import flash.text.TextField
43126         import flash.text.TextFormat
43127         import flash.text.TextFormatAlign
43128         import flash.utils.getDefinitionByName
43129
43130         //■class(instance)_index:414
43131         public class Tab extends Object
43132         {
43133                 //static constructor
43134                 public static function Tab$cinit()
43135                 {       //MethodID:4941, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43136                 }
43137
43138                 //constructor
43139                 public function Tab(hug1:String, hug2:Function, hug3:String="Window_Tab")
43140                 {       //MethodID:4944, LocalCount= 5 , MaxScope= 2, MaxStack= 11, CodeLength= 219
43141                         internal var label:String;                                      //slotID:1
43142                         internal var onClick:Function;                                  //slotID:2
43143                         internal var name:String = "Window_Tab";                        //slotID:3
43144                         internal var tabClass:Class;                                    //slotID:4
43145
43146                         label = hug1;
43147                         onClick = hug2;
43148                         name = hug3;
43149                         this._ENABLED_TEXT_FORMAT = new TextFormat("_ゴシック", 12, 0, null, null, null, null, null, TextFormatAlign.CENTER);
43150                         this._DISABLED_TEXT_FORMAT = new TextFormat("_ゴシック", 12, 0xFFFFFF, null, null, null, null, null, TextFormatAlign.CENTER);
43151
43152                         super();
43153
43154                         tabClass = (getDefinitionByName(name) as Class);
43155                         this._tab = new tabClass();
43156                         this._label = this._tab.Label;
43157                         this._field = this._label.Field;
43158                         this._field.text = label;
43159                         this._tab.buttonMode = true;
43160                         this._tab.mouseChildren = false;
43161
43162                         this._tab.addEventListener(MouseEvent.CLICK, onClick);
43163                         this._tab.addEventListener(MouseEvent.MOUSE_OVER, function(hug1:MouseEvent):void{       //MethodID:4942, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
43164                                 if(!_isActive) _tab.gotoAndStop(2);
43165                         });
43166                         this._tab.addEventListener(MouseEvent.MOUSE_OUT, function(hug1:MouseEvent):void{        //MethodID:4943, LocalCount= 2 , MaxScope= 0, MaxStack= 2, CodeLength= 17
43167                                 if(!_isActive) _tab.gotoAndStop(1);
43168                         });
43169
43170                         this.isActive = false;
43171                 }
43172
43173                 //variables/etc.
43174                 private const _ENABLED_TEXT_FORMAT:TextFormat;                  //slotID:0
43175                 private const _DISABLED_TEXT_FORMAT:TextFormat;                 //slotID:0
43176                 private var _isActive:Boolean = false;                          //slotID:0
43177                 private var _tab:MovieClip;                                     //slotID:0
43178                 private var _label:MovieClip;                                   //slotID:0
43179                 private var _newPopup:MovieClip;                                //slotID:0
43180                 private var _field:TextField;                                   //slotID:0
43181
43182                 public function get tab():MovieClip
43183                 {       //MethodID:4945, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43184                         return this._tab;
43185                 }
43186
43187                 public function get label():MovieClip
43188                 {       //MethodID:4946, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43189                         return this._label;
43190                 }
43191
43192                 public function set labelText(hug1:String):void
43193                 {       //MethodID:4947, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
43194                         this._field.text = hug1;
43195                 }
43196
43197                 public function set isActive(hug1:Boolean):void
43198                 {       //MethodID:4948, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 73
43199                         this._isActive = hug1;
43200                         this._tab.useHandCursor = !hug1;
43201
43202                         this._field.setTextFormat(hug1 ? this._ENABLED_TEXT_FORMAT : this._DISABLED_TEXT_FORMAT);
43203                         this._tab.gotoAndStop(hug1 ? 3 : 1);
43204                 }
43205
43206                 public function get isActive():Boolean
43207                 {       //MethodID:4949, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43208                         return this._isActive;
43209                 }
43210
43211                 public function get newPopupVisible():Boolean
43212                 {       //MethodID:4950, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43213                         return this._newPopup.visible;
43214                 }
43215
43216                 public function set newPopupVisible(hug1:Boolean):void
43217                 {       //MethodID:4951, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
43218                         this._newPopup.visible = hug1;
43219                 }
43220         }
43221 }
43222
43223 //■script347■
43224
43225 package jp.nicovideo.app.info{
43226
43227         //■class(instance)_index:415
43228         public interface IAppliInfo
43229         {
43230                 //static constructor
43231                 public static function IAppliInfo$cinit()
43232                 {       //MethodID:4953, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43233                 }
43234
43235                 //variables/etc.
43236                 function get id():String;                                                   //MethodID:4954, dispID:0
43237
43238                 function get version():String;                                              //MethodID:4955, dispID:0
43239
43240                 function get title():String;                                                //MethodID:4956, dispID:0
43241
43242                 function get isDevelopmentVersion():Boolean;                                //MethodID:4957, dispID:0
43243
43244                 function get threads():IAppliThreads;                                       //MethodID:4958, dispID:0
43245
43246                 //constructor
43247                 public function IAppliInfo();                                               //MethodID:4959, dispID:0
43248         }
43249 }
43250
43251 //■script348■
43252
43253 package jp.nicovideo.app.api.v1.plugin.common{
43254
43255         //■class(instance)_index:416
43256         public interface IThread
43257         {
43258                 //static constructor
43259                 public static function IThread$cinit()
43260                 {       //MethodID:4961, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43261                 }
43262
43263                 //variables/etc.
43264                 function get threadID():String;                                             //MethodID:4962, dispID:0
43265
43266                 //constructor
43267                 public function IThread();                                                  //MethodID:4963, dispID:0
43268         }
43269 }
43270
43271 //■script349■
43272
43273 package jp.nicovideo.app.api.v1.plugin.www{
43274
43275         import jp.nicovideo.app.api.v1.plugin.common.IThread
43276
43277         //■class(instance)_index:417
43278         public interface INicoThread implements IThread
43279         {
43280                 //static constructor
43281                 public static function INicoThread$cinit()
43282                 {       //MethodID:4965, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43283                 }
43284
43285                 //variables/etc.
43286                 function get isMymemory():Boolean;                                          //MethodID:4966, dispID:0
43287
43288                 function get optionalThread():IThread;                                      //MethodID:4967, dispID:0
43289
43290                 //constructor
43291                 public function INicoThread();                                              //MethodID:4968, dispID:0
43292         }
43293 }
43294
43295 //■script350■
43296
43297 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
43298
43299         import jp.nicovideo.app.api.v1.plugin.common.IThread
43300
43301         //■class(instance)_index:418
43302         public class NicoThread extends Object implements INicoThread
43303         {
43304                 //static constructor
43305                 public static function NicoThread$cinit()
43306                 {       //MethodID:4970, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43307                 }
43308
43309                 //constructor
43310                 public function NicoThread(hug1:String, hug2:Boolean=false, hug3:String=null)
43311                 {       //MethodID:4971, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 33
43312                         super();
43313
43314                         this._threadID = hug1;
43315                         this._isMymemory = hug2;
43316
43317                         if(hug3) this._optionalThread = new _Thread(hug3);
43318                 }
43319
43320                 //variables/etc.
43321                 private var _threadID:String;                                   //slotID:0
43322                 private var _isMymemory:Boolean;                                //slotID:0
43323                 private var _optionalThread:_Thread = null;                     //slotID:0
43324
43325                 public function get isMymemory():Boolean
43326                 {       //MethodID:4972, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43327                         return this._isMymemory;
43328                 }
43329
43330                 public function get optionalThread():IThread
43331                 {       //MethodID:4973, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43332                         return this._optionalThread;
43333                 }
43334
43335                 public function get threadID():String
43336                 {       //MethodID:4974, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43337                         return this._threadID;
43338                 }
43339         }
43340 }
43341
43342
43343 //■class(instance)_index:419
43344 //private
43345 class _Thread extends Object implements IThread
43346 {
43347         //static constructor
43348         public static function _Thread$cinit()
43349         {       //MethodID:4975, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43350         }
43351
43352         //constructor
43353         public function _Thread(hug1:String)
43354         {       //MethodID:4976, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 11
43355                 super();
43356
43357                 this._threadID = hug1;
43358         }
43359
43360         //variables/etc.
43361         private var _threadID:String;                                   //slotID:0
43362
43363         public function get threadID():String
43364         {       //MethodID:4977, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43365                 return this._threadID;
43366         }
43367 }
43368
43369 //■script351■
43370
43371 package jp.nicovideo.app.api{
43372
43373         //■class(instance)_index:421
43374         public class SoloObjectPool extends Object implements IObjectPool
43375         {
43376                 //static constructor
43377                 public static function SoloObjectPool$cinit()
43378                 {       //MethodID:4981, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43379                 }
43380
43381                 //constructor
43382                 public function SoloObjectPool(hug1:Function)
43383                 {       //MethodID:4982, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 22
43384                         this._object = new _NullObject();
43385
43386                         super();
43387
43388                         this._create = hug1;
43389                 }
43390
43391                 //variables/etc.
43392                 private var _create:Function;                                   //slotID:0
43393                 private var _object:*;                                          //slotID:0
43394
43395                 public function create(... rest):*
43396                 {       //MethodID:4983, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 33
43397                         if(this._object is _NullObject) this._object = this._create.apply(null, rest);
43398
43399                         return this._object;
43400                 }
43401
43402                 public function restore(hug1:*):void
43403                 {       //MethodID:4984, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43404                 }
43405         }
43406 }
43407
43408
43409 //■class(instance)_index:420
43410 //private
43411 class _NullObject extends Object
43412 {
43413         //static constructor
43414         public static function _NullObject$cinit()
43415         {       //MethodID:4979, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43416         }
43417
43418         //constructor
43419         public function _NullObject()
43420         {       //MethodID:4980, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
43421                 super();
43422         }
43423 }
43424
43425 //■script352■
43426
43427 package jp.nicovideo.app.conf{
43428
43429         //■class(instance)_index:422
43430         public class AppliConstants extends Object
43431         {
43432                 //static constructor
43433                 public static function AppliConstants$cinit()
43434                 {       //MethodID:4986, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 20
43435                         INSTALL_MAX_NUM = 100;
43436                         NICOPO_SITE_CODE = "S000E";
43437                 }
43438
43439                 //static variables/etc.
43440                 public static const INSTALL_MAX_NUM:Number = 100.0;             //slotID:1
43441                 public static const NICOPO_SITE_CODE:String = "S000E";          //slotID:2
43442
43443                 //constructor
43444                 public function AppliConstants()
43445                 {       //MethodID:4987, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
43446                         super();
43447                 }
43448         }
43449 }
43450
43451 //■script353■
43452
43453 package jp.nicovideo.app.api{
43454
43455
43456         public const api_system:* = "jp.nicovideo.app.api.api_system";  //slotID:0
43457
43458 }
43459
43460 //■script354■
43461
43462 package jp.nicovideo.app.api.v1.plugin.www{
43463
43464         //■class(instance)_index:423
43465         public interface IVideoInfo
43466         {
43467                 //static constructor
43468                 public static function IVideoInfo$cinit()
43469                 {       //MethodID:4990, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43470                 }
43471
43472                 //variables/etc.
43473                 function get watchID():String;                                              //MethodID:4991, dispID:0
43474
43475                 function get videoID():String;                                              //MethodID:4992, dispID:0
43476
43477                 function get title():String;                                                //MethodID:4993, dispID:0
43478
43479                 function get description():String;                                          //MethodID:4994, dispID:0
43480
43481                 function get thumbTitle():String;                                           //MethodID:4995, dispID:0
43482
43483                 function get thumbDescription():String;                                     //MethodID:4996, dispID:0
43484
43485                 function get thumbnailImageURL():String;                                    //MethodID:4997, dispID:0
43486
43487                 function get tags():Array;                                                  //MethodID:4998, dispID:0
43488
43489                 function get postedAt():Date;                                               //MethodID:4999, dispID:0
43490
43491                 function get viewCount():Number;                                            //MethodID:5000, dispID:0
43492
43493                 //constructor
43494                 public function IVideoInfo();                                               //MethodID:5001, dispID:0
43495         }
43496 }
43497
43498 //■script355■
43499
43500 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
43501
43502         import jp.nicovideo.nicoplayer.models.IVideoDetail
43503         import jp.nicovideo.nicoplayer.models.flashvars.NicoFlashVars
43504
43505         //■class(instance)_index:424
43506         public class VideoInfo extends Object implements IVideoInfo
43507         {
43508                 //static constructor
43509                 public static function VideoInfo$cinit()
43510                 {       //MethodID:5003, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43511                 }
43512
43513                 //constructor
43514                 public function VideoInfo(hug1:IVideoDetail, hug2:NicoFlashVars)
43515                 {       //MethodID:5004, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
43516                         super();
43517
43518                         this._videoDetail = hug1;
43519                         this._flashVars = hug2;
43520                 }
43521
43522                 //variables/etc.
43523                 private var _videoDetail:IVideoDetail;                          //slotID:0
43524                 private var _flashVars:NicoFlashVars;                           //slotID:0
43525
43526                 public function get watchID():String
43527                 {       //MethodID:5005, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43528                         return this._flashVars.watchID;
43529                 }
43530
43531                 public function get videoID():String
43532                 {       //MethodID:5006, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43533                         return this._flashVars.originalVideoID;
43534                 }
43535
43536                 public function get title():String
43537                 {       //MethodID:5007, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43538                         return this._videoDetail.title;
43539                 }
43540
43541                 public function get description():String
43542                 {       //MethodID:5008, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43543                         return this._videoDetail.description;
43544                 }
43545
43546                 public function get thumbTitle():String
43547                 {       //MethodID:5009, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43548                         return this._flashVars.videoTitle;
43549                 }
43550
43551                 public function get thumbDescription():String
43552                 {       //MethodID:5010, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43553                         return this._flashVars.videoDescription;
43554                 }
43555
43556                 public function get thumbnailImageURL():String
43557                 {       //MethodID:5011, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 13
43558                         return this._flashVars.watchFlashVars.thumbImage;
43559                 }
43560
43561                 public function get tags():Array
43562                 {       //MethodID:5012, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43563                         return this._videoDetail.tags;
43564                 }
43565
43566                 public function get postedAt():Date
43567                 {       //MethodID:5013, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43568                         return this._videoDetail.postedAt;
43569                 }
43570
43571                 public function get viewCount():Number
43572                 {       //MethodID:5014, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43573                         return this._videoDetail.viewCount;
43574                 }
43575         }
43576 }
43577
43578 //■script356■
43579
43580 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
43581
43582         import flash.events.EventDispatcher
43583         import jp.nicovideo.app.api.v1.plugin.www.CommentType
43584         import jp.nicovideo.app.api.v1.plugin.www.events.CommentEvent
43585         import jp.nicovideo.nicoplayer.models.comment.Command
43586         import jp.nicovideo.nicoplayer.models.comment.CommentBuilder
43587         import jp.nicovideo.nicoplayer.models.comment.CommentConstants
43588         import jp.nicovideo.nicoplayer.models.comment.CommentPoolContainer
43589         import jp.nicovideo.nicoplayer.models.comment.IComment
43590         import jp.nicovideo.nicoplayer.models.comment.ICommentList
43591         import jp.nicovideo.util.events.event_sender
43592
43593         //■class(instance)_index:425
43594         public class CommentServerClient extends EventDispatcher
43595         {
43596                 //static constructor
43597                 public static function CommentServerClient$cinit()
43598                 {       //MethodID:5016, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43599                 }
43600
43601                 //static variables/etc.
43602                 private static function _removeBadComments(hug1:Array):Array
43603                 {       //dispID:3, MethodID:5017, LocalCount= 6 , MaxScope= 1, MaxStack= 2, CodeLength= 63
43604                         var hug3:IComment = null;
43605                         var hug2:Array = [];
43606
43607                         for each(hug3 in hug1){
43608                                 if(!_isBadComment(hug3)) hug2.push(hug3);
43609                         }
43610
43611                         return hug2;
43612                 }
43613
43614                 private static function _isBadComment(hug1:IComment):Boolean
43615                 {       //dispID:4, MethodID:5018, LocalCount= 2 , MaxScope= 1, MaxStack= 1, CodeLength= 4
43616                         return false;
43617                 }
43618
43619                 private static function _convert2API(hug1:*):*
43620                 {       //dispID:5, MethodID:5019, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 102
43621                         var hug2:Array = null;
43622                         var hug3:IComment = null;
43623
43624                         if(hug1 is IComment) return NicoCommentConverter.convertNico2API(hug1);
43625
43626                         if(hug1 is Array){
43627                                 hug2 = [];
43628
43629                                 for each(hug3 in hug1){
43630                                         hug2.push(NicoCommentConverter.convertNico2API(hug3));
43631                                 }
43632
43633                                 return hug2;
43634                         }else{
43635                                 throw new ArgumentError("CommentServerClient._convert2API: argument must be IComment or Array of IComment");
43636                         }
43637                 }
43638
43639                 //constructor
43640                 public function CommentServerClient(hug1:Object, hug2:CommentPoolContainer)
43641                 {       //MethodID:5020, LocalCount= 9 , MaxScope= 1, MaxStack= 5, CodeLength= 349
43642                         var hug3:String = null;
43643                         var hug4:String = null;
43644                         var hug5:String = null;
43645                         var hug6:ICommentList = null;
43646                         this._beRefleshTypes = {};
43647                         this._exCommentLists = {};
43648                         this._contains = [];
43649                         this._typeMap = {};
43650
43651                         super(null);
43652
43653                         this._nativeCommentLists = hug1;
43654                         this._filteredCommentPools = hug2;
43655                         this._typeMap[CommentConstants.CL_MAIN] = CommentType.NORMAL;
43656                         this._typeMap[CommentConstants.CL_NICOS] = CommentType.NICOSCRIPT_TRIGGER;
43657                         this._typeMap[CommentConstants.CL_LOCAL] = CommentType.LOCAL;
43658                         this._typeMap[CommentConstants.CL_PRIVATE] = CommentType.COMMUNITY;
43659                         this._typeMap[CommentConstants.CL_OWNER] = CommentType.OWNER;
43660
43661                         for(hug3 in this._filteredCommentPools.lists){
43662                                 hug5 = this._typeMap[hug3];
43663
43664                                 this._contains.push(hug5);
43665
43666                                 this._beRefleshTypes[hug5] = true;
43667                                 this._filteredCommentPools.lists[hug3] = _removeBadComments(this._filteredCommentPools.lists[hug3]);
43668                         }
43669
43670                         this._filteredCommentPools.onCommentPoolContainerUpdated.add(this._updateListener);
43671
43672                         for(hug4 in this._nativeCommentLists){
43673                                 hug6 = this._nativeCommentLists[hug4];
43674
43675                                 if(hug4 != CommentConstants.CL_OWNER) hug6.onCommentPost.add(this._postListener);
43676                         }
43677                 }
43678
43679                 //variables/etc.
43680                 private var _beRefleshTypes:Object;                             //slotID:0
43681                 private var _exCommentLists:Object;                             //slotID:0
43682                 private var _contains:Array;                                    //slotID:0
43683                 private var _typeMap:Object;                                    //slotID:0
43684                 private var _nativeCommentLists:Object;                         //slotID:0
43685                 private var _filteredCommentPools:CommentPoolContainer;         //slotID:0
43686
43687                 private function _updateListener(hug1:Array, hug2:Array, hug3:Boolean, hug4:String):void
43688                 {       //MethodID:5021, LocalCount= 6 , MaxScope= 1, MaxStack= 5, CodeLength= 79
43689                         if(hug4 == CommentConstants.CL_OWNER) return;
43690
43691                         hug1 = _removeBadComments(hug1);
43692                         var hug5:String = this._typeMap[hug4];
43693                         this._beRefleshTypes[hug5] = true;
43694
43695                         dispatchEvent(new CommentEvent(CommentEvent.RECEIVE, _convert2API(hug1), hug5));
43696                 }
43697
43698                 private function _postListener(hug1:IComment, hug2:String):void
43699                 {       //MethodID:5022, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 53
43700                         if(!_isBadComment(hug1)) dispatchEvent(new CommentEvent(CommentEvent.POST, [_convert2API(hug1)], this._typeMap[hug2]));
43701                 }
43702
43703                 public function get contains():Array
43704                 {       //MethodID:5023, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43705                         return this._contains;
43706                 }
43707
43708                 public function getCommentList(hug1:String):Array
43709                 {       //MethodID:5024, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 52
43710                         if(this._contains.indexOf(hug1) == (-1)) throw new ArgumentError();
43711
43712                         if(this._beRefleshTypes[hug1]) this._reflesh(hug1);
43713
43714                         return this._exCommentLists[hug1];
43715                 }
43716
43717                 public function postLocalComment(hug1:*):void
43718                 {       //MethodID:5025, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 62
43719                         var hug2:CommentBuilder = new CommentBuilder();
43720                         hug2.message = hug1.message;
43721                         hug2.command = new Command(hug1.mail);
43722
43723                         (this._nativeCommentLists[CommentConstants.CL_LOCAL] as ICommentList).post(hug2.make());
43724                 }
43725
43726                 private function _reflesh(hug1:String):void
43727                 {       //MethodID:5026, LocalCount= 8 , MaxScope= 1, MaxStack= 3, CodeLength= 159
43728                         var hug3:String = null;
43729
43730                         if(this._contains.indexOf(hug1) == (-1)) throw new ArgumentError();
43731
43732                         var hug2:String = null;
43733
43734                         for(hug3 in this._filteredCommentPools.lists){
43735                                 if(this._typeMap[hug3] == hug1){
43736                                         hug2 = hug3;
43737                                         break;
43738                                 }
43739                         }
43740
43741                         if(hug2 == null) throw new Error("指定したタイプが更新対象ではないエラーが発生しました。");
43742
43743                         var hug4:Array = [];
43744                         var hug5:Array = this._filteredCommentPools.lists[hug2];
43745                         hug4 = _convert2API(hug5);
43746                         this._exCommentLists[hug1] = hug4;
43747                         this._beRefleshTypes[hug1] = false;
43748                 }
43749         }
43750 }
43751
43752 //■script357■
43753
43754 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
43755
43756         import flash.events.EventDispatcher
43757         import jp.nicovideo.app.api.v1.plugin.www.events.VideoEvent
43758         import jp.nicovideo.nicoplayer.models.IPlayerConfig
43759         import jp.nicovideo.nicoplayer.models.video.IVideo
43760         import jp.nicovideo.nicoplayer.models.video.IVideoController
43761         import jp.nicovideo.nicoplayer.models.video.VideoConstants
43762         import jp.nicovideo.nicoplayer.tpls.shutter.AudioShutterConstants
43763         import jp.nicovideo.nicoplayer.tpls.shutter.IControllerShutter
43764         import jp.nicovideo.util.events.EventResult
43765         import jp.nicovideo.util.events.event_sender
43766         import jp.nicovideo.util.loka.__MSG__
43767
43768         use namespace jp.nicovideo.app.api.api_system;
43769
43770         //■class(instance)_index:426
43771         public class VideoPlayer extends EventDispatcher
43772         {
43773                 //static constructor
43774                 public static function VideoPlayer$cinit()
43775                 {       //MethodID:5028, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43776                 }
43777
43778                 //constructor
43779                 public function VideoPlayer(hug1:IVideoController, hug2:IPlayerConfig, hug3:IControllerShutter)
43780                 {       //MethodID:5034, LocalCount= 5 , MaxScope= 2, MaxStack= 2, CodeLength= 161
43781                         internal var videoController:IVideoController;                  //slotID:1
43782                         internal var playerConfig:IPlayerConfig;                        //slotID:2
43783                         internal var audioShutter:IControllerShutter;                   //slotID:3
43784
43785                         videoController = hug1;
43786                         playerConfig = hug2;
43787                         audioShutter = hug3;
43788
43789                         super();
43790
43791                         this._controller = videoController;
43792                         this._video = videoController.videoWrapper;
43793                         this._audioShutter = audioShutter;
43794                         this._config = playerConfig;
43795
43796                         this._video.onVideoStarted.add(function():EventResult{  //MethodID:5029, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 26
43797                                 dispatchEvent(new VideoEvent(VideoEvent.STARTED));
43798
43799                                 return EventResult.THROUGH;
43800                         });
43801                         this._video.onVideoPlayed.add(function():EventResult{   //MethodID:5030, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 26
43802                                 dispatchEvent(new VideoEvent(VideoEvent.PLAYED));
43803
43804                                 return EventResult.THROUGH;
43805                         });
43806                         this._video.onVideoStopped.add(function():EventResult{  //MethodID:5031, LocalCount= 1 , MaxScope= 0, MaxStack= 3, CodeLength= 26
43807                                 dispatchEvent(new VideoEvent(VideoEvent.PAUSED));
43808
43809                                 return EventResult.THROUGH;
43810                         });
43811                         this._video.onVideoEnded.add(function(hug1:Boolean):EventResult{        //MethodID:5032, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 26
43812                                 dispatchEvent(new VideoEvent(VideoEvent.ENDED));
43813
43814                                 return EventResult.THROUGH;
43815                         });
43816                         this._video.onVideoSeeked.add(function(hug1:Number):EventResult{        //MethodID:5033, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 26
43817                                 dispatchEvent(new VideoEvent(VideoEvent.SEEKED));
43818
43819                                 return EventResult.THROUGH;
43820                         });
43821                 }
43822
43823                 //variables/etc.
43824                 private var _controller:IVideoController;                       //slotID:0
43825                 private var _video:IVideo;                                      //slotID:0
43826                 private var _audioShutter:IControllerShutter;                   //slotID:0
43827                 private var _config:IPlayerConfig;                              //slotID:0
43828                 private var _hasLocked:Boolean = false;                         //slotID:0
43829                 private var _appliID:String;                                    //slotID:0
43830
43831                 jp.nicovideo.app.api.api_system function reset(hug1:String):void
43832                 {       //MethodID:5035, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
43833                         this._appliID = hug1;
43834                 }
43835
43836                 public function play():void
43837                 {       //MethodID:5036, LocalCount= 1 , MaxScope= 1, MaxStack= 3, CodeLength= 73
43838                         if(this.isPlaying && !this.isPausing) return;
43839
43840                         if(this.hasLocked){
43841                                 this._audioShutter.open(AudioShutterConstants.SHUTTER_PLUGIN);
43842                                 this._controller.play(VideoConstants.OPERATION_PLUGIN_PREFIX + this._appliID);
43843                         }
43844
43845                         this._controller.play();
43846                 }
43847
43848                 public function pause(hug1:Boolean=false):void
43849                 {       //MethodID:5037, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 71
43850                         if(hug1 && !this.hasLocked){
43851                                 this._audioShutter.close(AudioShutterConstants.SHUTTER_PLUGIN, __MSG__("アプリにより制限されています。"));
43852                                 this._controller.stop(VideoConstants.OPERATION_PLUGIN_PREFIX + this._appliID);
43853                         }
43854
43855                         this._controller.stop();
43856                 }
43857
43858                 public function get hasLocked():Boolean
43859                 {       //MethodID:5038, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 17
43860                         return this._audioShutter.isClosing(AudioShutterConstants.SHUTTER_PLUGIN);
43861                 }
43862
43863                 public function releaseLock():void
43864                 {       //MethodID:5039, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 39
43865                         var hug1:Boolean = (!this.isPlaying || this.isPausing);
43866
43867                         this.play();
43868
43869                         if(hug1) this._controller.stop();
43870                 }
43871
43872                 public function seek(hug1:Number):void
43873                 {       //MethodID:5040, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 12
43874                         this._controller.seek(hug1);
43875                 }
43876
43877                 public function get vpos():Number
43878                 {       //MethodID:5041, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43879                         return this._video.vpos;
43880                 }
43881
43882                 public function get length():Number
43883                 {       //MethodID:5042, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43884                         return this._video.length;
43885                 }
43886
43887                 public function get isPlaying():Boolean
43888                 {       //MethodID:5043, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43889                         return this._video.isPlaying;
43890                 }
43891
43892                 public function get isPausing():Boolean
43893                 {       //MethodID:5044, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43894                         return this._video.isPausing;
43895                 }
43896
43897                 public function get isSeeking():Boolean
43898                 {       //MethodID:5045, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43899                         return this._video.isSeeking;
43900                 }
43901
43902                 public function get isEnd():Boolean
43903                 {       //MethodID:5046, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43904                         return this._video.isEnd;
43905                 }
43906
43907                 public function get isBuffering():Boolean
43908                 {       //MethodID:5047, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
43909                         return this._video.isBuffering;
43910                 }
43911
43912                 public function get bufferedRatio():Number
43913                 {       //MethodID:5048, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 18
43914                         return (this._video.loadedLength / this._video.length);
43915                 }
43916         }
43917 }
43918
43919 //■script358■
43920
43921 package jp.nicovideo.app.api.v1.plugin.common{
43922
43923         //■class(instance)_index:427
43924         public interface IMarquee implements IEventDispatcher
43925         {
43926                 //static constructor
43927                 public static function IMarquee$cinit()
43928                 {       //MethodID:5050, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
43929                 }
43930
43931                 //variables/etc.
43932                 function get isInterrupting():Boolean;                                      //MethodID:5051, dispID:0
43933
43934                 //constructor
43935                 public function IMarquee();                                                 //MethodID:5052, dispID:0
43936         }
43937 }
43938
43939 //■script359■
43940
43941 package jp.nicovideo.nicoplayer.app.api.v1.plugin.common{
43942
43943         import flash.events.EventDispatcher
43944         import jp.nicovideo.app.api.v1.plugin.common.events.MarqueeEvent
43945         import jp.nicovideo.marquee.IMarqueeClient
43946         import jp.nicovideo.marquee.models.info.IMarqueeInfo
43947         import jp.nicovideo.util.events.event_sender
43948
43949         //■class(instance)_index:428
43950         public class Marquee extends EventDispatcher implements IMarquee
43951         {
43952                 //static constructor
43953                 public static function Marquee$cinit()
43954                 {       //MethodID:5054, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
43955                 }
43956
43957                 //constructor
43958                 public function Marquee()
43959                 {       //MethodID:5055, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
43960                         super();
43961                 }
43962
43963                 //variables/etc.
43964                 private var _isInterrupting:Boolean = false;                    //slotID:0
43965                 private var _client:IMarqueeClient;                             //slotID:0
43966
43967                 public function init(hug1:IMarqueeClient=null):void
43968                 {       //MethodID:5056, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 57
43969                         if(hug1 == null) return;
43970
43971                         this._client = hug1;
43972
43973                         this._client.onMarqueeClientNicowariStarted.add(this._onInterruptStart);
43974                         this._client.onMarqueeClientNicowariEnded.add(this._onInterruptEnd);
43975                 }
43976
43977                 private function _onInterruptStart(hug1:IMarqueeInfo):void
43978                 {       //MethodID:5057, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 28
43979                         this._isInterrupting = true;
43980
43981                         dispatchEvent(new MarqueeEvent(MarqueeEvent.INTERRUPT_START));
43982                 }
43983
43984                 private function _onInterruptEnd(hug1:IMarqueeInfo):void
43985                 {       //MethodID:5058, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 37
43986                         if(!this._isInterrupting) return;
43987
43988                         this._isInterrupting = false;
43989
43990                         dispatchEvent(new MarqueeEvent(MarqueeEvent.INTERRUPT_END));
43991                 }
43992
43993                 public function get isInterrupting():Boolean
43994                 {       //MethodID:5059, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
43995                         return this._isInterrupting;
43996                 }
43997         }
43998 }
43999
44000 //■script360■
44001
44002 package jp.nicovideo.app.api.v1.plugin.common{
44003
44004         //■class(instance)_index:429
44005         public interface INGFilter implements IEventDispatcher
44006         {
44007                 //static constructor
44008                 public static function INGFilter$cinit()
44009                 {       //MethodID:5061, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
44010                 }
44011
44012                 //variables/etc.
44013                 function get list():Array;                                                  //MethodID:5062, dispID:0
44014
44015                 //constructor
44016                 public function INGFilter();                                                //MethodID:5063, dispID:0
44017         }
44018 }
44019
44020 //■script361■
44021
44022 package jp.nicovideo.nicoplayer.app.api.v1.plugin.common{
44023
44024         import flash.events.EventDispatcher
44025         import jp.nicovideo.app.api.v1.events.ListEvent
44026         import jp.nicovideo.app.api.v1.plugin.common.NGSource
44027         import jp.nicovideo.app.api.v1.plugin.common.NGSourceType
44028         import jp.nicovideo.nicoplayer.models.filter.INGComment
44029         import jp.nicovideo.nicoplayer.models.filter.NGInfo
44030         import jp.nicovideo.nicoplayer.models.filter.NGResponseConstants
44031         import jp.nicovideo.nicoplayer.models.filter.NGType
44032
44033         //■class(instance)_index:430
44034         public class NGFilter extends EventDispatcher implements INGFilter
44035         {
44036                 //static constructor
44037                 public static function NGFilter$cinit()
44038                 {       //MethodID:5065, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44039                 }
44040
44041                 //constructor
44042                 public function NGFilter(hug1:INGComment)
44043                 {       //MethodID:5067, LocalCount= 3 , MaxScope= 2, MaxStack= 2, CodeLength= 48
44044                         internal var nativeObj:INGComment;                              //slotID:1
44045
44046                         nativeObj = hug1;
44047                         this._list = [];
44048
44049                         super();
44050
44051                         this._obj = nativeObj;
44052
44053                         this._obj.onUpdated.add(function(hug1:Array, hug2:String):void{ //MethodID:5066, LocalCount= 3 , MaxScope= 0, MaxStack= 4, CodeLength= 43
44054                                 if(hug2 != NGResponseConstants.OK) return;
44055                                 _convert();
44056                                 dispatchEvent(new ListEvent(ListEvent.CHANGE, _list));
44057                         });
44058                         this._convert();
44059                 }
44060
44061                 //variables/etc.
44062                 private var _obj:INGComment;                                    //slotID:0
44063                 private var _list:Array;                                        //slotID:0
44064
44065                 private function _convert():void
44066                 {       //MethodID:5069, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 27
44067                         this._list = [];
44068
44069                         this._obj.list.forEach(function(hug1:NGInfo, hug2:int, hug3:Array):void{        //MethodID:5068, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 115
44070                                 var hug4:uint = 0;
44071
44072                                 if(hug1.type == NGType.USER_ID){
44073                                         hug4 = NGSourceType.USER;
44074                                 }else if(hug1.type == NGType.MESSAGE){
44075                                         hug4 = NGSourceType.KEYWORD;
44076                                 }else if(hug1.type == NGType.COMMAND){
44077                                         hug4 = NGSourceType.COMMAND;
44078                                 }else{
44079                                         throw new TypeError();
44080                                 }
44081
44082                                 _list.push(new NGSource(hug4, hug1.source));
44083                         });
44084                 }
44085
44086                 public function get list():Array
44087                 {       //MethodID:5070, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44088                         return this._list;
44089                 }
44090         }
44091 }
44092
44093 //■script362■
44094
44095 package jp.nicovideo.app.api.v1.plugin.www{
44096
44097         //■class(instance)_index:431
44098         public interface IPlayerConfig implements IEventDispatcher
44099         {
44100                 //static constructor
44101                 public static function IPlayerConfig$cinit()
44102                 {       //MethodID:5072, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
44103                 }
44104
44105                 //variables/etc.
44106                 function get screenMode():String;                                           //MethodID:5073, dispID:0
44107
44108                 function get screenAspectRatio():String;                                    //MethodID:5074, dispID:0
44109
44110                 function get isMute():Boolean;                                              //MethodID:5075, dispID:0
44111
44112                 function get volume():Number;                                               //MethodID:5076, dispID:0
44113
44114                 function get useAnonymity():Boolean;                                        //MethodID:5077, dispID:0
44115
44116                 function get isRepeat():Boolean;                                            //MethodID:5078, dispID:0
44117
44118                 function get isAutoPlay():Boolean;                                          //MethodID:5079, dispID:0
44119
44120                 function get commentVisible():Boolean;                                      //MethodID:5080, dispID:0
44121
44122                 function get marqueeInterruptionEnabled():Boolean;                          //MethodID:5081, dispID:0
44123
44124                 function get deepenedComment():Boolean;                                     //MethodID:5082, dispID:0
44125
44126                 function get clockMessageVisible():Boolean;                                 //MethodID:5083, dispID:0
44127
44128                 function get sponsorVisibleOnRepeat():Boolean;                              //MethodID:5084, dispID:0
44129
44130                 //constructor
44131                 public function IPlayerConfig();                                            //MethodID:5085, dispID:0
44132         }
44133 }
44134
44135 //■script363■
44136
44137 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
44138
44139         import flash.events.EventDispatcher
44140         import jp.nicovideo.app.api.v1.plugin.www.PlayerConfigScreenAspectRatio
44141         import jp.nicovideo.app.api.v1.plugin.www.PlayerConfigScreenMode
44142         import jp.nicovideo.app.api.v1.plugin.www.events.PlayerConfigEvent
44143         import jp.nicovideo.nicoplayer.models.IPlayerConfig
44144         import jp.nicovideo.nicoplayer.models.ScreenAspectRatio
44145         import jp.nicovideo.nicoplayer.models.ScreenMode
44146         import jp.nicovideo.util.events.event_sender
44147
44148         //■class(instance)_index:432
44149         public class PlayerConfig extends EventDispatcher implements IPlayerConfig
44150         {
44151                 //static constructor
44152                 public static function PlayerConfig$cinit()
44153                 {       //MethodID:5087, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44154                 }
44155
44156                 //constructor
44157                 public function PlayerConfig(hug1:IPlayerConfig)
44158                 {       //MethodID:5088, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 17
44159                         super(null);
44160
44161                         this._config = hug1;
44162
44163                         this._PlayerConfig();
44164                 }
44165
44166                 //variables/etc.
44167                 private var _config:IPlayerConfig;                              //slotID:0
44168
44169                 private function _PlayerConfig():void
44170                 {       //MethodID:5092, LocalCount= 2 , MaxScope= 2, MaxStack= 2, CodeLength= 67
44171                         this._config.onPlayerConfigIsMuteUpdated.add(function(hug1:Boolean):void{       //MethodID:5089, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
44172                                 if(hug1){
44173                                         dispatchEvent(new PlayerConfigEvent(PlayerConfigEvent.MUTE_SET));
44174                                 }else{
44175                                         dispatchEvent(new PlayerConfigEvent(PlayerConfigEvent.MUTE_UNSET));
44176                                 }
44177                         });
44178                         this._config.onPlayerConfigCommentVisibleUpdated.add(function(hug1:Boolean):void{       //MethodID:5090, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 50
44179                                 if(hug1){
44180                                         dispatchEvent(new PlayerConfigEvent(PlayerConfigEvent.COMMENT_VISIBLE));
44181                                 }else{
44182                                         dispatchEvent(new PlayerConfigEvent(PlayerConfigEvent.COMMENT_INVISIBLE));
44183                                 }
44184                         });
44185                         this._config.onPlayerConfigAspectRatioUpdate.add(function(hug1:uint):void{      //MethodID:5091, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 21
44186                                 dispatchEvent(new PlayerConfigEvent(PlayerConfigEvent.ASPECT_RATIO_UPDATE));
44187                         });
44188                 }
44189
44190                 public function get screenMode():String
44191                 {       //MethodID:5093, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 57
44192                         if(this._config.screenMode == ScreenMode.NORMAL) return PlayerConfigScreenMode.NORMAL;
44193
44194                         if(this._config.screenMode == ScreenMode.BROWSER_FULL) return PlayerConfigScreenMode.BROWSER_FULL;
44195
44196                         return PlayerConfigScreenMode.DISPLAY_FULL;
44197                 }
44198
44199                 public function get screenAspectRatio():String
44200                 {       //MethodID:5094, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 57
44201                         if(this._config.aspectRatio == ScreenAspectRatio.NORMAL) return PlayerConfigScreenAspectRatio.SD;
44202
44203                         if(this._config.aspectRatio == ScreenAspectRatio.WIDE) return PlayerConfigScreenAspectRatio.HD;
44204
44205                         return PlayerConfigScreenAspectRatio.SD;
44206                 }
44207
44208                 public function get isMute():Boolean
44209                 {       //MethodID:5095, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44210                         return this._config.isMute;
44211                 }
44212
44213                 public function get volume():Number
44214                 {       //MethodID:5096, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44215                         return this._config.volume;
44216                 }
44217
44218                 public function get useAnonymity():Boolean
44219                 {       //MethodID:5097, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44220                         return this._config.use184;
44221                 }
44222
44223                 public function get isRepeat():Boolean
44224                 {       //MethodID:5098, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44225                         return this._config.isLoop;
44226                 }
44227
44228                 public function get isAutoPlay():Boolean
44229                 {       //MethodID:5099, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44230                         return this._config.autoPlay;
44231                 }
44232
44233                 public function get commentVisible():Boolean
44234                 {       //MethodID:5100, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44235                         return this._config.commentVisible;
44236                 }
44237
44238                 public function get marqueeInterruptionEnabled():Boolean
44239                 {       //MethodID:5101, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 11
44240                         return !this._config.isNicowariSkip;
44241                 }
44242
44243                 public function get deepenedComment():Boolean
44244                 {       //MethodID:5102, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44245                         return this._config.deepenedComment;
44246                 }
44247
44248                 public function get clockMessageVisible():Boolean
44249                 {       //MethodID:5103, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44250                         return this._config.clockMessageVisible;
44251                 }
44252
44253                 public function get sponsorVisibleOnRepeat():Boolean
44254                 {       //MethodID:5104, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 10
44255                         return this._config.sponsorVisibleOnLoop;
44256                 }
44257         }
44258 }
44259
44260 //■script364■
44261
44262 package jp.nicovideo.util.net.local{
44263
44264         import flash.errors.IllegalOperationError
44265         import flash.events.DataEvent
44266         import flash.events.Event
44267         import flash.events.EventDispatcher
44268         import flash.events.StatusEvent
44269         import flash.events.TimerEvent
44270         import flash.net.LocalConnection
44271         import flash.utils.Timer
44272
44273         //■class(instance)_index:433
44274         public class LocalSessionSlave extends EventDispatcher
44275         {
44276                 //static constructor
44277                 public static function LocalSessionSlave$cinit()
44278                 {       //MethodID:5106, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44279                 }
44280
44281                 //constructor
44282                 public function LocalSessionSlave(hug1:LocalSessionMaster)
44283                 {       //MethodID:5107, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 52
44284                         this._connection = LocalConnectionFactory.create();
44285                         this._pingTimer = new Timer(LocalSession.SLAVE_PING_INTERVAL);
44286                         this._slaveNames = [];
44287
44288                         super();
44289
44290                         this._master = hug1;
44291                         this._connection.client = {};
44292                 }
44293
44294                 //variables/etc.
44295                 private var _connection:LocalConnection;                        //slotID:0
44296                 private var _name:String;                                       //slotID:0
44297                 private var _hasJoined:Boolean = false;                         //slotID:0
44298                 private var _master:LocalSessionMaster;                         //slotID:0
44299                 private var _pingTimer:Timer;                                   //slotID:0
44300                 private var _slaveNames:Array;                                  //slotID:0
44301                 private var _lastReceiver:Object;                               //slotID:0
44302                 private var _hasInitialized:Boolean = false;                    //slotID:0
44303
44304                 public function join(hug1:Object=null):void
44305                 {       //MethodID:5108, LocalCount= 4 , MaxScope= 5, MaxStack= 5, CodeLength= 312
44306                         internal var receiver:Object = null;                            //slotID:1
44307                         internal var time:Number;                                       //slotID:2
44308                         internal var attempts:int;                                      //slotID:3
44309                         internal var err:Error;                                         //slotID:4
44310                         internal var name:String;                                       //slotID:5
44311
44312                         err = null;
44313                         name = null;
44314                         receiver = hug1;
44315                         time = new Date().getTime();
44316                         attempts = 3;
44317
44318                         while(true){
44319                                 try{
44320                                         name = (time.toString() + Math.round(Math.random() * 1000).toString());
44321
44322                                         this._connection.connect(name);
44323
44324                                         this._name = name;
44325                                         this._master.mySlaveName = this._name;
44326                                         this._hasJoined = true;
44327                                         break;
44328                                 }
44329                                 catch(e:ArgumentError){
44330                                         err = e;
44331                                 }
44332
44333                                 attempts -= 1;
44334
44335                                 if((attempts - 1) < 0) throw new Error(("LocalSessionSlave.join: can not connect to LocalConnection. attempts has been lost. attempts=" + attempts + " LocalConnection.connect's Error=") + err.toString());
44336
44337                                 time += 1;
44338                         }
44339
44340                         this._connection.client = this._createClient(this._connection.client);
44341
44342                         this._connection.send(this._master.masterName, (this._master.domain + ".getSlaveNames"), name);
44343                         this._pingTimer.addEventListener(TimerEvent.TIMER, this._pingMaster);
44344                         this._pingTimer.start();
44345                         this._connection.addEventListener(StatusEvent.STATUS, this._connectionStatusListener);
44346                 }
44347
44348                 private function _connectionStatusListener(hug1:StatusEvent):void
44349                 {       //MethodID:5109, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 47
44350                         if(hug1.level != "error") return;
44351                         dispatchEvent(new LocalSessionEvent(LocalSessionEvent.MASTER_ABSENCE));
44352                         this._master.masterize(this._slaveNames);
44353                 }
44354
44355                 private function _pingMaster(hug1:TimerEvent=null):void
44356                 {       //MethodID:5110, LocalCount= 2 , MaxScope= 1, MaxStack= 4, CodeLength= 33
44357                         this._connection.send(this._master.masterName, (this._master.domain + ".ping"), this.name);
44358                 }
44359
44360                 public function setReceiver(hug1:String, hug2:Function=null):void
44361                 {       //MethodID:5111, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 52
44362                         var hug3:String = (this._master.domain + ".method." + hug1);
44363
44364                         if(hug2 == null){
44365                                 delete this._connection.client[hug3];
44366                         }else{
44367                                 this._connection.client[hug3] = hug2;
44368                         }
44369                 }
44370
44371                 private function _createClient(hug1:Object):Object
44372                 {       //MethodID:5114, LocalCount= 5 , MaxScope= 2, MaxStack= 4, CodeLength= 169
44373                         internal var original:Object;                                   //slotID:1
44374                         internal var domain:String;                                     //slotID:2
44375                         internal var client:Object;                                     //slotID:3
44376                         internal var name:String;                                       //slotID:4
44377                         internal var receiveSlaveNames:Function;                        //slotID:5
44378                         internal var receiveIsAliveResult:Function;                     //slotID:6
44379
44380                         name = null;
44381                         receiveSlaveNames = null;
44382                         receiveIsAliveResult = null;
44383                         original = hug1;
44384                         receiveSlaveNames = function(hug1:Array):void{  //MethodID:5112, LocalCount= 2 , MaxScope= 0, MaxStack= 3, CodeLength= 59
44385                                 _slaveNames = hug1;
44386
44387                                 if(!_hasInitialized){
44388                                         dispatchEvent(new Event(Event.INIT));
44389
44390                                         _hasInitialized = true;
44391                                 }
44392
44393                                 dispatchEvent(new DataEvent(DataEvent.DATA));
44394                         };
44395
44396                         receiveIsAliveResult = function(hug1:*):void{   //MethodID:5113, LocalCount= 3 , MaxScope= 0, MaxStack= 6, CodeLength= 50
44397                                 var hug2:String = (hug1.isAlive ? LocalSessionEvent.SEND_SUCCEEDED : LocalSessionEvent.SEND_FAILURE);
44398
44399                                 dispatchEvent(new LocalSessionEvent(hug2, false, false, hug1.targetName));
44400                         };
44401
44402                         domain = this._master.domain;
44403                         client = {};
44404
44405                         for(name in original){
44406                                 client[name] = original[name];
44407                         }
44408
44409                         client[domain + ".receiveSlaveNames"] = receiveSlaveNames;
44410                         client[domain + ".receiveIsAliveResult"] = receiveIsAliveResult;
44411                         return client;
44412                 }
44413
44414                 public function ping(hug1:String):void
44415                 {       //MethodID:5115, LocalCount= 2 , MaxScope= 1, MaxStack= 5, CodeLength= 34
44416                         this._connection.send(this._master.masterName, (this._master.domain + ".isAlive"), hug1, this._name);
44417                 }
44418
44419                 public function get name():String
44420                 {       //MethodID:5116, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 26
44421                         if(!this.hasJoined) throw new IllegalOperationError("has not joined");
44422
44423                         return this._name;
44424                 }
44425
44426                 public function get slaveNames():Array
44427                 {       //MethodID:5117, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44428                         return this._slaveNames;
44429                 }
44430
44431                 public function get hasJoined():Boolean
44432                 {       //MethodID:5118, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44433                         return this._hasJoined;
44434                 }
44435
44436                 public function get hasInitialized():Boolean
44437                 {       //MethodID:5119, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44438                         return this._hasInitialized;
44439                 }
44440
44441                 public function send(hug1:String, hug2:String, hug3:*):void
44442                 {       //MethodID:5120, LocalCount= 4 , MaxScope= 1, MaxStack= 6, CodeLength= 32
44443                         this._connection.send(this._master.masterName, (this._master.domain + ".method"), hug1, hug2, hug3);
44444                 }
44445
44446                 public function sendAll(hug1:String, hug2:*):void
44447                 {       //MethodID:5121, LocalCount= 3 , MaxScope= 1, MaxStack= 6, CodeLength= 32
44448                         this._connection.send(this._master.masterName, (this._master.domain + ".method"), null, hug1, hug2);
44449                 }
44450
44451                 public function close():void
44452                 {       //MethodID:5122, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 25
44453                         this._connection.close();
44454                         this._pingTimer.stop();
44455
44456                         this._slaveNames = [];
44457                 }
44458         }
44459 }
44460
44461 //■script365■
44462
44463 package jp.nicovideo.util.net.local{
44464
44465         import flash.events.DataEvent
44466         import flash.events.Event
44467         import flash.events.EventDispatcher
44468         import flash.events.StatusEvent
44469         import flash.net.LocalConnection
44470         import jp.nicovideo.util.TimeUtils
44471
44472         //■class(instance)_index:434
44473         public class LocalSessionMaster extends EventDispatcher
44474         {
44475                 //static constructor
44476                 public static function LocalSessionMaster$cinit()
44477                 {       //MethodID:5124, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44478                 }
44479
44480                 //constructor
44481                 public function LocalSessionMaster(hug1:String)
44482                 {       //MethodID:5125, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 26
44483                         this._slaves = {};
44484
44485                         super();
44486
44487                         this._domain = hug1;
44488                         this._masterName = (hug1 + ".master");
44489                 }
44490
44491                 //variables/etc.
44492                 private var _connection:LocalConnection;                        //slotID:0
44493                 private var _isMaster:Boolean = false;                          //slotID:0
44494                 private var _domain:String;                                     //slotID:0
44495                 private var _masterName:String;                                 //slotID:0
44496                 private var _slaves:Object;                                     //slotID:0
44497                 private var _slaveChecker:_SlaveChecker;                        //slotID:0
44498                 private var _mySlaveName:String;                                //slotID:0
44499
44500                 public function set mySlaveName(hug1:String):void
44501                 {       //MethodID:5126, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
44502                         this._mySlaveName = hug1;
44503                 }
44504
44505                 public function masterize(hug1:Array):Boolean
44506                 {       //MethodID:5127, LocalCount= 5 , MaxScope= 5, MaxStack= 5, CodeLength= 241
44507                         internal var slaveNames:Array;                                  //slotID:1
44508                         internal var connection:LocalConnection;                        //slotID:2
44509                         internal var name:String;                                       //slotID:3
44510
44511                         name = null;
44512                         slaveNames = hug1;
44513                         connection = LocalConnectionFactory.create();
44514
44515                         try{
44516                                 connection.connect(this.masterName);
44517                         }
44518                         catch(error:ArgumentError){
44519                                 dispatchEvent(new LocalSessionEvent(LocalSessionEvent.MASTER_PRESENCE));
44520
44521                                 return false;
44522                         }
44523
44524                         this._connection = connection;
44525                         this._connection.client = this._createClient();
44526
44527                         this._connection.addEventListener(StatusEvent.STATUS, this._connectionStatusListener);
44528
44529                         this._slaveChecker = new _SlaveChecker(this._connection, (this._domain + ".ping"));
44530
44531                         for each(name in slaveNames){
44532                                 this._slaves[name] = 0;
44533                         }
44534
44535                         this._isMaster = true;
44536
44537                         dispatchEvent(new LocalSessionEvent(LocalSessionEvent.MASTERIZE));
44538                         dispatchEvent(new LocalSessionEvent(LocalSessionEvent.MASTER_PRESENCE));
44539
44540                         return true;
44541                 }
44542
44543                 private function _createClient():Object
44544                 {       //MethodID:5135, LocalCount= 2 , MaxScope= 2, MaxStack= 3, CodeLength= 159
44545                         internal var client:Object;                                     //slotID:1
44546                         internal var ping:Function;                                     //slotID:2
44547                         internal var getSlaveNames:Function;                            //slotID:3
44548                         internal var method:Function;                                   //slotID:4
44549                         internal var isAlive:Function;                                  //slotID:5
44550
44551                         ping = null;
44552                         getSlaveNames = null;
44553                         method = null;
44554                         isAlive = null;
44555                         ping = function(hug1:String):void{      //MethodID:5128, LocalCount= 7 , MaxScope= 0, MaxStack= 4, CodeLength= 99
44556                                 var hug4:String = null;
44557                                 var hug2:Boolean = false;
44558
44559                                 if(!_slaves.hasOwnProperty(hug1)) hug2 = true;
44560
44561                                 _slaves[hug1] = TimeUtils.time;
44562
44563                                 if(!hug2) return;
44564
44565                                 var hug3:Array = _getSlaveNames();
44566
44567                                 for each(hug4 in hug3){
44568                                         send(hug4, (_domain + ".receiveSlaveNames"), hug3);
44569                                 }
44570                         };
44571
44572                         getSlaveNames = function(hug1:String):void{     //MethodID:5129, LocalCount= 7 , MaxScope= 0, MaxStack= 4, CodeLength= 118
44573                                 var hug4:String = null;
44574                                 var hug2:Boolean = false;
44575
44576                                 if(!_slaves.hasOwnProperty(hug1)) hug2 = true;
44577
44578                                 _slaves[hug1] = TimeUtils.time;
44579                                 var hug3:Array = _getSlaveNames();
44580
44581                                 if(hug2){
44582                                         for each(hug4 in hug3){
44583                                                 send(hug4, (_domain + ".receiveSlaveNames"), hug3);
44584                                         }
44585                                 }else{
44586                                         send(hug1, (_domain + ".receiveSlaveNames"), hug3);
44587                                 }
44588                         };
44589
44590                         method = function(hug1:String, hug2:String, hug3:*):void{       //MethodID:5130, LocalCount= 5 , MaxScope= 0, MaxStack= 4, CodeLength= 80
44591                                 var hug4:String = (_domain + ".method." + hug2);
44592
44593                                 if(hug1 == null){
44594                                         sendAll(hug4, hug3);
44595                                 }else if(hug1 == _masterName){
44596                                         send(_mySlaveName, hug4, hug3);
44597                                         send(hug1, hug4, hug3);
44598                                 }else{
44599                                         send(hug1, hug4, hug3);
44600                                 }
44601                         };
44602
44603                         isAlive = function(hug1:String, hug2:String):void{      //MethodID:5134, LocalCount= 4 , MaxScope= 1, MaxStack= 3, CodeLength= 62
44604                                 internal var targetName:String;                                 //slotID:1
44605                                 internal var replyName:String;                                  //slotID:2
44606                                 internal var check:Function;                                    //slotID:3
44607
44608                                 targetName = hug1;
44609                                 replyName = hug2;
44610                                 check = function():void{        //MethodID:5132, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 35
44611                                         _slaveChecker.addEventListener(DataEvent.DATA, function(hug1:DataEvent, ...args):void{  //MethodID:5131, LocalCount= 7 , MaxScope= 0, MaxStack= 7, CodeLength= 115
44612                                                 var hug4:String = null;
44613
44614                                                 _slaveChecker.removeEventListener(DataEvent.DATA, args.callee);
44615
44616                                                 var hug3:Array = hug1.data.split(",");
44617
44618                                                 for each(hug4 in hug3){
44619                                                         delete _slaves[hug4];
44620                                                 }
44621
44622                                                 send(replyName, (_domain + ".receiveIsAliveResult"), {isAlive:_slaves.hasOwnProperty(targetName), targetName:targetName});
44623                                         });
44624                                         _slaveChecker.check(_getSlaveNames());
44625                                 };
44626
44627                                 if(_slaveChecker.isChecking){
44628                                         _slaveChecker.addEventListener(DataEvent.DATA, function(hug1:Event, ...args):void{      //MethodID:5133, LocalCount= 3 , MaxScope= 0, MaxStack= 3, CodeLength= 26
44629                                                 _slaveChecker.removeEventListener(DataEvent.DATA, args.callee);
44630                                                 check();
44631                                         });
44632                                 }else{
44633                                         check();
44634                                 }
44635                         };
44636
44637                         client = {};
44638                         client[this._domain + ".ping"] = ping;
44639                         client[this._domain + ".getSlaveNames"] = getSlaveNames;
44640                         client[this._domain + ".method"] = method;
44641                         client[this._domain + ".isAlive"] = isAlive;
44642                         return client;
44643                 }
44644
44645                 private function _getSlaveNames():Array
44646                 {       //MethodID:5136, LocalCount= 5 , MaxScope= 1, MaxStack= 2, CodeLength= 50
44647                         var hug2:String = null;
44648                         var hug1:Array = [];
44649
44650                         for(hug2 in this._slaves){
44651                                 hug1.push(hug2);
44652                         }
44653
44654                         return hug1;
44655                 }
44656
44657                 private function _getInactiveNames():Array
44658                 {       //MethodID:5137, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 83
44659                         var hug3:String = null;
44660                         var hug1:Array = [];
44661                         var hug2:Number = (TimeUtils.time - LocalSession.SLAVE_PING_INTERVAL + 25);
44662
44663                         for(hug3 in this._slaves){
44664                                 if(hug2 >= this._slaves[hug3]) hug1.push(hug3);
44665                         }
44666
44667                         return hug1;
44668                 }
44669
44670                 private function _connectionStatusListener(hug1:StatusEvent):void
44671                 {       //MethodID:5139, LocalCount= 3 , MaxScope= 2, MaxStack= 3, CodeLength= 69
44672                         internal var event:StatusEvent;                                 //slotID:1
44673
44674                         event = hug1;
44675
44676                         if(event.level != "error") return;
44677
44678                         if(this._slaveChecker.isChecking) return;
44679                         this._slaveChecker.addEventListener(DataEvent.DATA, function(hug1:DataEvent, ...args):void{     //MethodID:5138, LocalCount= 7 , MaxScope= 0, MaxStack= 3, CodeLength= 109
44680                                 var hug4:String = null;
44681
44682                                 _slaveChecker.removeEventListener(DataEvent.DATA, args.callee);
44683
44684                                 if(hug1.data == "") return;
44685
44686                                 var hug3:Array = hug1.data.split(",");
44687
44688                                 for each(hug4 in hug3){
44689                                         delete _slaves[hug4];
44690                                 }
44691
44692                                 sendAll((_domain + ".receiveSlaveNames"), _getSlaveNames());
44693                         });
44694                         this._slaveChecker.check(this._getInactiveNames());
44695                 }
44696
44697                 public function get isMaster():Boolean
44698                 {       //MethodID:5140, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44699                         return this._isMaster;
44700                 }
44701
44702                 public function get domain():String
44703                 {       //MethodID:5141, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44704                         return this._domain;
44705                 }
44706
44707                 public function get masterName():String
44708                 {       //MethodID:5142, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44709                         return this._masterName;
44710                 }
44711
44712                 public function send(hug1:String, hug2:String, hug3:*):void
44713                 {       //MethodID:5143, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 14
44714                         this._connection.send(hug1, hug2, hug3);
44715                 }
44716
44717                 public function sendAll(hug1:String, hug2:*):void
44718                 {       //MethodID:5144, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 51
44719                         var hug3:String = null;
44720
44721                         for(hug3 in this._slaves){
44722                                 this._connection.send(hug3, hug1, hug2);
44723                         }
44724                 }
44725
44726                 public function close():void
44727                 {       //MethodID:5145, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 25
44728                         if(!this._isMaster) return;
44729                         this._connection.close();
44730
44731                         this._isMaster = false;
44732                 }
44733         }
44734 }
44735
44736 import flash.errors.IllegalOperationError
44737 import flash.events.DataEvent
44738 import flash.events.EventDispatcher
44739 import flash.events.StatusEvent
44740 import flash.net.LocalConnection
44741
44742 //■class(instance)_index:435
44743 //private
44744 class _SlaveChecker extends EventDispatcher
44745 {
44746         //static constructor
44747         public static function _SlaveChecker$cinit()
44748         {       //MethodID:5146, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44749         }
44750
44751         //constructor
44752         public function _SlaveChecker(hug1:LocalConnection, hug2:String)
44753         {       //MethodID:5147, LocalCount= 3 , MaxScope= 1, MaxStack= 3, CodeLength= 34
44754                 super();
44755
44756                 this._connection = hug1;
44757                 this._pingMethodName = hug2;
44758
44759                 this._connection.addEventListener(StatusEvent.STATUS, this._statusListener);
44760         }
44761
44762         //variables/etc.
44763         private var _targets:Array;                                     //slotID:0
44764         private var _connection:LocalConnection;                        //slotID:0
44765         private var _currentIndex:int = -1;                             //slotID:0
44766         private var _pingMethodName:String;                             //slotID:0
44767         private var _closedNames:Array;                                 //slotID:0
44768
44769         public function check(hug1:Array):void
44770         {       //MethodID:5148, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 59
44771                 if(this.isChecking) throw new IllegalOperationError();
44772
44773                 this._targets = hug1;
44774
44775                 if(this._targets.length == 0) return;
44776
44777                 this._closedNames = [];
44778                 this._currentIndex = 0;
44779
44780                 this._check(this._currentIndex);
44781         }
44782
44783         private function _check(hug1:int):void
44784         {       //MethodID:5149, LocalCount= 2 , MaxScope= 1, MaxStack= 3, CodeLength= 23
44785                 this._connection.send(this._targets[hug1], this._pingMethodName);
44786         }
44787
44788         private function _statusListener(hug1:StatusEvent):void
44789         {       //MethodID:5150, LocalCount= 4 , MaxScope= 1, MaxStack= 7, CodeLength= 124
44790                 if(!this.isChecking) return;
44791
44792                 if(hug1.level == "error") this._closedNames.push(this._targets[this._currentIndex]);
44793
44794                 this._currentIndex++;
44795
44796                 if(this._currentIndex <= (this._targets.length - 1)){
44797                         this._check(this._currentIndex);
44798
44799                         return;
44800                 }
44801
44802                 this._currentIndex = -1;
44803
44804                 dispatchEvent(new DataEvent(DataEvent.DATA, false, false, this._closedNames.join(",")));
44805         }
44806
44807         public function get isChecking():Boolean
44808         {       //MethodID:5151, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 11
44809                 return (this._currentIndex != (-1));
44810         }
44811 }
44812
44813 //■script366■
44814 //skip components :mx.core
44815 //as filename :IFlexAsset.as
44816
44817 //■script367■
44818 //skip components :mx.core
44819 //as filename :FlexSprite.as
44820
44821 //■script368■
44822 //skip components :mx.core
44823 //as filename :ILayoutDirectionElement.as
44824
44825 //■script369■
44826 //skip components :mx.core
44827 //as filename :IFlexDisplayObject.as
44828
44829 //■script370■
44830 //skip components :mx.core
44831 //as filename :IBorder.as
44832
44833 //■script371■
44834 //skip components :mx.core
44835 //as filename :SpriteAsset.as
44836
44837 //■script372■
44838
44839 package{
44840
44841         import flash.display.DisplayObject
44842         import mx.core.SpriteAsset
44843
44844         //■class(instance)_index:442
44845         public class UserButton__ButtonClass extends SpriteAsset
44846         {
44847                 //static constructor
44848                 public static function UserButton__ButtonClass$cinit()
44849                 {       //MethodID:5265, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44850                 }
44851
44852                 //constructor
44853                 public function UserButton__ButtonClass()
44854                 {       //MethodID:5266, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
44855                         super();
44856                 }
44857
44858                 //variables/etc.
44859                 public var BaseRight:DisplayObject;                             //slotID:0
44860                 public var BaseCenter:DisplayObject;                            //slotID:0
44861                 public var BaseLeft:DisplayObject;                              //slotID:0
44862         }
44863 }
44864
44865 //■script373■
44866 //skip components :com.adobe.serialization.json
44867 //as filename :JSONParseError.as
44868
44869 //■script374■
44870
44871 package jp.nicovideo.app.info{
44872
44873         //■class(instance)_index:444
44874         public interface IAppliThreads
44875         {
44876                 //static constructor
44877                 public static function IAppliThreads$cinit()
44878                 {       //MethodID:5273, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
44879                 }
44880
44881                 //variables/etc.
44882                 function get active():IThreadInfo;                                          //MethodID:5274, dispID:0
44883
44884                 function get running():IThreadInfo;                                         //MethodID:5275, dispID:0
44885
44886                 function get source():*;                                                    //MethodID:5276, dispID:0
44887
44888                 //constructor
44889                 public function IAppliThreads();                                            //MethodID:5277, dispID:0
44890         }
44891 }
44892
44893 //■script375■
44894
44895 package jp.nicovideo.app.api.v1.plugin.www{
44896
44897         //■class(instance)_index:445
44898         public final class CommentType extends Object
44899         {
44900                 //static constructor
44901                 public static function CommentType$cinit()
44902                 {       //MethodID:5279, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
44903                         NORMAL = "normal";
44904                         OWNER = "owner";
44905                         COMMUNITY = "community";
44906                         LOCAL = "local";
44907                         NICOSCRIPT_TRIGGER = "nicoscriptTrigger";
44908                 }
44909
44910                 //static variables/etc.
44911                 public static const NORMAL:String = "normal";                   //slotID:1
44912                 public static const OWNER:String = "owner";                     //slotID:2
44913                 public static const COMMUNITY:String = "community";             //slotID:3
44914                 public static const LOCAL:String = "local";                     //slotID:4
44915                 public static const NICOSCRIPT_TRIGGER:String = "nicoscriptTrigger";//slotID:5
44916
44917                 //constructor
44918                 public function CommentType()
44919                 {       //MethodID:5280, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
44920                         super();
44921                 }
44922         }
44923 }
44924
44925 //■script376■
44926
44927 package jp.nicovideo.app.api.v1.plugin.www.events{
44928
44929         import flash.events.Event
44930
44931         //■class(instance)_index:446
44932         public class CommentEvent extends Event
44933         {
44934                 //static constructor
44935                 public static function CommentEvent$cinit()
44936                 {       //MethodID:5282, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
44937                         POST = "post";
44938                         RECEIVE = "receive";
44939                 }
44940
44941                 //static variables/etc.
44942                 public static const POST:String = "post";                       //slotID:1
44943                 public static const RECEIVE:String = "receive";                 //slotID:2
44944
44945                 //constructor
44946                 public function CommentEvent(hug1:String, hug2:Array, hug3:String, hug4:Boolean=false, hug5:Boolean=false)
44947                 {       //MethodID:5283, LocalCount= 6 , MaxScope= 1, MaxStack= 4, CodeLength= 21
44948                         super(hug1, hug4, hug5);
44949
44950                         this._comments = hug2;
44951                         this._commentType = hug3;
44952                 }
44953
44954                 //variables/etc.
44955                 private var _comments:Array;                                    //slotID:0
44956                 private var _commentType:String;                                //slotID:0
44957
44958                 public function get commentType():String
44959                 {       //MethodID:5284, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44960                         return this._commentType;
44961                 }
44962
44963                 public function get comments():Array
44964                 {       //MethodID:5285, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
44965                         return this._comments;
44966                 }
44967         }
44968 }
44969
44970 //■script377■
44971
44972 package jp.nicovideo.nicoplayer.app.api.v1.plugin.www{
44973
44974         import jp.nicovideo.app.api.v1.plugin.common.Comment
44975         import jp.nicovideo.app.api.v1.plugin.common.CommentAlign
44976         import jp.nicovideo.app.api.v1.plugin.common.CommentFontSize
44977         import jp.nicovideo.app.api.v1.plugin.common.CommentValign
44978         import jp.nicovideo.nicoplayer.models.comment.CommandConstants
44979         import jp.nicovideo.nicoplayer.models.comment.IComment
44980         import jp.nicovideo.nicoplayer.models.comment.command.CommandSize
44981
44982         //■class(instance)_index:447
44983         public class NicoCommentConverter extends Object
44984         {
44985                 //static constructor
44986                 public static function NicoCommentConverter$cinit()
44987                 {       //MethodID:5287, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
44988                 }
44989
44990                 //static variables/etc.
44991                 public static function convertNico2API(hug1:IComment):Comment
44992                 {       //dispID:3, MethodID:5288, LocalCount= 6 , MaxScope= 1, MaxStack= 3, CodeLength= 326
44993                         var hug2:Comment = new Comment();
44994                         hug2.date = new Date(hug1.date);
44995                         hug2.fontSize = CommentFontSize.NORMAL;
44996                         var hug3:String = hug1.command.size;
44997
44998                         if(hug3 == CommandSize.BIG){
44999                                 hug2.fontSize = CommentFontSize.BIG;
45000                         }else if(hug3 == CommandSize.SMALL){
45001                                 hug2.fontSize = CommentFontSize.SMALL;
45002                         }
45003
45004                         hug2.isAnonymity = (hug1.anonymity == 1);
45005                         hug2.isPremium = hug1.isPremium;
45006                         hug2.mail = hug1.command.command;
45007                         hug2.message = (hug1.command.hasButton ? hug1.buttonComment : hug1.message);
45008                         hug2.name = hug1.userName;
45009                         hug2.resNo = hug1.resNo;
45010                         hug2.userID = hug1.userID;
45011                         hug2.align = CommentAlign.NORMAL;
45012                         var hug4:String = hug1.command.posX;
45013
45014                         if(hug4 == CommandConstants.PLACE_RIGHT){
45015                                 hug2.align = CommentAlign.RIGHT;
45016                         }else if(hug4 == CommandConstants.PLACE_LEFT){
45017                                 hug2.align = CommentAlign.LEFT;
45018                         }
45019
45020                         hug2.valign = CommentValign.NORMAL;
45021                         var hug5:String = hug1.command.posY;
45022
45023                         if(hug5 == CommandConstants.PLACE_TOP){
45024                                 hug2.valign = CommentValign.TOP;
45025                         }else if(hug5 == CommandConstants.PLACE_BOTTOM){
45026                                 hug2.valign = CommentValign.BOTTOM;
45027                         }
45028
45029                         hug2.vpos = hug1.vpos;
45030                         hug2.yourpost = hug1.justPosted;
45031                         return hug2;
45032                 }
45033
45034                 //constructor
45035                 public function NicoCommentConverter()
45036                 {       //MethodID:5289, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45037                         super();
45038                 }
45039         }
45040 }
45041
45042 //■script378■
45043
45044 package jp.nicovideo.app.api.v1.plugin.www.events{
45045
45046         import flash.events.Event
45047
45048         //■class(instance)_index:448
45049         public class VideoEvent extends Event
45050         {
45051                 //static constructor
45052                 public static function VideoEvent$cinit()
45053                 {       //MethodID:5291, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
45054                         STARTED = "started";
45055                         PLAYED = "played";
45056                         PAUSED = "paused";
45057                         SEEKED = "seeked";
45058                         ENDED = "ended";
45059                 }
45060
45061                 //static variables/etc.
45062                 public static const STARTED:String = "started";                 //slotID:1
45063                 public static const PLAYED:String = "played";                   //slotID:2
45064                 public static const PAUSED:String = "paused";                   //slotID:3
45065                 public static const SEEKED:String = "seeked";                   //slotID:4
45066                 public static const ENDED:String = "ended";                     //slotID:5
45067
45068                 //constructor
45069                 public function VideoEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
45070                 {       //MethodID:5292, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 9
45071                         super(hug1, hug2, hug3);
45072                 }
45073
45074                 //variables/etc.
45075                 private var _vpos:Number;                                       //slotID:0
45076         }
45077 }
45078
45079 //■script379■
45080
45081 package jp.nicovideo.app.api.v1.plugin.common.events{
45082
45083         import flash.events.Event
45084
45085         //■class(instance)_index:449
45086         public class MarqueeEvent extends Event
45087         {
45088                 //static constructor
45089                 public static function MarqueeEvent$cinit()
45090                 {       //MethodID:5294, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
45091                         INTERRUPT_START = "interruptStart";
45092                         INTERRUPT_END = "interruptEnd";
45093                 }
45094
45095                 //static variables/etc.
45096                 public static const INTERRUPT_START:String = "interruptStart";  //slotID:1
45097                 public static const INTERRUPT_END:String = "interruptEnd";      //slotID:2
45098
45099                 //constructor
45100                 public function MarqueeEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
45101                 {       //MethodID:5295, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 9
45102                         super(hug1, hug2, hug3);
45103                 }
45104         }
45105 }
45106
45107 //■script380■
45108
45109 package jp.nicovideo.app.api.v1.events{
45110
45111         import flash.events.Event
45112
45113         //■class(instance)_index:450
45114         public class ListEvent extends Event
45115         {
45116                 //static constructor
45117                 public static function ListEvent$cinit()
45118                 {       //MethodID:5297, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
45119                         ADD = "add";
45120                         DELETE = "delete";
45121                         CHANGE = "change";
45122                 }
45123
45124                 //static variables/etc.
45125                 public static const ADD:String = "add";                         //slotID:1
45126                 public static const DELETE:String = "delete";                   //slotID:2
45127                 public static const CHANGE:String = "change";                   //slotID:3
45128
45129                 //constructor
45130                 public function ListEvent(hug1:String, hug2:Array, hug3:Boolean=false, hug4:Boolean=false)
45131                 {       //MethodID:5298, LocalCount= 5 , MaxScope= 1, MaxStack= 4, CodeLength= 15
45132                         super(hug1, hug3, hug4);
45133
45134                         this._target = hug2;
45135                 }
45136
45137                 //variables/etc.
45138                 private var _target:Array;                                      //slotID:0
45139
45140                 override public function get target():Object
45141                 {       //MethodID:5299, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45142                         return this._target;
45143                 }
45144
45145                 override public function get currentTarget():Object
45146                 {       //MethodID:5300, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45147                         return this._target;
45148                 }
45149         }
45150 }
45151
45152 //■script381■
45153
45154 package jp.nicovideo.app.api.v1.plugin.common{
45155
45156         //■class(instance)_index:451
45157         public class NGSource extends Object
45158         {
45159                 //static constructor
45160                 public static function NGSource$cinit()
45161                 {       //MethodID:5302, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
45162                 }
45163
45164                 //constructor
45165                 public function NGSource(hug1:uint, hug2:String)
45166                 {       //MethodID:5303, LocalCount= 3 , MaxScope= 1, MaxStack= 2, CodeLength= 16
45167                         super();
45168
45169                         this._type = hug1;
45170                         this._source = hug2;
45171                 }
45172
45173                 //variables/etc.
45174                 private var _type:uint;                                         //slotID:0
45175                 private var _source:String;                                     //slotID:0
45176
45177                 public function get type():uint
45178                 {       //MethodID:5304, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45179                         return this._type;
45180                 }
45181
45182                 public function get source():String
45183                 {       //MethodID:5305, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45184                         return this._source;
45185                 }
45186         }
45187 }
45188
45189 //■script382■
45190
45191 package jp.nicovideo.app.api.v1.plugin.common{
45192
45193         //■class(instance)_index:452
45194         public class NGSourceType extends Object
45195         {
45196                 //static constructor
45197                 public static function NGSourceType$cinit()
45198                 {       //MethodID:5307, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
45199                         KEYWORD = 0;
45200                         USER = 1;
45201                         COMMAND = 2;
45202                 }
45203
45204                 //static variables/etc.
45205                 public static const KEYWORD:uint = 0;                           //slotID:1
45206                 public static const USER:uint = 1;                              //slotID:2
45207                 public static const COMMAND:uint = 2;                           //slotID:3
45208
45209                 //constructor
45210                 public function NGSourceType()
45211                 {       //MethodID:5308, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45212                         super();
45213                 }
45214         }
45215 }
45216
45217 //■script383■
45218
45219 package jp.nicovideo.app.api.v1.plugin.www.events{
45220
45221         import flash.events.Event
45222
45223         //■class(instance)_index:453
45224         public class PlayerConfigEvent extends Event
45225         {
45226                 //static constructor
45227                 public static function PlayerConfigEvent$cinit()
45228                 {       //MethodID:5310, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 48
45229                         MUTE_SET = "muteSet";
45230                         MUTE_UNSET = "muteUnset";
45231                         COMMENT_VISIBLE = "commentVisible";
45232                         COMMENT_INVISIBLE = "commentInvisible";
45233                         ASPECT_RATIO_UPDATE = "aspectRatioUpdate";
45234                 }
45235
45236                 //static variables/etc.
45237                 public static const MUTE_SET:String = "muteSet";                //slotID:1
45238                 public static const MUTE_UNSET:String = "muteUnset";            //slotID:2
45239                 public static const COMMENT_VISIBLE:String = "commentVisible";  //slotID:3
45240                 public static const COMMENT_INVISIBLE:String = "commentInvisible";//slotID:4
45241                 public static const ASPECT_RATIO_UPDATE:String = "aspectRatioUpdate";//slotID:5
45242
45243                 //constructor
45244                 public function PlayerConfigEvent(hug1:String, hug2:Boolean=false, hug3:Boolean=false)
45245                 {       //MethodID:5311, LocalCount= 4 , MaxScope= 1, MaxStack= 4, CodeLength= 9
45246                         super(hug1, hug2, hug3);
45247                 }
45248         }
45249 }
45250
45251 //■script384■
45252
45253 package jp.nicovideo.app.api.v1.plugin.www{
45254
45255         //■class(instance)_index:454
45256         public class PlayerConfigScreenMode extends Object
45257         {
45258                 //static constructor
45259                 public static function PlayerConfigScreenMode$cinit()
45260                 {       //MethodID:5313, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 30
45261                         NORMAL = "normal";
45262                         BROWSER_FULL = "browserFull";
45263                         DISPLAY_FULL = "displayFull";
45264                 }
45265
45266                 //static variables/etc.
45267                 public static const NORMAL:String = "normal";                   //slotID:1
45268                 public static const BROWSER_FULL:String = "browserFull";        //slotID:2
45269                 public static const DISPLAY_FULL:String = "displayFull";        //slotID:3
45270
45271                 //constructor
45272                 public function PlayerConfigScreenMode()
45273                 {       //MethodID:5314, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45274                         super();
45275                 }
45276         }
45277 }
45278
45279 //■script385■
45280
45281 package jp.nicovideo.app.api.v1.plugin.www{
45282
45283         //■class(instance)_index:455
45284         public class PlayerConfigScreenAspectRatio extends Object
45285         {
45286                 //static constructor
45287                 public static function PlayerConfigScreenAspectRatio$cinit()
45288                 {       //MethodID:5316, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 21
45289                         SD = "sd";
45290                         HD = "hd";
45291                 }
45292
45293                 //static variables/etc.
45294                 public static const SD:String = "sd";                           //slotID:1
45295                 public static const HD:String = "hd";                           //slotID:2
45296
45297                 //constructor
45298                 public function PlayerConfigScreenAspectRatio()
45299                 {       //MethodID:5317, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45300                         super();
45301                 }
45302         }
45303 }
45304
45305 //■script386■
45306 //skip components :mx.core
45307 //as filename :mx_internal.as
45308
45309 //■script387■
45310 //skip components :mx.utils
45311 //as filename :NameUtil.as
45312
45313 //■script388■
45314 //skip components :mx.core
45315 //as filename :EdgeMetrics.as
45316
45317 //■script389■
45318 //skip components :mx.core
45319 //as filename :IAssetLayoutFeatures.as
45320
45321 //■script390■
45322
45323 package jp.nicovideo.app.info{
45324
45325         //■class(instance)_index:459
45326         public interface IThreadInfo
45327         {
45328                 //static constructor
45329                 public static function IThreadInfo$cinit()
45330                 {       //MethodID:5373, LocalCount= 1 , MaxScope= 0, MaxStack= 0, CodeLength= 1
45331                 }
45332
45333                 //variables/etc.
45334                 function get id():String;                                                   //MethodID:5374, dispID:0
45335
45336                 function get threadKey():String;                                            //MethodID:5375, dispID:0
45337
45338                 //constructor
45339                 public function IThreadInfo();                                              //MethodID:5376, dispID:0
45340         }
45341 }
45342
45343 //■script391■
45344
45345 package jp.nicovideo.app.api.v1.plugin.common{
45346
45347         //■class(instance)_index:460
45348         public class Comment extends Object
45349         {
45350                 //static constructor
45351                 public static function Comment$cinit()
45352                 {       //MethodID:5378, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 3
45353                 }
45354
45355                 //constructor
45356                 public function Comment()
45357                 {       //MethodID:5379, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 36
45358                         this._fontSize = CommentFontSize.NORMAL;
45359                         this._valign = CommentValign.NORMAL;
45360                         this._align = CommentAlign.NORMAL;
45361
45362                         super();
45363                 }
45364
45365                 //variables/etc.
45366                 private var _message:String = "";                               //slotID:0
45367                 private var _mail:String = "";                                  //slotID:0
45368                 private var _userID:String;                                     //slotID:0
45369                 private var _yourpost:Boolean;                                  //slotID:0
45370                 private var _date:Date;                                         //slotID:0
45371                 private var _resNo:Number;                                      //slotID:0
45372                 private var _vpos:Number;                                       //slotID:0
45373                 private var _isPremium:Boolean = false;                         //slotID:0
45374                 private var _isAnonymity:Boolean = true;                        //slotID:0
45375                 private var _fontSize:uint;                                     //slotID:0
45376                 private var _valign:uint;                                       //slotID:0
45377                 private var _align:uint;                                        //slotID:0
45378                 private var _name:String;                                       //slotID:0
45379
45380                 public function get message():String
45381                 {       //MethodID:5380, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45382                         return this._message;
45383                 }
45384
45385                 public function set message(hug1:String):void
45386                 {       //MethodID:5381, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45387                         this._message = hug1;
45388                 }
45389
45390                 public function get mail():String
45391                 {       //MethodID:5382, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45392                         return this._mail;
45393                 }
45394
45395                 public function set mail(hug1:String):void
45396                 {       //MethodID:5383, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45397                         this._mail = hug1;
45398                 }
45399
45400                 public function get name():String
45401                 {       //MethodID:5384, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45402                         return this._name;
45403                 }
45404
45405                 public function set name(hug1:String):void
45406                 {       //MethodID:5385, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45407                         this._name = hug1;
45408                 }
45409
45410                 public function get date():Date
45411                 {       //MethodID:5386, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45412                         return this._date;
45413                 }
45414
45415                 public function set date(hug1:Date):void
45416                 {       //MethodID:5387, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45417                         this._date = hug1;
45418                 }
45419
45420                 public function get userID():String
45421                 {       //MethodID:5388, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45422                         return this._userID;
45423                 }
45424
45425                 public function set userID(hug1:String):void
45426                 {       //MethodID:5389, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45427                         this._userID = hug1;
45428                 }
45429
45430                 public function get yourpost():Boolean
45431                 {       //MethodID:5390, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45432                         return this._yourpost;
45433                 }
45434
45435                 public function set yourpost(hug1:Boolean):void
45436                 {       //MethodID:5391, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45437                         this._yourpost = hug1;
45438                 }
45439
45440                 public function get resNo():Number
45441                 {       //MethodID:5392, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45442                         return this._resNo;
45443                 }
45444
45445                 public function set resNo(hug1:Number):void
45446                 {       //MethodID:5393, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45447                         this._resNo = hug1;
45448                 }
45449
45450                 public function get vpos():Number
45451                 {       //MethodID:5394, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45452                         return this._vpos;
45453                 }
45454
45455                 public function set vpos(hug1:Number):void
45456                 {       //MethodID:5395, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45457                         this._vpos = hug1;
45458                 }
45459
45460                 public function get isPremium():Boolean
45461                 {       //MethodID:5396, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45462                         return this._isPremium;
45463                 }
45464
45465                 public function set isPremium(hug1:Boolean):void
45466                 {       //MethodID:5397, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45467                         this._isPremium = hug1;
45468                 }
45469
45470                 public function get isAnonymity():Boolean
45471                 {       //MethodID:5398, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45472                         return this._isAnonymity;
45473                 }
45474
45475                 public function set isAnonymity(hug1:Boolean):void
45476                 {       //MethodID:5399, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45477                         this._isAnonymity = hug1;
45478                 }
45479
45480                 public function get fontSize():uint
45481                 {       //MethodID:5400, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45482                         return this._fontSize;
45483                 }
45484
45485                 public function set fontSize(hug1:uint):void
45486                 {       //MethodID:5401, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45487                         this._fontSize = hug1;
45488                 }
45489
45490                 public function get valign():uint
45491                 {       //MethodID:5402, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45492                         return this._valign;
45493                 }
45494
45495                 public function set valign(hug1:uint):void
45496                 {       //MethodID:5403, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45497                         this._valign = hug1;
45498                 }
45499
45500                 public function get align():uint
45501                 {       //MethodID:5404, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 7
45502                         return this._align;
45503                 }
45504
45505                 public function set align(hug1:uint):void
45506                 {       //MethodID:5405, LocalCount= 2 , MaxScope= 1, MaxStack= 2, CodeLength= 8
45507                         this._align = hug1;
45508                 }
45509         }
45510 }
45511
45512 //■script392■
45513
45514 package jp.nicovideo.app.api.v1.plugin.common{
45515
45516         //■class(instance)_index:461
45517         public class CommentAlign extends Object
45518         {
45519                 //static constructor
45520                 public static function CommentAlign$cinit()
45521                 {       //MethodID:5407, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
45522                         NORMAL = 0;
45523                         LEFT = 1;
45524                         RIGHT = 2;
45525                 }
45526
45527                 //static variables/etc.
45528                 public static const NORMAL:int = 0;                             //slotID:1
45529                 public static const LEFT:int = 1;                               //slotID:2
45530                 public static const RIGHT:int = 2;                              //slotID:3
45531
45532                 //constructor
45533                 public function CommentAlign()
45534                 {       //MethodID:5408, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45535                         super();
45536                 }
45537         }
45538 }
45539
45540 //■script393■
45541
45542 package jp.nicovideo.app.api.v1.plugin.common{
45543
45544         //■class(instance)_index:462
45545         public class CommentValign extends Object
45546         {
45547                 //static constructor
45548                 public static function CommentValign$cinit()
45549                 {       //MethodID:5410, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
45550                         NORMAL = 0;
45551                         TOP = 1;
45552                         BOTTOM = 2;
45553                 }
45554
45555                 //static variables/etc.
45556                 public static const NORMAL:int = 0;                             //slotID:1
45557                 public static const TOP:int = 1;                                //slotID:2
45558                 public static const BOTTOM:int = 2;                             //slotID:3
45559
45560                 //constructor
45561                 public function CommentValign()
45562                 {       //MethodID:5411, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45563                         super();
45564                 }
45565         }
45566 }
45567
45568 //■script394■
45569
45570 package jp.nicovideo.app.api.v1.plugin.common{
45571
45572         //■class(instance)_index:463
45573         public class CommentFontSize extends Object
45574         {
45575                 //static constructor
45576                 public static function CommentFontSize$cinit()
45577                 {       //MethodID:5413, LocalCount= 1 , MaxScope= 1, MaxStack= 2, CodeLength= 27
45578                         NORMAL = 0;
45579                         BIG = 1;
45580                         SMALL = 2;
45581                 }
45582
45583                 //static variables/etc.
45584                 public static const NORMAL:int = 0;                             //slotID:1
45585                 public static const BIG:int = 1;                                //slotID:2
45586                 public static const SMALL:int = 2;                              //slotID:3
45587
45588                 //constructor
45589                 public function CommentFontSize()
45590                 {       //MethodID:5414, LocalCount= 1 , MaxScope= 1, MaxStack= 1, CodeLength= 6
45591                         super();
45592                 }
45593         }
45594 }
45595
45596 //■script395■
45597 //skip components :mx.core
45598 //as filename :IRepeaterClient.as
45599