Guest User

vodeo swf

a guest
Feb 12th, 2012
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 477.39 KB | None | 0 0
  1.  
  2. //ActionScript 3.0
  3. // package VO
  4. // class ConfigVO
  5. package VO
  6. {
  7. public class ConfigVO extends Object
  8. {
  9. public function ConfigVO()
  10. {
  11. super();
  12. return;
  13. }
  14.  
  15. public static function get js_xsPlayerByeRent():String
  16. {
  17. return _js_xsPlayerByeRent;
  18. }
  19.  
  20. public static function get wrongAccess():String
  21. {
  22. return _wrongAccess;
  23. }
  24.  
  25. public static function get js_emptyCoverFlow():String
  26. {
  27. return _js_emptyCoverFlow;
  28. }
  29.  
  30. public static function get js_comment():String
  31. {
  32. return _js_comment;
  33. }
  34.  
  35. public static function set idPriority(arg1:String):void
  36. {
  37. _idPriority = arg1;
  38. return;
  39. }
  40.  
  41. public static function get js_rent():String
  42. {
  43. return _js_rent;
  44. }
  45.  
  46.  
  47. {
  48. _playerType = PLAYER_STANDARD;
  49. }
  50.  
  51. public static function get page():String
  52. {
  53. return _page;
  54. }
  55.  
  56. public static function get idPriority():String
  57. {
  58. return _idPriority;
  59. }
  60.  
  61. public static function get netConnection():String
  62. {
  63. return _netConnection;
  64. }
  65.  
  66. public static function get js_dvd():String
  67. {
  68. return _js_dvd;
  69. }
  70.  
  71. public static function get timestamp():String
  72. {
  73. return _timestamp;
  74. }
  75.  
  76. public static function get js_illimited():String
  77. {
  78. return _js_illimited;
  79. }
  80.  
  81. public static function get js_seeInMyVideos():String
  82. {
  83. return _js_seeInMyVideos;
  84. }
  85.  
  86. public static function get user_illimitedPass():Boolean
  87. {
  88. return _user_illimitedPass;
  89. }
  90.  
  91. public static function get playerType():String
  92. {
  93. return _playerType;
  94. }
  95.  
  96. public static function setData(arg1:XMLList):void
  97. {
  98. if (Boolean(uint(arg1.@expired)))
  99. {
  100. arg1.@page = PAGE_HOME;
  101. }
  102. var loc1:*=String(arg1.@page);
  103. switch (loc1)
  104. {
  105. case PAGE_HOME:
  106. {
  107. _page = PAGE_HOME;
  108. break;
  109. }
  110. case PAGE_MYVIDEOS:
  111. {
  112. _page = PAGE_MYVIDEOS;
  113. break;
  114. }
  115. }
  116. if (arg1.@netConnection)
  117. {
  118. _netConnection = String(arg1.@netConnection);
  119. }
  120. if (arg1.@idPriority)
  121. {
  122. _idPriority = String(arg1.@idPriority);
  123. }
  124. _user_illimitedPass = Boolean(uint(arg1.User.@svod));
  125. _js_sentToFriend = String(arg1.Js.@sentToAFriend);
  126. _js_addToMyVideos = String(arg1.Js.@addToMyVideos);
  127. _js_comment = String(arg1.Js.@leaveComment);
  128. _js_seeInMyVideos = String(arg1.Js.@seeInMyVideos);
  129. _js_illimitedPass = String(arg1.Js.@svod);
  130. _js_illimited = String(arg1.Js.@buy);
  131. _js_dvd = String(arg1.Js.@dvd);
  132. _js_rent = String(arg1.Js.@rent_48h);
  133. _js_minPlayed = String(arg1.Js.@minPlayed);
  134. _js_xsPlayerByeRent = String(arg1.Js.@xsPlayerByeRent);
  135. _js_emptyCoverFlow = String(arg1.Js.@emptyCoverFlow);
  136. _wrongAccess = String(arg1.Msg.WrongAccess);
  137. return;
  138. }
  139.  
  140. public static function get js_illimitedPass():String
  141. {
  142. return _js_illimitedPass;
  143. }
  144.  
  145. public static function get js_minPlayed():String
  146. {
  147. return _js_minPlayed;
  148. }
  149.  
  150. public static function get js_addToMyVideos():String
  151. {
  152. return _js_addToMyVideos;
  153. }
  154.  
  155. public static function refreshTimestamp():void
  156. {
  157. var loc1:*=new Date();
  158. var loc2:*=String(loc1.fullYear);
  159. var loc3:*=String(loc1.month + 1);
  160. if (loc3.length < 2)
  161. {
  162. loc3 = "0" + loc3;
  163. }
  164. var loc4:*;
  165. if ((loc4 = String(loc1.date)).length < 2)
  166. {
  167. loc4 = "0" + loc4;
  168. }
  169. var loc5:*;
  170. if ((loc5 = String(loc1.hours)).length < 2)
  171. {
  172. loc5 = "0" + loc5;
  173. }
  174. var loc6:*;
  175. if ((loc6 = String(loc1.minutes)).length < 2)
  176. {
  177. loc6 = "0" + loc6;
  178. }
  179. var loc7:*;
  180. if ((loc7 = String(loc1.seconds)).length < 2)
  181. {
  182. loc7 = "0" + loc7;
  183. }
  184. _timestamp = loc2 + loc3 + loc4 + loc5 + loc6 + loc7;
  185. return;
  186. }
  187.  
  188. public static function set playerType(arg1:String):void
  189. {
  190. _playerType = arg1;
  191. return;
  192. }
  193.  
  194. public static function get js_sentToFriend():String
  195. {
  196. return _js_sentToFriend;
  197. }
  198.  
  199. public static const PLAYER_COVERFLOW:String="player_coverflow";
  200.  
  201. public static const PLAYER_STANDARD:String="player_standard";
  202.  
  203. public static const PLAYER_STANDALONE:String="player_standalone";
  204.  
  205. public static const PAGE_HOME:String="home";
  206.  
  207. public static const PLAYER_XS:String="player_xs";
  208.  
  209. public static const PAGE_MYVIDEOS:String="myVideos";
  210.  
  211. internal static var _js_dvd:String;
  212.  
  213. internal static var _playerType:String="player_standard";
  214.  
  215. internal static var _js_minPlayed:String;
  216.  
  217. internal static var _timestamp:String;
  218.  
  219. internal static var _netConnection:String;
  220.  
  221. internal static var _js_xsPlayerByeRent:String;
  222.  
  223. internal static var _js_comment:String;
  224.  
  225. internal static var _wrongAccess:String;
  226.  
  227. internal static var _page:String;
  228.  
  229. internal static var _js_emptyCoverFlow:String;
  230.  
  231. internal static var _js_seeInMyVideos:String;
  232.  
  233. internal static var _js_rent:String;
  234.  
  235. internal static var _js_illimited:String;
  236.  
  237. internal static var _js_illimitedPass:String;
  238.  
  239. internal static var _js_addToMyVideos:String;
  240.  
  241. internal static var _idPriority:String;
  242.  
  243. internal static var _js_sentToFriend:String;
  244.  
  245. internal static var _user_illimitedPass:Boolean;
  246. }
  247. }
  248.  
  249.  
  250. // class DataVO
  251. package VO
  252. {
  253. import flash.display.*;
  254. import flash.text.*;
  255.  
  256. public class DataVO extends Object
  257. {
  258. public function DataVO()
  259. {
  260. super();
  261. return;
  262. }
  263.  
  264. public static function getData():XML
  265. {
  266. return data;
  267. }
  268.  
  269. public static function setCSS(arg1:String):void
  270. {
  271. if (!css)
  272. {
  273. css = new StyleSheet();
  274. css.parseCSS(arg1);
  275. }
  276. return;
  277. }
  278.  
  279. public static function getSwf(arg1:String):flash.display.DisplayObject
  280. {
  281. return swfData[arg1];
  282. }
  283.  
  284. public static function getBmpDataExist(arg1:String):Boolean
  285. {
  286. return bmpData[arg1];
  287. }
  288.  
  289. public static function get _css():flash.text.StyleSheet
  290. {
  291. return css;
  292. }
  293.  
  294. public static function saveBmpData(arg1:String, arg2:flash.display.Bitmap):void
  295. {
  296. if (!getBmpDataExist(arg1))
  297. {
  298. bmpData[arg1] = arg2.bitmapData;
  299. }
  300. return;
  301. }
  302.  
  303. public static function getBmpData(arg1:String, arg2:Boolean=true):flash.display.BitmapData
  304. {
  305. var loc1:*="";
  306. if (arg2)
  307. {
  308. loc1 = String(getData().config.mediapath);
  309. }
  310. return bmpData[loc1 + arg1];
  311. }
  312.  
  313. public static function setData(arg1:String):void
  314. {
  315. var rebuildXML:String;
  316. var i:uint;
  317. var movie:VO.MovieVO;
  318. var dataRebuild:String;
  319. var item:*;
  320. var $data:String;
  321. var trailerPriority:String;
  322.  
  323. var loc1:*;
  324. i = 0;
  325. rebuildXML = null;
  326. trailerPriority = null;
  327. dataRebuild = null;
  328. item = undefined;
  329. movie = null;
  330. $data = arg1;
  331. try
  332. {
  333. data = new XML($data);
  334. ConfigVO.setData(data.Config);
  335. if (ConfigVO.idPriority)
  336. {
  337. rebuildXML = "";
  338. loc2 = 0;
  339. var loc3:*=data.Trailers;
  340. for each (item in loc3)
  341. {
  342. if (item.DocTrailerID != ConfigVO.idPriority)
  343. {
  344. rebuildXML = rebuildXML + String(item);
  345. continue;
  346. }
  347. trailerPriority = String(item);
  348. }
  349. dataRebuild = "<selection>";
  350. dataRebuild = dataRebuild + String(data.Config);
  351. dataRebuild = dataRebuild + "<Trailers>";
  352. dataRebuild = dataRebuild + (trailerPriority + rebuildXML);
  353. dataRebuild = dataRebuild + "</Trailers>";
  354. dataRebuild = dataRebuild + "</selection>";
  355. data = new XML(dataRebuild);
  356. }
  357. dataList = new Array();
  358. i = 0;
  359. while (i < data.Trailers.Trailer.length())
  360. {
  361. movie = new MovieVO(data.Trailers.Trailer[i]);
  362. dataList.push(movie);
  363. ++i;
  364. }
  365. Tracer.text("xml : ok");
  366. }
  367. catch (evt:Error)
  368. {
  369. Tracer.text("Erreur xml : " + evt);
  370. }
  371. return;
  372. }
  373.  
  374. public static function saveSwf(arg1:flash.display.LoaderInfo):void
  375. {
  376. var loc1:*=arg1.url;
  377. var loc2:*=loc1.lastIndexOf("/") + 1;
  378. var loc3:*=loc1.substr(loc2);
  379. if (!swfData[loc3])
  380. {
  381. swfData[loc3] = arg1.content;
  382. }
  383. return;
  384. }
  385.  
  386.  
  387. {
  388. bmpData = new Object();
  389. swfData = new Object();
  390. }
  391.  
  392. public static const sizeH:uint=501;
  393.  
  394. public static const sizeW:uint=972;
  395.  
  396. internal static var css:flash.text.StyleSheet;
  397.  
  398. internal static var dataList:Array;
  399.  
  400. internal static var data:XML;
  401.  
  402. internal static var bmpData:Object;
  403.  
  404. internal static var swfData:Object;
  405. }
  406. }
  407.  
  408.  
  409. // class FlashVars
  410. package VO
  411. {
  412. public class FlashVars extends Object
  413. {
  414. public function FlashVars()
  415. {
  416. super();
  417. return;
  418. }
  419.  
  420. public static function get _colorbg():uint
  421. {
  422. return colorbg;
  423. }
  424.  
  425. public static function get _resizable():Boolean
  426. {
  427. return resizable;
  428. }
  429.  
  430. public static function _init(arg1:Object):void
  431. {
  432. var loc1:*=undefined;
  433. var loc2:*=0;
  434. var loc3:*=arg1;
  435. for (loc1 in loc3)
  436. {
  437. flashvars.push(loc1);
  438. }
  439. if (arg1.mode == GEO)
  440. {
  441. mode = arg1.mode;
  442. }
  443. if (arg1.colorbg)
  444. {
  445. colorbg = arg1.colorbg;
  446. }
  447. if (arg1.resizable)
  448. {
  449. resizable = Boolean(Number(arg1.resizable));
  450. }
  451. return;
  452. }
  453.  
  454. public static function get _mode():String
  455. {
  456. return mode;
  457. }
  458.  
  459. public static function _list():String
  460. {
  461. return flashvars.toString();
  462. }
  463.  
  464.  
  465. {
  466. mode = CLASSIC;
  467. colorbg = 16777215;
  468. resizable = false;
  469. flashvars = [];
  470. }
  471.  
  472. public static const GEO:String="geo";
  473.  
  474. public static const CLASSIC:String="classic";
  475.  
  476. internal static var mode:String="classic";
  477.  
  478. internal static var colorbg:uint=16777215;
  479.  
  480. internal static var resizable:Boolean=false;
  481.  
  482. internal static var flashvars:Array;
  483. }
  484. }
  485.  
  486.  
  487. // class MovieVO
  488. package VO
  489. {
  490. public class MovieVO extends Object
  491. {
  492. public function MovieVO(arg1:XML)
  493. {
  494. var loc2:*=undefined;
  495. var loc3:*=null;
  496. var loc4:*=null;
  497. var loc5:*=null;
  498. var loc6:*=null;
  499. super();
  500. var loc7:*;
  501. counter++;
  502. if (!instances)
  503. {
  504. instances = new Array();
  505. }
  506. instances.push(this);
  507. _idDepth = arg1.childIndex();
  508. _id = arg1.DocTrailerID;
  509. _titre = arg1.DocTrailerTitle;
  510. _titreShort = _titre;
  511. var loc1:*=38;
  512. if (FlashVars._mode == FlashVars.GEO)
  513. {
  514. loc1 = 54;
  515. }
  516. if (_titreShort.length > loc1)
  517. {
  518. _titreShort = _titre.substr(0, loc1) + "...";
  519. }
  520. _desc = arg1.DocTrailerDescription;
  521. _descLink = arg1.DocDescriptionLink;
  522. _img = arg1.DocTrailerImagePath;
  523. _path = arg1.DocTrailerXMLPath;
  524. _illimited = Boolean(uint(arg1.@buy));
  525. _rent = Boolean(uint(arg1.@rent_48h));
  526. _bought = Boolean(uint(arg1.@dvd));
  527. _minPlayed = Boolean(uint(arg1.@minPlayed));
  528. if (ConfigVO.playerType == ConfigVO.PLAYER_COVERFLOW)
  529. {
  530. loc3 = new Array();
  531. loc7 = 0;
  532. loc8 = arg1.Price.@*;
  533. for each (loc2 in loc8)
  534. {
  535. this["_price_" + loc2.name()] = loc2;
  536. if (!(loc2 > 0))
  537. {
  538. continue;
  539. }
  540. loc3.push({"value":loc2, "name":loc2.name()});
  541. }
  542. lowPrice = loc3.sortOn("value", Array.NUMERIC)[0].value;
  543. afterPrice = "";
  544. if (loc3.sortOn("value", Array.NUMERIC)[0].name == "svod")
  545. {
  546. afterPrice = "/mois";
  547. }
  548. }
  549. if (arg1.DocTrailerPurchase && !(String(arg1.DocTrailerPurchase) == ""))
  550. {
  551. msgAfterInfo = String(arg1.DocTrailerPurchase);
  552. }
  553. if (!(String(arg1.SlideShow) == "") && arg1.SlideShow.length())
  554. {
  555. _slideShow = new Array();
  556. _slideShow.push(_img);
  557. loc7 = 0;
  558. loc8 = arg1.SlideShow;
  559. for each (loc4 in loc8)
  560. {
  561. _slideShow.push(loc4.@path);
  562. }
  563. _slideShowParams = new Object();
  564. loc5 = arg1.SlideShow.@*;
  565. loc7 = 0;
  566. loc8 = loc5;
  567. for each (loc2 in loc8)
  568. {
  569. if (loc2.name() == "delay")
  570. {
  571. _slideShowParams.delay = loc2;
  572. }
  573. if (loc2.name() != "transitionDuration")
  574. {
  575. continue;
  576. }
  577. _slideShowParams.duration = loc2;
  578. }
  579. }
  580. if (String(!(arg1.Formats == "")))
  581. {
  582. _formats = new Array();
  583. loc7 = 0;
  584. loc8 = arg1.Formats;
  585. for each (loc6 in loc8)
  586. {
  587. _formats.push(loc6.@definition);
  588. }
  589. }
  590. return;
  591. }
  592.  
  593. public function set videoPath(arg1:String):void
  594. {
  595. _videoPath = arg1;
  596. return;
  597. }
  598.  
  599. public function get slideShow():Array
  600. {
  601. return _slideShow;
  602. }
  603.  
  604. public function get titreShort():String
  605. {
  606. return _titreShort;
  607. }
  608.  
  609. public function get netConnection():String
  610. {
  611. return _netConnection;
  612. }
  613.  
  614. public function get price_buy():Number
  615. {
  616. return _price_buy;
  617. }
  618.  
  619. public function get formats():Array
  620. {
  621. return _formats;
  622. }
  623.  
  624. public function get titre():String
  625. {
  626. return _titre;
  627. }
  628.  
  629. public function get idDepth():uint
  630. {
  631. return _idDepth;
  632. }
  633.  
  634. public function get illimited():Boolean
  635. {
  636. return _illimited;
  637. }
  638.  
  639. public function get bought():Boolean
  640. {
  641. return _bought;
  642. }
  643.  
  644. public function toString():String
  645. {
  646. return "[class Movie] : _idDepth = " + _idDepth + " - _titre = " + _titre;
  647. }
  648.  
  649. public function get price_dvd():Number
  650. {
  651. return _price_dvd;
  652. }
  653.  
  654. public function get _afterPrice():String
  655. {
  656. return afterPrice;
  657. }
  658.  
  659. public function get slideShowParams():Object
  660. {
  661. return _slideShowParams;
  662. }
  663.  
  664. public function get desc():String
  665. {
  666. return _desc;
  667. }
  668.  
  669. public function get price_rent_48h():Number
  670. {
  671. return _price_rent_48h;
  672. }
  673.  
  674. public static function set idSelected(arg1:uint):void
  675. {
  676. _idSelected = arg1;
  677. return;
  678. }
  679.  
  680. public function get path():String
  681. {
  682. return _path;
  683. }
  684.  
  685. public static function get idSelected():uint
  686. {
  687. return _idSelected;
  688. }
  689.  
  690. public function get descLink():String
  691. {
  692. return _descLink;
  693. }
  694.  
  695. public function set minPlayed(arg1:Boolean):void
  696. {
  697. if (!_minPlayed && arg1)
  698. {
  699. _minPlayed = arg1;
  700. }
  701. return;
  702. }
  703.  
  704. public function get price_svod():Number
  705. {
  706. return _price_svod;
  707. }
  708.  
  709. public function get _msgAfterInfo():String
  710. {
  711. return msgAfterInfo;
  712. }
  713.  
  714. public static function getChildAt(arg1:uint):VO.MovieVO
  715. {
  716. return instances[arg1];
  717. }
  718.  
  719. public function get _lowPrice():Number
  720. {
  721. return lowPrice;
  722. }
  723.  
  724. public static function get _counter():uint
  725. {
  726. return counter;
  727. }
  728.  
  729.  
  730. {
  731. counter = 0;
  732. }
  733.  
  734. public function get rent():Boolean
  735. {
  736. return _rent;
  737. }
  738.  
  739. public function get id():String
  740. {
  741. return _id;
  742. }
  743.  
  744. public function get videoPath():String
  745. {
  746. return _videoPath;
  747. }
  748.  
  749. public static function get numChildren():uint
  750. {
  751. return instances.length;
  752. }
  753.  
  754. public function get img():String
  755. {
  756. return _img;
  757. }
  758.  
  759. public function get minPlayed():Boolean
  760. {
  761. return _minPlayed;
  762. }
  763.  
  764. public function set formats(arg1:Array):void
  765. {
  766. _formats = arg1;
  767. return;
  768. }
  769.  
  770. public function set path(arg1:String):void
  771. {
  772. _path = arg1;
  773. return;
  774. }
  775.  
  776. internal var _img:String;
  777.  
  778. internal var _bought:Boolean;
  779.  
  780. internal var _path:String;
  781.  
  782. internal var _price_buy:Number;
  783.  
  784. internal var _titre:String;
  785.  
  786. internal var _rent:Boolean;
  787.  
  788. internal var _descLink:String;
  789.  
  790. public var _formats:Array;
  791.  
  792. internal var _illimited:Boolean;
  793.  
  794. internal var _price_dvd:Number;
  795.  
  796. internal var _titreShort:String;
  797.  
  798. internal var _price_rent_48h:Number;
  799.  
  800. internal var _slideShowParams:Object;
  801.  
  802. internal var msgAfterInfo:String="à partir de";
  803.  
  804. internal var afterPrice:String;
  805.  
  806. internal var _desc:String;
  807.  
  808. internal var lowPrice:Number;
  809.  
  810. internal var _price_svod:Number;
  811.  
  812. internal static var counter:uint=0;
  813.  
  814. internal var _videoPath:String;
  815.  
  816. internal var _netConnection:String;
  817.  
  818. internal static var _idSelected:uint;
  819.  
  820. internal var _minPlayed:Boolean;
  821.  
  822. internal var _id:String;
  823.  
  824. internal var _slideShow:Array;
  825.  
  826. internal static var instances:Array;
  827.  
  828. internal var _idDepth:uint;
  829. }
  830. }
  831.  
  832.  
  833. // package ch
  834. // package capi
  835. // package data
  836. // class ArrayList
  837. package ch.capi.data
  838. {
  839. public class ArrayList extends Object implements IList
  840. {
  841. public function ArrayList(arg1:Array=null)
  842. {
  843. _data = new Array();
  844. super();
  845. if (arg1 != null)
  846. {
  847. _data.push.apply(_data, arg1);
  848. }
  849. return;
  850. }
  851.  
  852. public function addElement(arg1:*):void
  853. {
  854. _data.push(arg1);
  855. return;
  856. }
  857.  
  858. public function isEmpty():Boolean
  859. {
  860. return length == 0;
  861. }
  862.  
  863. public function toString():String
  864. {
  865. var loc3:*=0;
  866. var loc1:*="ArrayList(" + length + ")[";
  867. var loc2:*=(_data.length - 1);
  868. if (loc2 >= 0)
  869. {
  870. loc3 = 0;
  871. while (loc3 < loc2)
  872. {
  873. loc1 = loc1 + (_data[loc3] + ", ");
  874. ++loc3;
  875. }
  876. loc1 = loc1 + _data[loc2];
  877. }
  878. loc1 = loc1 + "]";
  879. return loc1;
  880. }
  881.  
  882. internal function checkIndex(arg1:int, arg2:int):void
  883. {
  884. if (arg1 > arg2 || arg1 < 0)
  885. {
  886. throw new RangeError("Invalid index value : " + arg1 + " (max = " + arg2 + ")");
  887. }
  888. return;
  889. }
  890.  
  891. public function removeElementAt(arg1:int):*
  892. {
  893. checkIndex(arg1, (_data.length - 1));
  894. var loc1:*=_data[arg1];
  895. _data.splice(arg1, 1);
  896. return loc1;
  897. }
  898.  
  899. public function getElementIndex(arg1:*):int
  900. {
  901. var loc1:*=_data.length;
  902. var loc2:*=0;
  903. while (loc2 < loc1)
  904. {
  905. if (_data[loc2] == arg1)
  906. {
  907. return loc2;
  908. }
  909. ++loc2;
  910. }
  911. return -1;
  912. }
  913.  
  914. public function get length():int
  915. {
  916. return _data.length;
  917. }
  918.  
  919. public function clear():void
  920. {
  921. _data = [];
  922. return;
  923. }
  924.  
  925. public function addElementAt(arg1:*, arg2:int):void
  926. {
  927. checkIndex(arg2, _data.length);
  928. _data.splice(arg2, 0, arg1);
  929. return;
  930. }
  931.  
  932. public function removeElement(arg1:*):void
  933. {
  934. var loc1:*=getElementIndex(arg1);
  935. if (loc1 == -1)
  936. {
  937. return;
  938. }
  939. removeElementAt(loc1);
  940. return;
  941. }
  942.  
  943. public function getElementAt(arg1:int):*
  944. {
  945. checkIndex(arg1, (_data.length - 1));
  946. return _data[arg1];
  947. }
  948.  
  949. public function toArray():Array
  950. {
  951. return _data.concat();
  952. }
  953.  
  954. internal var _data:Array;
  955. }
  956. }
  957.  
  958.  
  959. // class DictionnaryMap
  960. package ch.capi.data
  961. {
  962. import flash.utils.*;
  963.  
  964. public class DictionnaryMap extends Object implements IMap
  965. {
  966. public function DictionnaryMap(arg1:Boolean=false)
  967. {
  968. super();
  969. _dictionnary = new Dictionary(arg1);
  970. return;
  971. }
  972.  
  973. public function size():uint
  974. {
  975. return _count;
  976. }
  977.  
  978. public function getValue(arg1:*):*
  979. {
  980. return _dictionnary[arg1];
  981. }
  982.  
  983. public function isEmpty():Boolean
  984. {
  985. return _count == 0;
  986. }
  987.  
  988. public function remove(arg1:*):*
  989. {
  990. var loc1:*=_dictionnary[arg1];
  991. delete _dictionnary[arg1];
  992. var loc2:*;
  993. _count--;
  994. return loc1;
  995. }
  996.  
  997. public function containsKey(arg1:*):Boolean
  998. {
  999. return arg1 in _dictionnary;
  1000. }
  1001.  
  1002. public function put(arg1:*, arg2:*):*
  1003. {
  1004. var loc1:*=_dictionnary[arg1];
  1005. _dictionnary[arg1] = arg2;
  1006. if (loc1 == null)
  1007. {
  1008. var loc2:*;
  1009. _count++;
  1010. }
  1011. return loc1;
  1012. }
  1013.  
  1014. public function putAll(arg1:ch.capi.data.IMap):void
  1015. {
  1016. var loc2:*=undefined;
  1017. var loc3:*=undefined;
  1018. var loc1:*=arg1.keys();
  1019. var loc4:*=0;
  1020. var loc5:*=loc1;
  1021. for each (loc2 in loc5)
  1022. {
  1023. loc3 = arg1.getValue(loc2);
  1024. put(loc2, loc3);
  1025. }
  1026. return;
  1027. }
  1028.  
  1029. public function containsValue(arg1:*):Boolean
  1030. {
  1031. var loc1:*=undefined;
  1032. var loc2:*=0;
  1033. var loc3:*=_dictionnary;
  1034. for each (loc1 in loc3)
  1035. {
  1036. if (loc1 != arg1)
  1037. {
  1038. continue;
  1039. }
  1040. return true;
  1041. }
  1042. return false;
  1043. }
  1044.  
  1045. public function clear():void
  1046. {
  1047. var loc1:*=null;
  1048. var loc2:*=0;
  1049. var loc3:*=_dictionnary;
  1050. for (loc1 in loc3)
  1051. {
  1052. delete _dictionnary[loc1];
  1053. }
  1054. _count = 0;
  1055. return;
  1056. }
  1057.  
  1058. public function values():Array
  1059. {
  1060. var loc2:*=undefined;
  1061. var loc1:*=new Array();
  1062. var loc3:*=0;
  1063. var loc4:*=_dictionnary;
  1064. for each (loc2 in loc4)
  1065. {
  1066. loc1.push(loc2);
  1067. }
  1068. return loc1;
  1069. }
  1070.  
  1071. public function keys():Array
  1072. {
  1073. var loc2:*=undefined;
  1074. var loc1:*=new Array();
  1075. var loc3:*=0;
  1076. var loc4:*=_dictionnary;
  1077. for (loc2 in loc4)
  1078. {
  1079. loc1.push(loc2);
  1080. }
  1081. return loc1;
  1082. }
  1083.  
  1084. internal var _dictionnary:flash.utils.Dictionary;
  1085.  
  1086. internal var _count:uint=0;
  1087. }
  1088. }
  1089.  
  1090.  
  1091. // class IDataStructure
  1092. package ch.capi.data
  1093. {
  1094. public interface IDataStructure
  1095. {
  1096. function add(arg1:*):void;
  1097.  
  1098. function remove():*;
  1099.  
  1100. function get nextElement():*;
  1101.  
  1102. function isEmpty():Boolean;
  1103.  
  1104. function clear():void;
  1105. }
  1106. }
  1107.  
  1108.  
  1109. // class IList
  1110. package ch.capi.data
  1111. {
  1112. public interface IList
  1113. {
  1114. function addElement(arg1:*):void;
  1115.  
  1116. function toArray():Array;
  1117.  
  1118. function get length():int;
  1119.  
  1120. function removeElement(arg1:*):void;
  1121.  
  1122. function getElementAt(arg1:int):*;
  1123.  
  1124. function removeElementAt(arg1:int):*;
  1125.  
  1126. function getElementIndex(arg1:*):int;
  1127.  
  1128. function clear():void;
  1129.  
  1130. function addElementAt(arg1:*, arg2:int):void;
  1131. }
  1132. }
  1133.  
  1134.  
  1135. // class IMap
  1136. package ch.capi.data
  1137. {
  1138. public interface IMap
  1139. {
  1140. function containsKey(arg1:*):Boolean;
  1141.  
  1142. function size():uint;
  1143.  
  1144. function values():Array;
  1145.  
  1146. function isEmpty():Boolean;
  1147.  
  1148. function remove(arg1:*):*;
  1149.  
  1150. function clear():void;
  1151.  
  1152. function put(arg1:*, arg2:*):*;
  1153.  
  1154. function containsValue(arg1:*):Boolean;
  1155.  
  1156. function keys():Array;
  1157.  
  1158. function putAll(arg1:ch.capi.data.IMap):void;
  1159.  
  1160. function getValue(arg1:*):*;
  1161. }
  1162. }
  1163.  
  1164.  
  1165. // class IQueue
  1166. package ch.capi.data
  1167. {
  1168. public interface IQueue extends IDataStructure, IList
  1169. {
  1170. function getLastElement():*;
  1171.  
  1172. function getFirstElement():*;
  1173. }
  1174. }
  1175.  
  1176.  
  1177. // class QueueList
  1178. package ch.capi.data
  1179. {
  1180. public class QueueList extends ch.capi.data.ArrayList implements IQueue
  1181. {
  1182. public function QueueList(arg1:Array=null)
  1183. {
  1184. super(arg1);
  1185. return;
  1186. }
  1187.  
  1188. public function add(arg1:*):void
  1189. {
  1190. addElement(arg1);
  1191. return;
  1192. }
  1193.  
  1194. public function remove():*
  1195. {
  1196. return length != 0 ? removeElementAt(0) : null;
  1197. }
  1198.  
  1199. public function get nextElement():*
  1200. {
  1201. return length != 0 ? getElementAt(0) : null;
  1202. }
  1203.  
  1204. public function getLastElement():*
  1205. {
  1206. return getElementAt((length - 1)).data;
  1207. }
  1208.  
  1209. public function getFirstElement():*
  1210. {
  1211. return getElementAt(0).data;
  1212. }
  1213. }
  1214. }
  1215.  
  1216.  
  1217. // package display
  1218. // class IRootDocument
  1219. package ch.capi.display
  1220. {
  1221. import ch.capi.net.*;
  1222.  
  1223. public interface IRootDocument
  1224. {
  1225. function initializeContext(arg1:ch.capi.net.ILoadableFile):void;
  1226. }
  1227. }
  1228.  
  1229.  
  1230. // package errors
  1231. // class ExtensionNotDefinedError
  1232. package ch.capi.errors
  1233. {
  1234. public class ExtensionNotDefinedError extends Error
  1235. {
  1236. public function ExtensionNotDefinedError(arg1:String=null)
  1237. {
  1238. super("The extension \'" + arg1 + "\' is not defined");
  1239. return;
  1240. }
  1241. }
  1242. }
  1243.  
  1244.  
  1245. // package events
  1246. // class MassLoadEvent
  1247. package ch.capi.events
  1248. {
  1249. import ch.capi.net.*;
  1250. import flash.events.*;
  1251.  
  1252. public class MassLoadEvent extends flash.events.Event
  1253. {
  1254. public function MassLoadEvent(arg1:String, arg2:ch.capi.net.ILoadManager=null, arg3:flash.events.Event=null)
  1255. {
  1256. super(arg1, false, false);
  1257. _file = arg2;
  1258. _closeEvent = arg3 != null ? arg3.clone() : null;
  1259. return;
  1260. }
  1261.  
  1262. public function get closeEvent():flash.events.Event
  1263. {
  1264. return _closeEvent;
  1265. }
  1266.  
  1267. public function get file():ch.capi.net.ILoadManager
  1268. {
  1269. return _file;
  1270. }
  1271.  
  1272. public override function clone():flash.events.Event
  1273. {
  1274. return new MassLoadEvent(type, file, _closeEvent);
  1275. }
  1276.  
  1277. public function isError():Boolean
  1278. {
  1279. if (type == FILE_OPEN)
  1280. {
  1281. return false;
  1282. }
  1283. return _closeEvent is IOErrorEvent || _closeEvent is SecurityErrorEvent;
  1284. }
  1285.  
  1286. public static const FILE_CLOSE:String="fileClose";
  1287.  
  1288. public static const FILE_OPEN:String="fileOpen";
  1289.  
  1290. internal var _closeEvent:flash.events.Event;
  1291.  
  1292. internal var _file:ch.capi.net.ILoadManager;
  1293. }
  1294. }
  1295.  
  1296.  
  1297. // package net
  1298. // class AbstractLoadableFile
  1299. package ch.capi.net
  1300. {
  1301. import ch.capi.data.*;
  1302. import flash.errors.*;
  1303. import flash.events.*;
  1304. import flash.net.*;
  1305. import flash.system.*;
  1306. import flash.utils.*;
  1307.  
  1308. public class AbstractLoadableFile extends flash.events.EventDispatcher implements INetStateManager
  1309. {
  1310. public function AbstractLoadableFile(arg1:Object)
  1311. {
  1312. _properties = new DictionnaryMap();
  1313. super();
  1314. _loadManagerObject = arg1;
  1315. return;
  1316. }
  1317.  
  1318. public function get closeEvent():flash.events.Event
  1319. {
  1320. return _closeEvent;
  1321. }
  1322.  
  1323. public function get virtualBytesTotal():uint
  1324. {
  1325. return _virtualBytesTotal;
  1326. }
  1327.  
  1328. public function get stateLoading():Boolean
  1329. {
  1330. return _stateLoading;
  1331. }
  1332.  
  1333. public function get loadManagerObject():Object
  1334. {
  1335. return _loadManagerObject;
  1336. }
  1337.  
  1338. public function get bytesTotalRetrieved():Boolean
  1339. {
  1340. return _bytesTotalRetrieved;
  1341. }
  1342.  
  1343. public function set virtualBytesTotal(arg1:uint):void
  1344. {
  1345. if (!bytesTotalRetrieved)
  1346. {
  1347. _bytesTotal = arg1;
  1348. }
  1349. _virtualBytesTotal = arg1;
  1350. return;
  1351. }
  1352.  
  1353. protected function onSecurityError(arg1:flash.events.SecurityErrorEvent):void
  1354. {
  1355. _stateLoading = false;
  1356. _closeEvent = arg1;
  1357. var loc1:*=arg1.clone();
  1358. dispatchEvent(loc1);
  1359. return;
  1360. }
  1361.  
  1362. public function get stateIdle():Boolean
  1363. {
  1364. return !_stateLoading;
  1365. }
  1366.  
  1367. protected function unregisterFrom(arg1:flash.events.IEventDispatcher):void
  1368. {
  1369. arg1.removeEventListener(Event.OPEN, onOpen);
  1370. arg1.removeEventListener(Event.COMPLETE, onComplete);
  1371. arg1.removeEventListener(ProgressEvent.PROGRESS, onProgress);
  1372. arg1.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
  1373. arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
  1374. return;
  1375. }
  1376.  
  1377. public override function toString():String
  1378. {
  1379. if (urlRequest == null)
  1380. {
  1381. return null;
  1382. }
  1383. return urlRequest.url;
  1384. }
  1385.  
  1386. public function set useCache(arg1:Boolean):void
  1387. {
  1388. _useCache = arg1;
  1389. return;
  1390. }
  1391.  
  1392. public function getURLRequest():flash.net.URLRequest
  1393. {
  1394. var loc3:*=null;
  1395. var loc4:*=null;
  1396. if (useCache || !isOnline())
  1397. {
  1398. return urlRequest;
  1399. }
  1400. var loc1:*=new URLRequest(urlRequest.url);
  1401. loc1.method = urlRequest.method;
  1402. loc1.data = urlRequest.data;
  1403. loc1.requestHeaders = urlRequest.requestHeaders;
  1404. loc1.contentType = urlRequest.contentType;
  1405. var loc2:*=new Date().getTime();
  1406. if (loc1.method == URLRequestMethod.POST || loc1.data == null)
  1407. {
  1408. loc1.url = loc1.url + ("?" + NO_CACHE_VARIABLE_NAME + "=" + loc2);
  1409. }
  1410. else if (loc1.data is URLVariables)
  1411. {
  1412. loc3 = loc1.data as URLVariables;
  1413. loc3[NO_CACHE_VARIABLE_NAME] = loc2;
  1414. }
  1415. else
  1416. {
  1417. loc4 = (loc4 = loc1.data.toString()) + ("&" + NO_CACHE_VARIABLE_NAME + "=" + loc2);
  1418. loc1.url = loc1.url + ("?" + loc4);
  1419. loc1.data = null;
  1420. }
  1421. return loc1;
  1422. }
  1423.  
  1424. public function get bytesTotal():uint
  1425. {
  1426. return _bytesTotal;
  1427. }
  1428.  
  1429. public function get netState():String
  1430. {
  1431. return _online;
  1432. }
  1433.  
  1434. public function isOnline():Boolean
  1435. {
  1436. var loc1:*=null;
  1437. var loc2:*=0;
  1438. var loc3:*=null;
  1439. if (_online == NetState.DYNAMIC)
  1440. {
  1441. loc1 = urlRequest.url;
  1442. loc2 = loc1.indexOf("/");
  1443. if (loc2 != -1)
  1444. {
  1445. loc1 = loc1.substring(0, loc2);
  1446. }
  1447. loc2 = loc1.indexOf(":");
  1448. if (loc2 == -1)
  1449. {
  1450. loc3 = Security.sandboxType;
  1451. return loc3 == Security.REMOTE;
  1452. }
  1453. loc1 = loc1.substring(0, loc2);
  1454. return !(loc1 == "file");
  1455. }
  1456. return _online == NetState.ONLINE;
  1457. }
  1458.  
  1459. public function get urlRequest():flash.net.URLRequest
  1460. {
  1461. return _request;
  1462. }
  1463.  
  1464. public function get useCache():Boolean
  1465. {
  1466. return _useCache;
  1467. }
  1468.  
  1469. public function stop():void
  1470. {
  1471. if (!_stateLoading)
  1472. {
  1473. throw new IllegalOperationError("State not loading");
  1474. }
  1475. if (bytesLoaded == bytesTotal)
  1476. {
  1477. return;
  1478. }
  1479. _stateLoading = false;
  1480. loadManagerObject.close();
  1481. var loc1:*=new Event(Event.CLOSE, false, false);
  1482. _closeEvent = loc1;
  1483. dispatchEvent(loc1);
  1484. return;
  1485. }
  1486.  
  1487. protected function isInstanceOf(arg1:String, arg2:Array, arg3:flash.system.ApplicationDomain=null):Boolean
  1488. {
  1489. var loc1:*=null;
  1490. var loc3:*=null;
  1491. var loc4:*=null;
  1492. var loc5:*=0;
  1493. var loc6:*=arg2;
  1494. for each (loc1 in loc6)
  1495. {
  1496. if (loc1 != arg1)
  1497. {
  1498. continue;
  1499. }
  1500. return true;
  1501. }
  1502. if (arg3 == null)
  1503. {
  1504. arg3 = ApplicationDomain.currentDomain;
  1505. }
  1506. var loc2:*=describeType(arg3.getDefinition(arg1) as Class);
  1507. loc5 = 0;
  1508. loc6 = loc2.factory.extendsClass.@type;
  1509. for each (loc3 in loc6)
  1510. {
  1511. loc3 = loc3.replace("::", ".");
  1512. var loc7:*=0;
  1513. var loc8:*=arg2;
  1514. for each (loc4 in loc8)
  1515. {
  1516. if (loc4 != loc3)
  1517. {
  1518. continue;
  1519. }
  1520. return true;
  1521. }
  1522. }
  1523. return false;
  1524. }
  1525.  
  1526. protected function registerTo(arg1:flash.events.IEventDispatcher):void
  1527. {
  1528. arg1.addEventListener(Event.OPEN, onOpen, false, LISTENER_PRIORITY, true);
  1529. arg1.addEventListener(Event.COMPLETE, onComplete, false, LISTENER_PRIORITY, true);
  1530. arg1.addEventListener(ProgressEvent.PROGRESS, onProgress, false, LISTENER_PRIORITY, true);
  1531. arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError, false, LISTENER_PRIORITY, true);
  1532. arg1.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, LISTENER_PRIORITY, true);
  1533. return;
  1534. }
  1535.  
  1536. public function get properties():ch.capi.data.IMap
  1537. {
  1538. return _properties;
  1539. }
  1540.  
  1541. protected function isInstanceOfClass(arg1:String, arg2:String, arg3:flash.system.ApplicationDomain=null):Boolean
  1542. {
  1543. return isInstanceOf(arg1, [arg2], arg3);
  1544. }
  1545.  
  1546. protected function onComplete(arg1:flash.events.Event):void
  1547. {
  1548. _stateLoading = false;
  1549. _closeEvent = arg1;
  1550. _bytesTotalRetrieved = true;
  1551. _bytesTotal = _bytesLoaded;
  1552. var loc1:*=arg1.clone();
  1553. dispatchEvent(loc1);
  1554. return;
  1555. }
  1556.  
  1557. public function set urlRequest(arg1:flash.net.URLRequest):void
  1558. {
  1559. _request = arg1;
  1560. return;
  1561. }
  1562.  
  1563. protected function onIOError(arg1:flash.events.IOErrorEvent):void
  1564. {
  1565. _stateLoading = false;
  1566. _closeEvent = arg1;
  1567. var loc1:*=arg1.clone();
  1568. dispatchEvent(loc1);
  1569. return;
  1570. }
  1571.  
  1572. protected function onProgress(arg1:flash.events.ProgressEvent):void
  1573. {
  1574. _bytesTotalRetrieved = arg1.bytesTotal > 0;
  1575. _bytesLoaded = arg1.bytesLoaded;
  1576. _bytesTotal = _bytesTotalRetrieved ? arg1.bytesTotal : virtualBytesTotal;
  1577. var loc1:*=new ProgressEvent(arg1.type, arg1.bubbles, arg1.cancelable, _bytesLoaded, _bytesTotal);
  1578. dispatchEvent(loc1);
  1579. return;
  1580. }
  1581.  
  1582. protected function onOpen(arg1:flash.events.Event):void
  1583. {
  1584. var loc1:*=arg1.clone();
  1585. dispatchEvent(loc1);
  1586. return;
  1587. }
  1588.  
  1589. public function get bytesLoaded():uint
  1590. {
  1591. return _bytesLoaded;
  1592. }
  1593.  
  1594. public function start():void
  1595. {
  1596. if (_stateLoading)
  1597. {
  1598. throw new IllegalOperationError("State already loading");
  1599. }
  1600. _stateLoading = true;
  1601. _closeEvent = null;
  1602. return;
  1603. }
  1604.  
  1605. public function set netState(arg1:String):void
  1606. {
  1607. _online = arg1;
  1608. return;
  1609. }
  1610.  
  1611. internal static const LISTENER_PRIORITY:int=100;
  1612.  
  1613. public static const NO_CACHE_VARIABLE_NAME:String="noCache";
  1614.  
  1615. internal var _virtualBytesTotal:uint=0;
  1616.  
  1617. internal var _loadManagerObject:*;
  1618.  
  1619. internal var _bytesLoaded:uint=0;
  1620.  
  1621. internal var _useCache:Boolean=true;
  1622.  
  1623. internal var _bytesTotal:uint=0;
  1624.  
  1625. internal var _properties:ch.capi.data.IMap;
  1626.  
  1627. internal var _bytesTotalRetrieved:Boolean=false;
  1628.  
  1629. internal var _closeEvent:flash.events.Event=null;
  1630.  
  1631. internal var _stateLoading:Boolean=false;
  1632.  
  1633. internal var _request:flash.net.URLRequest=null;
  1634.  
  1635. internal var _online:String="dynamic";
  1636. }
  1637. }
  1638.  
  1639.  
  1640. // class CompositeMassLoader
  1641. package ch.capi.net
  1642. {
  1643. import ch.capi.data.*;
  1644. import flash.net.*;
  1645.  
  1646. public class CompositeMassLoader extends Object
  1647. {
  1648. public function CompositeMassLoader(arg1:Boolean=true, arg2:ch.capi.net.IMassLoader=null, arg3:ch.capi.net.LoadableFileFactory=null)
  1649. {
  1650. _storage = new ArrayList();
  1651. super();
  1652. if (arg2 == null)
  1653. {
  1654. arg2 = new MassLoader();
  1655. }
  1656. if (arg3 == null)
  1657. {
  1658. arg3 = new LoadableFileFactory();
  1659. }
  1660. _keepFiles = arg1;
  1661. _massLoader = arg2;
  1662. _factory = arg3;
  1663. return;
  1664. }
  1665.  
  1666. public function getFiles():Array
  1667. {
  1668. return _storage.toArray();
  1669. }
  1670.  
  1671. public function start():void
  1672. {
  1673. _massLoader.start();
  1674. return;
  1675. }
  1676.  
  1677. public function set loadableFileFactory(arg1:ch.capi.net.LoadableFileFactory):void
  1678. {
  1679. if (arg1 == null)
  1680. {
  1681. throw new ArgumentError("value is not defined");
  1682. }
  1683. _factory = arg1;
  1684. return;
  1685. }
  1686.  
  1687. public function getFileCount():uint
  1688. {
  1689. return _storage.length;
  1690. }
  1691.  
  1692. public function getFileAt(arg1:uint):ch.capi.net.ILoadableFile
  1693. {
  1694. return _storage.getElementAt(arg1) as ILoadableFile;
  1695. }
  1696.  
  1697. public function get massLoader():ch.capi.net.IMassLoader
  1698. {
  1699. return _massLoader;
  1700. }
  1701.  
  1702. public function stop():void
  1703. {
  1704. _massLoader.stop();
  1705. return;
  1706. }
  1707.  
  1708. protected function storeFile(arg1:ch.capi.net.ILoadableFile):void
  1709. {
  1710. _storage.addElement(arg1);
  1711. return;
  1712. }
  1713.  
  1714. public function get loadableFileFactory():ch.capi.net.LoadableFileFactory
  1715. {
  1716. return _factory;
  1717. }
  1718.  
  1719. public function addRequest(arg1:flash.net.URLRequest, arg2:String=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null, arg8:Function=null):ch.capi.net.ILoadableFile
  1720. {
  1721. var loc1:*=createLoadableFile(arg1, arg2);
  1722. _factory.attachListeners(loc1, arg3, arg4, arg5, arg6, arg7, arg8);
  1723. _massLoader.addFile(loc1);
  1724. if (keepFiles)
  1725. {
  1726. storeFile(loc1);
  1727. }
  1728. return loc1;
  1729. }
  1730.  
  1731. protected function createLoadableFile(arg1:flash.net.URLRequest, arg2:String=null):ch.capi.net.ILoadableFile
  1732. {
  1733. var loc1:*=arg2;
  1734. switch (loc1)
  1735. {
  1736. case LoadableFileType.BINARY:
  1737. case LoadableFileType.TEXT:
  1738. case LoadableFileType.VARIABLES:
  1739. {
  1740. return _factory.createURLLoaderFile(arg1, arg2);
  1741. }
  1742. case LoadableFileType.SWF:
  1743. {
  1744. return _factory.createLoaderFile(arg1);
  1745. }
  1746. case LoadableFileType.SOUND:
  1747. {
  1748. return _factory.createSoundFile(arg1);
  1749. }
  1750. case LoadableFileType.STREAM:
  1751. {
  1752. return _factory.createURLStreamFile(arg1);
  1753. }
  1754. case null:
  1755. {
  1756. return _factory.createFile(arg1);
  1757. }
  1758. default:
  1759. {
  1760. throw new ArgumentError("File type \'" + arg2 + "\' is not valid");
  1761. }
  1762. }
  1763. }
  1764.  
  1765. public function get keepFiles():Boolean
  1766. {
  1767. return _keepFiles;
  1768. }
  1769.  
  1770. public function clear():void
  1771. {
  1772. _massLoader.clear();
  1773. _storage.clear();
  1774. return;
  1775. }
  1776.  
  1777. public function set massLoader(arg1:ch.capi.net.IMassLoader):void
  1778. {
  1779. if (arg1 == null)
  1780. {
  1781. throw new ArgumentError("value is not defined");
  1782. }
  1783. _massLoader = arg1;
  1784. return;
  1785. }
  1786.  
  1787. public function addFile(arg1:String, arg2:String=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null, arg8:Function=null):ch.capi.net.ILoadableFile
  1788. {
  1789. return addRequest(new URLRequest(arg1), arg2, arg3, arg4, arg5, arg6, arg7, arg8);
  1790. }
  1791.  
  1792. public function createFile(arg1:String, arg2:String=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null, arg8:Function=null):ch.capi.net.ILoadableFile
  1793. {
  1794. var loc1:*=createLoadableFile(new URLRequest(arg1), arg2);
  1795. _factory.attachListeners(loc1, arg3, arg4, arg5, arg6, arg7, arg8);
  1796. if (keepFiles)
  1797. {
  1798. storeFile(loc1);
  1799. }
  1800. return loc1;
  1801. }
  1802.  
  1803. internal var _factory:ch.capi.net.LoadableFileFactory;
  1804.  
  1805. internal var _massLoader:ch.capi.net.IMassLoader;
  1806.  
  1807. internal var _keepFiles:Boolean;
  1808.  
  1809. internal var _storage:ch.capi.data.ArrayList;
  1810. }
  1811. }
  1812.  
  1813.  
  1814. // class DefaultLoadPolicy
  1815. package ch.capi.net
  1816. {
  1817. import ch.capi.data.*;
  1818. import flash.events.*;
  1819.  
  1820. public class DefaultLoadPolicy extends Object implements ILoadPolicy
  1821. {
  1822. public function DefaultLoadPolicy(arg1:uint=3, arg2:Boolean=true)
  1823. {
  1824. _linkedFiles = new DictionnaryMap(true);
  1825. _defaultFiles = new DictionnaryMap(true);
  1826. super();
  1827. this.reloadTimes = arg1;
  1828. this.continueOnFailure = arg2;
  1829. return;
  1830. }
  1831.  
  1832. public function getFileLoadedTimes(arg1:ch.capi.net.ILoadManager):uint
  1833. {
  1834. if (!_linkedFiles.containsKey(arg1))
  1835. {
  1836. return 1;
  1837. }
  1838. return _linkedFiles.getValue(arg1);
  1839. }
  1840.  
  1841. public function processFile(arg1:ch.capi.net.ILoadManager, arg2:flash.events.Event):ch.capi.net.ILoadManager
  1842. {
  1843. if (arg2.type == Event.COMPLETE)
  1844. {
  1845. return null;
  1846. }
  1847. var loc1:*=getFileLoadedTimes(arg1);
  1848. if (loc1 >= reloadTimes)
  1849. {
  1850. if (defaultFiles.containsKey(arg1))
  1851. {
  1852. return defaultFiles.getValue(arg1);
  1853. }
  1854. if (reloadTimes > 0)
  1855. {
  1856. if (!continueOnFailure)
  1857. {
  1858. _continue = false;
  1859. }
  1860. return null;
  1861. }
  1862. }
  1863. _linkedFiles.put(arg1, loc1 + 1);
  1864. return arg1;
  1865. }
  1866.  
  1867. public function get defaultFiles():ch.capi.data.IMap
  1868. {
  1869. return _defaultFiles;
  1870. }
  1871.  
  1872. public function get canContinue():Boolean
  1873. {
  1874. return _continue;
  1875. }
  1876.  
  1877. public var continueOnFailure:Boolean;
  1878.  
  1879. internal var _continue:Boolean=true;
  1880.  
  1881. public var reloadTimes:uint;
  1882.  
  1883. internal var _defaultFiles:ch.capi.data.IMap;
  1884.  
  1885. internal var _linkedFiles:ch.capi.data.IMap;
  1886. }
  1887. }
  1888.  
  1889.  
  1890. // class ExtensionFileSelector
  1891. package ch.capi.net
  1892. {
  1893. import ch.capi.data.*;
  1894. import ch.capi.errors.*;
  1895. import flash.net.*;
  1896.  
  1897. public class ExtensionFileSelector extends Object implements ILoadableFileSelector
  1898. {
  1899. public function ExtensionFileSelector()
  1900. {
  1901. _extensions = new DictionnaryMap(false);
  1902. super();
  1903. _extensions.put("", LoadableFileType.STREAM);
  1904. _extensions.put("swf", LoadableFileType.SWF);
  1905. _extensions.put("txt", LoadableFileType.VARIABLES);
  1906. _extensions.put("xml", LoadableFileType.TEXT);
  1907. _extensions.put("css", LoadableFileType.TEXT);
  1908. _extensions.put("mp3", LoadableFileType.SOUND);
  1909. _extensions.put("wav", LoadableFileType.SOUND);
  1910. _extensions.put("jpg", LoadableFileType.BINARY);
  1911. _extensions.put("jpeg", LoadableFileType.BINARY);
  1912. _extensions.put("gif", LoadableFileType.BINARY);
  1913. _extensions.put("png", LoadableFileType.BINARY);
  1914. _extensions.put("php", LoadableFileType.TEXT);
  1915. _extensions.put("asp", LoadableFileType.TEXT);
  1916. return;
  1917. }
  1918.  
  1919. public function get extensions():ch.capi.data.IMap
  1920. {
  1921. return _extensions;
  1922. }
  1923.  
  1924. public function getExtension(arg1:flash.net.URLRequest):String
  1925. {
  1926. var loc1:*=arg1.url.toLowerCase();
  1927. var loc2:*=loc1.indexOf("?");
  1928. if (loc2 != -1)
  1929. {
  1930. loc1 = loc1.substring(0, loc2);
  1931. }
  1932. loc1 = loc1.split("\\").join("/");
  1933. if (loc1.charAt((loc1.length - 1)) == "/")
  1934. {
  1935. loc1 = loc1.substring(0, (loc1.length - 1));
  1936. }
  1937. var loc3:*;
  1938. if ((loc3 = loc1.lastIndexOf("/")) == (loc1.length - 1))
  1939. {
  1940. return "";
  1941. }
  1942. if (loc3 != -1)
  1943. {
  1944. loc1 = loc1.substring(loc3 + 1, loc1.length);
  1945. }
  1946. var loc4:*;
  1947. if ((loc4 = loc1.lastIndexOf(".")) == -1 || loc4 == (loc1.length - 1))
  1948. {
  1949. return "";
  1950. }
  1951. return loc1.substring(loc4 + 1, loc1.length);
  1952. }
  1953.  
  1954. public function create(arg1:flash.net.URLRequest, arg2:ch.capi.net.LoadableFileFactory):ch.capi.net.ILoadableFile
  1955. {
  1956. var loc1:*=getExtension(arg1);
  1957. var loc2:*;
  1958. if ((loc2 = _extensions.getValue(loc1)) == null)
  1959. {
  1960. throw new ExtensionNotDefinedError(loc1);
  1961. }
  1962. var loc3:*=loc2;
  1963. switch (loc3)
  1964. {
  1965. case LoadableFileType.TEXT:
  1966. case LoadableFileType.VARIABLES:
  1967. case LoadableFileType.BINARY:
  1968. {
  1969. return arg2.createURLLoaderFile(arg1, loc2);
  1970. }
  1971. case LoadableFileType.SWF:
  1972. {
  1973. return arg2.createLoaderFile(arg1);
  1974. }
  1975. case LoadableFileType.SOUND:
  1976. {
  1977. return arg2.createSoundFile(arg1);
  1978. }
  1979. case LoadableFileType.STREAM:
  1980. {
  1981. return arg2.createURLStreamFile(arg1);
  1982. }
  1983. }
  1984. throw new ArgumentError("The file type \'" + loc2 + "\' is invalid");
  1985. }
  1986.  
  1987. internal var _extensions:ch.capi.data.IMap;
  1988. }
  1989. }
  1990.  
  1991.  
  1992. // class ILoadInfo
  1993. package ch.capi.net
  1994. {
  1995. public interface ILoadInfo
  1996. {
  1997. function get averageSpeed():Number;
  1998.  
  1999. function get remainingTime():int;
  2000.  
  2001. function get filesLoading():Array;
  2002.  
  2003. function get massLoader():ch.capi.net.IMassLoader;
  2004.  
  2005. function get elapsedTime():uint;
  2006.  
  2007. function get percentLoaded():uint;
  2008.  
  2009. function get bytesRemaining():uint;
  2010.  
  2011. function get filesSuccess():Array;
  2012.  
  2013. function get currentSpeed():Number;
  2014.  
  2015. function reset():void;
  2016.  
  2017. function get bytesLoaded():uint;
  2018.  
  2019. function get filesError():Array;
  2020.  
  2021. function get filesIdle():Array;
  2022.  
  2023. function toString():String;
  2024.  
  2025. function get ratioLoaded():Number;
  2026.  
  2027. function update():void;
  2028.  
  2029. function get bytesTotal():uint;
  2030. }
  2031. }
  2032.  
  2033.  
  2034. // class ILoadManager
  2035. package ch.capi.net
  2036. {
  2037. import flash.events.*;
  2038.  
  2039. public interface ILoadManager extends IEventDispatcher
  2040. {
  2041. function get bytesLoaded():uint;
  2042.  
  2043. function get closeEvent():flash.events.Event;
  2044.  
  2045. function get stateLoading():Boolean;
  2046.  
  2047. function start():void;
  2048.  
  2049. function get stateIdle():Boolean;
  2050.  
  2051. function set useCache(arg1:Boolean):void;
  2052.  
  2053. function get bytesTotal():uint;
  2054.  
  2055. function stop():void;
  2056.  
  2057. function get useCache():Boolean;
  2058. }
  2059. }
  2060.  
  2061.  
  2062. // class ILoadPolicy
  2063. package ch.capi.net
  2064. {
  2065. import flash.events.*;
  2066.  
  2067. public interface ILoadPolicy
  2068. {
  2069. function processFile(arg1:ch.capi.net.ILoadManager, arg2:flash.events.Event):ch.capi.net.ILoadManager;
  2070.  
  2071. function get canContinue():Boolean;
  2072. }
  2073. }
  2074.  
  2075.  
  2076. // class ILoadableFile
  2077. package ch.capi.net
  2078. {
  2079. import ch.capi.data.*;
  2080. import flash.events.*;
  2081. import flash.net.*;
  2082. import flash.system.*;
  2083.  
  2084. public interface ILoadableFile extends ILoadManager, INetStateManager
  2085. {
  2086. function get urlRequest():flash.net.URLRequest;
  2087.  
  2088. function isClassSupported(arg1:String, arg2:flash.system.ApplicationDomain=null):Boolean;
  2089.  
  2090. function get properties():ch.capi.data.IMap;
  2091.  
  2092. function get virtualBytesTotal():uint;
  2093.  
  2094. function get loadManagerObject():Object;
  2095.  
  2096. function set urlRequest(arg1:flash.net.URLRequest):void;
  2097.  
  2098. function set virtualBytesTotal(arg1:uint):void;
  2099.  
  2100. function getEventDispatcher():flash.events.IEventDispatcher;
  2101.  
  2102. function getType():String;
  2103.  
  2104. function getData(arg1:String=null, arg2:flash.system.ApplicationDomain=null):*;
  2105. }
  2106. }
  2107.  
  2108.  
  2109. // class ILoadableFileSelector
  2110. package ch.capi.net
  2111. {
  2112. import flash.net.*;
  2113.  
  2114. public interface ILoadableFileSelector
  2115. {
  2116. function create(arg1:flash.net.URLRequest, arg2:ch.capi.net.LoadableFileFactory):ch.capi.net.ILoadableFile;
  2117. }
  2118. }
  2119.  
  2120.  
  2121. // class IMassLoader
  2122. package ch.capi.net
  2123. {
  2124. public interface IMassLoader extends ILoadManager
  2125. {
  2126. function get parallelFiles():uint;
  2127.  
  2128. function getFiles():Array;
  2129.  
  2130. function removeFile(arg1:ch.capi.net.ILoadManager):void;
  2131.  
  2132. function get loadInfo():ch.capi.net.ILoadInfo;
  2133.  
  2134. function clear():void;
  2135.  
  2136. function set parallelFiles(arg1:uint):void;
  2137.  
  2138. function get loadPolicy():ch.capi.net.ILoadPolicy;
  2139.  
  2140. function getFileCount():uint;
  2141.  
  2142. function addFile(arg1:ch.capi.net.ILoadManager):void;
  2143.  
  2144. function set loadPolicy(arg1:ch.capi.net.ILoadPolicy):void;
  2145. }
  2146. }
  2147.  
  2148.  
  2149. // class INetStateManager
  2150. package ch.capi.net
  2151. {
  2152. public interface INetStateManager
  2153. {
  2154. function set netState(arg1:String):void;
  2155.  
  2156. function get netState():String;
  2157.  
  2158. function isOnline():Boolean;
  2159. }
  2160. }
  2161.  
  2162.  
  2163. // class LLoadableFile
  2164. package ch.capi.net
  2165. {
  2166. import ch.capi.display.*;
  2167. import flash.display.*;
  2168. import flash.events.*;
  2169. import flash.net.*;
  2170. import flash.system.*;
  2171.  
  2172. internal class LLoadableFile extends ch.capi.net.AbstractLoadableFile implements ILoadableFile
  2173. {
  2174. public function LLoadableFile(arg1:flash.display.Loader)
  2175. {
  2176. super(arg1);
  2177. var loc1:*=getEventDispatcher();
  2178. registerTo(loc1);
  2179. loc1.addEventListener(Event.INIT, onInit, false, 10, true);
  2180. return;
  2181. }
  2182.  
  2183. public function isClassSupported(arg1:String, arg2:flash.system.ApplicationDomain=null):Boolean
  2184. {
  2185. return arg1 == "flash.display.Loader";
  2186. }
  2187.  
  2188. protected function onInit(arg1:flash.events.Event):void
  2189. {
  2190. var loc3:*=null;
  2191. var loc1:*=loadManagerObject as Loader;
  2192. var loc2:*=loc1.content;
  2193. if (loc2 is IRootDocument)
  2194. {
  2195. (loc3 = loc2 as IRootDocument).initializeContext(this);
  2196. }
  2197. return;
  2198. }
  2199.  
  2200. public override function start():void
  2201. {
  2202. super.start();
  2203. var loc1:*=getURLRequest();
  2204. var loc2:*=loadManagerObject as Loader;
  2205. loc2.load(loc1, loaderContext);
  2206. return;
  2207. }
  2208.  
  2209. public function getData(arg1:String=null, arg2:flash.system.ApplicationDomain=null):*
  2210. {
  2211. if (!(arg1 == null) && !isClassSupported(arg1))
  2212. {
  2213. throw new ArgumentError("The type \'" + arg1 + "\' is not supported");
  2214. }
  2215. return loadManagerObject as Loader;
  2216. }
  2217.  
  2218. public function getType():String
  2219. {
  2220. return LoadableFileType.SWF;
  2221. }
  2222.  
  2223. public function getEventDispatcher():flash.events.IEventDispatcher
  2224. {
  2225. return (loadManagerObject as Loader).contentLoaderInfo;
  2226. }
  2227.  
  2228. public var loaderContext:flash.system.LoaderContext=null;
  2229. }
  2230. }
  2231.  
  2232.  
  2233. // class LoadableFileFactory
  2234. package ch.capi.net
  2235. {
  2236. import flash.display.*;
  2237. import flash.events.*;
  2238. import flash.media.*;
  2239. import flash.net.*;
  2240. import flash.system.*;
  2241.  
  2242. public class LoadableFileFactory extends Object
  2243. {
  2244. public function LoadableFileFactory(arg1:ch.capi.net.ILoadableFileSelector=null, arg2:Boolean=true, arg3:uint=204800, arg4:int=0)
  2245. {
  2246. _defaultLoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
  2247. _defaultSoundLoaderContext = new SoundLoaderContext();
  2248. super();
  2249. _fileSelector = arg1 != null ? arg1 : new ExtensionFileSelector();
  2250. _defaultVirtualBytes = arg3;
  2251. _useCache = arg2;
  2252. _listenersPriority = arg4;
  2253. return;
  2254. }
  2255.  
  2256. public function attachListeners(arg1:ch.capi.net.ILoadableFile, arg2:Function=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null):void
  2257. {
  2258. createListener(Event.OPEN, arg1, arg2);
  2259. createListener(Event.COMPLETE, arg1, arg4);
  2260. createListener(ProgressEvent.PROGRESS, arg1, arg3);
  2261. createListener(Event.CLOSE, arg1, arg5);
  2262. createListener(IOErrorEvent.IO_ERROR, arg1, arg6);
  2263. createListener(SecurityErrorEvent.SECURITY_ERROR, arg1, arg7);
  2264. return;
  2265. }
  2266.  
  2267. public function get listenersPriority():int
  2268. {
  2269. return _listenersPriority;
  2270. }
  2271.  
  2272. public function set listenersPriority(arg1:int):void
  2273. {
  2274. _listenersPriority = arg1;
  2275. return;
  2276. }
  2277.  
  2278. public function get defaultVirtualBytesTotal():uint
  2279. {
  2280. return _defaultVirtualBytes;
  2281. }
  2282.  
  2283. public function set defaultVirtualBytesTotal(arg1:uint):void
  2284. {
  2285. _defaultVirtualBytes = arg1;
  2286. return;
  2287. }
  2288.  
  2289. protected function initializeFile(arg1:ch.capi.net.ILoadableFile):void
  2290. {
  2291. arg1.virtualBytesTotal = _defaultVirtualBytes;
  2292. arg1.useCache = _useCache;
  2293. return;
  2294. }
  2295.  
  2296. public function createURLStreamFile(arg1:flash.net.URLRequest=null):ch.capi.net.ILoadableFile
  2297. {
  2298. var loc1:*=new URLStream();
  2299. var loc2:*=new RLoadableFile(loc1);
  2300. loc2.urlRequest = arg1;
  2301. initializeFile(loc2);
  2302. return loc2;
  2303. }
  2304.  
  2305. internal function createListener(arg1:String, arg2:ch.capi.net.ILoadManager, arg3:Function):void
  2306. {
  2307. if (arg3 != null)
  2308. {
  2309. arg2.addEventListener(arg1, arg3, false, _listenersPriority, true);
  2310. }
  2311. return;
  2312. }
  2313.  
  2314. public function createLoaderFile(arg1:flash.net.URLRequest=null, arg2:flash.system.LoaderContext=null):ch.capi.net.ILoadableFile
  2315. {
  2316. var loc1:*=new Loader();
  2317. var loc2:*;
  2318. (loc2 = new LLoadableFile(loc1)).urlRequest = arg1;
  2319. if (arg2 == null)
  2320. {
  2321. arg2 = _defaultLoaderContext;
  2322. }
  2323. loc2.loaderContext = arg2;
  2324. initializeFile(loc2);
  2325. return loc2;
  2326. }
  2327.  
  2328. public function createFile(arg1:flash.net.URLRequest, arg2:Function=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null):ch.capi.net.ILoadableFile
  2329. {
  2330. var loc1:*;
  2331. if ((loc1 = loadableFileSelector.create(arg1, this)) == null)
  2332. {
  2333. return null;
  2334. }
  2335. attachListeners(loc1, arg2, arg3, arg4, arg5, arg6, arg7);
  2336. return loc1;
  2337. }
  2338.  
  2339. public function get defaultLoaderContext():flash.system.LoaderContext
  2340. {
  2341. return _defaultLoaderContext;
  2342. }
  2343.  
  2344. public function get defaultUseCache():Boolean
  2345. {
  2346. return _useCache;
  2347. }
  2348.  
  2349. public function get loadableFileSelector():ch.capi.net.ILoadableFileSelector
  2350. {
  2351. return _fileSelector;
  2352. }
  2353.  
  2354. public function set defaultSoundLoaderContext(arg1:flash.media.SoundLoaderContext):void
  2355. {
  2356. if (arg1 == null)
  2357. {
  2358. throw new ArgumentError("value is not defined");
  2359. }
  2360. _defaultSoundLoaderContext = arg1;
  2361. return;
  2362. }
  2363.  
  2364. public function createSoundFile(arg1:flash.net.URLRequest=null, arg2:flash.media.SoundLoaderContext=null):ch.capi.net.ILoadableFile
  2365. {
  2366. var loc1:*=new Sound();
  2367. var loc2:*;
  2368. (loc2 = new SLoadableFile(loc1)).urlRequest = arg1;
  2369. if (arg2 == null)
  2370. {
  2371. arg2 = _defaultSoundLoaderContext;
  2372. }
  2373. loc2.soundLoaderContext = arg2;
  2374. initializeFile(loc2);
  2375. return loc2;
  2376. }
  2377.  
  2378. public function createURLLoaderFile(arg1:flash.net.URLRequest=null, arg2:String=null):ch.capi.net.ILoadableFile
  2379. {
  2380. var loc1:*=new URLLoader();
  2381. var loc2:*;
  2382. (loc2 = new ULoadableFile(loc1)).urlRequest = arg1;
  2383. if (arg2 != null)
  2384. {
  2385. loc1.dataFormat = arg2;
  2386. }
  2387. initializeFile(loc2);
  2388. return loc2;
  2389. }
  2390.  
  2391. public function get defaultSoundLoaderContext():flash.media.SoundLoaderContext
  2392. {
  2393. return _defaultSoundLoaderContext;
  2394. }
  2395.  
  2396. public function set defaultLoaderContext(arg1:flash.system.LoaderContext):void
  2397. {
  2398. if (arg1 == null)
  2399. {
  2400. throw new ArgumentError("value is not defined");
  2401. }
  2402. _defaultLoaderContext = arg1;
  2403. return;
  2404. }
  2405.  
  2406. public function set defaultUseCache(arg1:Boolean):void
  2407. {
  2408. _useCache = arg1;
  2409. return;
  2410. }
  2411.  
  2412. public function create(arg1:String, arg2:Function=null, arg3:Function=null, arg4:Function=null, arg5:Function=null, arg6:Function=null, arg7:Function=null):ch.capi.net.ILoadableFile
  2413. {
  2414. if (basePath != null)
  2415. {
  2416. if (basePath.charAt((basePath.length - 1)) != "/")
  2417. {
  2418. basePath = basePath + "/";
  2419. }
  2420. arg1 = basePath + arg1;
  2421. }
  2422. return createFile(new URLRequest(arg1), arg2, arg3, arg4, arg5, arg6, arg7);
  2423. }
  2424.  
  2425. public function set loadableFileSelector(arg1:ch.capi.net.ILoadableFileSelector):void
  2426. {
  2427. _fileSelector = arg1;
  2428. return;
  2429. }
  2430.  
  2431. internal var _defaultVirtualBytes:uint;
  2432.  
  2433. internal var _listenersPriority:int;
  2434.  
  2435. public var basePath:String=null;
  2436.  
  2437. internal var _fileSelector:ch.capi.net.ILoadableFileSelector;
  2438.  
  2439. internal var _useCache:Boolean;
  2440.  
  2441. internal var _defaultSoundLoaderContext:flash.media.SoundLoaderContext;
  2442.  
  2443. internal var _defaultLoaderContext:flash.system.LoaderContext;
  2444. }
  2445. }
  2446.  
  2447.  
  2448. // class LoadableFileType
  2449. package ch.capi.net
  2450. {
  2451. public class LoadableFileType extends Object
  2452. {
  2453. public function LoadableFileType()
  2454. {
  2455. super();
  2456. return;
  2457. }
  2458.  
  2459. public static const STREAM:String="stream";
  2460.  
  2461. public static const BINARY:String="binary";
  2462.  
  2463. public static const SWF:String="swf";
  2464.  
  2465. public static const TEXT:String="text";
  2466.  
  2467. public static const SOUND:String="sound";
  2468.  
  2469. public static const VARIABLES:String="variables";
  2470. }
  2471. }
  2472.  
  2473.  
  2474. // class MassLoader
  2475. package ch.capi.net
  2476. {
  2477. import ch.capi.data.*;
  2478. import ch.capi.events.*;
  2479. import flash.errors.*;
  2480. import flash.events.*;
  2481.  
  2482. public class MassLoader extends flash.events.EventDispatcher implements IMassLoader
  2483. {
  2484. public function MassLoader(arg1:uint=0, arg2:Boolean=true, arg3:ch.capi.net.ILoadPolicy=null)
  2485. {
  2486. _filesQueue = new QueueList();
  2487. _filesToLoad = new ArrayList();
  2488. _filesLoading = new ArrayList();
  2489. super();
  2490. _loadInfo = new MassLoadInfo(this);
  2491. _parallelFiles = arg1;
  2492. _useCache = arg2;
  2493. _loadPolicy = arg3 != null ? arg3 : new DefaultLoadPolicy();
  2494. return;
  2495. }
  2496.  
  2497. internal function loadNext(arg1:ch.capi.net.ILoadManager=null, arg2:flash.events.Event=null):void
  2498. {
  2499. var loc1:*=null;
  2500. if (arg1 != null)
  2501. {
  2502. closeFile(arg1, arg2);
  2503. loc1 = processPolicy(arg1, arg2);
  2504. if (loc1 != null)
  2505. {
  2506. _tempTotalBytes = _tempTotalBytes - arg1.bytesLoaded;
  2507. _filesToLoad.addElement(loc1);
  2508. loadFile(loc1);
  2509. return;
  2510. }
  2511. if (!loadPolicy.canContinue)
  2512. {
  2513. stop();
  2514. return;
  2515. }
  2516. }
  2517. if (!isComplete())
  2518. {
  2519. startLoading();
  2520. }
  2521. if (isComplete())
  2522. {
  2523. doComplete();
  2524. }
  2525. else if (_currentFilesLoading == 0)
  2526. {
  2527. loadNext();
  2528. }
  2529. return;
  2530. }
  2531.  
  2532. protected function startLoading():void
  2533. {
  2534. var loc2:*=null;
  2535. var loc1:*=_parallelFiles == 0 || _parallelFiles > _filesToLoad.length ? _filesToLoad.length : _parallelFiles;
  2536. while (numFilesLoading < loc1)
  2537. {
  2538. loc2 = loadNextFile();
  2539. if (!(loc2 == null && isComplete()))
  2540. {
  2541. continue;
  2542. }
  2543. break;
  2544. }
  2545. return;
  2546. }
  2547.  
  2548. public function get closeEvent():flash.events.Event
  2549. {
  2550. return _closeEvent;
  2551. }
  2552.  
  2553. public function get numFilesLoading():uint
  2554. {
  2555. return _currentFilesLoading;
  2556. }
  2557.  
  2558. public function get stateIdle():Boolean
  2559. {
  2560. return !_isLoading;
  2561. }
  2562.  
  2563. protected final function loadFile(arg1:ch.capi.net.ILoadManager):Boolean
  2564. {
  2565. var op:ch.capi.events.MassLoadEvent;
  2566. var file:ch.capi.net.ILoadManager;
  2567.  
  2568. var loc1:*;
  2569. file = arg1;
  2570. var loc2:*;
  2571. _currentFilesLoading++;
  2572. registerTo(file);
  2573. op = new MassLoadEvent(MassLoadEvent.FILE_OPEN, file);
  2574. dispatchEvent(op);
  2575. try
  2576. {
  2577. if (!useCache || !file.useCache || file.bytesTotal == 0 || file.bytesLoaded < file.bytesTotal)
  2578. {
  2579. file.start();
  2580. return true;
  2581. }
  2582. }
  2583. catch (e:Error)
  2584. {
  2585. };
  2586. closeFile(file, null);
  2587. return false;
  2588. }
  2589.  
  2590. protected function isComplete():Boolean
  2591. {
  2592. return _filesQueue.isEmpty() && _currentFilesLoading == 0;
  2593. }
  2594.  
  2595. protected function registerTo(arg1:ch.capi.net.ILoadManager):void
  2596. {
  2597. arg1.addEventListener(Event.COMPLETE, onComplete, false, LISTENER_PRIORITY, true);
  2598. arg1.addEventListener(Event.OPEN, onOpen, false, LISTENER_PRIORITY, true);
  2599. arg1.addEventListener(ProgressEvent.PROGRESS, onProgress, false, LISTENER_PRIORITY, true);
  2600. arg1.addEventListener(Event.CLOSE, onClose, false, LISTENER_PRIORITY, true);
  2601. arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError, false, LISTENER_PRIORITY, true);
  2602. arg1.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, LISTENER_PRIORITY, true);
  2603. return;
  2604. }
  2605.  
  2606. internal function stopLoadingFile(arg1:ch.capi.net.ILoadManager):void
  2607. {
  2608. var loc1:*;
  2609. _currentFilesLoading--;
  2610. arg1.stop();
  2611. unregisterFrom(arg1);
  2612. return;
  2613. }
  2614.  
  2615. protected final function onSecurityError(arg1:flash.events.SecurityErrorEvent):void
  2616. {
  2617. closeEventFile(arg1);
  2618. return;
  2619. }
  2620.  
  2621. public function getFileCount():uint
  2622. {
  2623. return _filesToLoad.length;
  2624. }
  2625.  
  2626. internal function closeFile(arg1:ch.capi.net.ILoadManager, arg2:flash.events.Event):void
  2627. {
  2628. unregisterFrom(arg1);
  2629. _filesLoading.removeElement(arg1);
  2630. var loc1:*;
  2631. _currentFilesLoading--;
  2632. _tempTotalBytes = _tempTotalBytes + arg1.bytesLoaded;
  2633. removeFile(arg1);
  2634. sendCloseEvent(arg1, arg2);
  2635. return;
  2636. }
  2637.  
  2638. protected function loadNextFile():ch.capi.net.ILoadManager
  2639. {
  2640. if (_filesQueue.isEmpty())
  2641. {
  2642. return null;
  2643. }
  2644. var loc1:*=extractNextFile();
  2645. return loadFile(loc1) ? loc1 : null;
  2646. }
  2647.  
  2648. public function get bytesTotal():uint
  2649. {
  2650. return _realTotalBytes;
  2651. }
  2652.  
  2653. public override function toString():String
  2654. {
  2655. return "MassLoader[" + _filesToLoad.toArray() + "]";
  2656. }
  2657.  
  2658. protected function unregisterFrom(arg1:ch.capi.net.ILoadManager):void
  2659. {
  2660. arg1.removeEventListener(Event.COMPLETE, onComplete);
  2661. arg1.removeEventListener(Event.OPEN, onOpen);
  2662. arg1.removeEventListener(ProgressEvent.PROGRESS, onProgress);
  2663. arg1.removeEventListener(Event.CLOSE, onClose);
  2664. arg1.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
  2665. arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
  2666. return;
  2667. }
  2668.  
  2669. internal function doComplete():void
  2670. {
  2671. _isLoading = false;
  2672. var loc1:*=new Event(Event.COMPLETE);
  2673. _closeEvent = loc1;
  2674. dispatchEvent(loc1);
  2675. return;
  2676. }
  2677.  
  2678. public function set useCache(arg1:Boolean):void
  2679. {
  2680. _useCache = arg1;
  2681. return;
  2682. }
  2683.  
  2684. protected final function updateBytes():void
  2685. {
  2686. var loc5:*=null;
  2687. var loc1:*=_tempTotalBytes;
  2688. var loc2:*=_tempTotalBytes;
  2689. var loc3:*=_filesToLoad.length;
  2690. var loc4:*=0;
  2691. while (loc4 < loc3)
  2692. {
  2693. loc5 = _filesToLoad.getElementAt(loc4) as ILoadManager;
  2694. loc1 = loc1 + loc5.bytesLoaded;
  2695. loc2 = loc2 + loc5.bytesTotal;
  2696. ++loc4;
  2697. }
  2698. _realLoadedBytes = loc1;
  2699. _realTotalBytes = loc2;
  2700. _loadInfo.update();
  2701. return;
  2702. }
  2703.  
  2704. protected function processPolicy(arg1:ch.capi.net.ILoadManager, arg2:flash.events.Event):ch.capi.net.ILoadManager
  2705. {
  2706. return _loadPolicy.processFile(arg1, arg2);
  2707. }
  2708.  
  2709. public function get nextFileToLoad():ch.capi.net.ILoadManager
  2710. {
  2711. return _filesQueue.nextElement;
  2712. }
  2713.  
  2714. internal function closeEventFile(arg1:flash.events.Event):void
  2715. {
  2716. var loc1:*=arg1.target as ILoadManager;
  2717. if (!_isLoading)
  2718. {
  2719. sendCloseEvent(loc1, arg1);
  2720. return;
  2721. }
  2722. loadNext(loc1, arg1);
  2723. return;
  2724. }
  2725.  
  2726. public function removeFile(arg1:ch.capi.net.ILoadManager):void
  2727. {
  2728. if (!hasFile(arg1))
  2729. {
  2730. throw new IllegalOperationError("The file is not into the loading queue");
  2731. }
  2732. _filesToLoad.removeElement(arg1);
  2733. return;
  2734. }
  2735.  
  2736. public function hasFile(arg1:ch.capi.net.ILoadManager):Boolean
  2737. {
  2738. return !(_filesToLoad.getElementIndex(arg1) == -1);
  2739. }
  2740.  
  2741. public function get stateLoading():Boolean
  2742. {
  2743. return _isLoading;
  2744. }
  2745.  
  2746. internal function sendCloseEvent(arg1:ch.capi.net.ILoadManager, arg2:flash.events.Event=null):void
  2747. {
  2748. var loc1:*=new MassLoadEvent(MassLoadEvent.FILE_CLOSE, arg1, arg2);
  2749. dispatchEvent(loc1);
  2750. return;
  2751. }
  2752.  
  2753. protected final function onProgress(arg1:flash.events.ProgressEvent):void
  2754. {
  2755. var loc1:*=null;
  2756. updateBytes();
  2757. if (alwaysDispatchProgressEvent || _filesLoading.length == _currentFilesLoading)
  2758. {
  2759. loc1 = new ProgressEvent(ProgressEvent.PROGRESS, arg1.bubbles, arg1.cancelable, bytesLoaded, bytesTotal);
  2760. dispatchEvent(loc1);
  2761. }
  2762. return;
  2763. }
  2764.  
  2765. public function get parallelFiles():uint
  2766. {
  2767. return _parallelFiles;
  2768. }
  2769.  
  2770. protected function get files():ch.capi.data.IList
  2771. {
  2772. return _filesToLoad;
  2773. }
  2774.  
  2775. public function set loadPolicy(arg1:ch.capi.net.ILoadPolicy):void
  2776. {
  2777. if (arg1 == null)
  2778. {
  2779. throw new ArgumentError("value is not defined");
  2780. }
  2781. _loadPolicy = arg1;
  2782. return;
  2783. }
  2784.  
  2785. public function get loadInfo():ch.capi.net.ILoadInfo
  2786. {
  2787. return _loadInfo;
  2788. }
  2789.  
  2790. protected final function onComplete(arg1:flash.events.Event):void
  2791. {
  2792. loadNext(arg1.target as ILoadManager, arg1);
  2793. return;
  2794. }
  2795.  
  2796. public function get loadPolicy():ch.capi.net.ILoadPolicy
  2797. {
  2798. return _loadPolicy;
  2799. }
  2800.  
  2801. public function get useCache():Boolean
  2802. {
  2803. return _useCache;
  2804. }
  2805.  
  2806. public function addFile(arg1:ch.capi.net.ILoadManager):void
  2807. {
  2808. if (hasFile(arg1))
  2809. {
  2810. throw new IllegalOperationError("The file is already into the loading queue");
  2811. }
  2812. _filesToLoad.addElement(arg1);
  2813. return;
  2814. }
  2815.  
  2816. public function getFiles():Array
  2817. {
  2818. return _filesToLoad.toArray();
  2819. }
  2820.  
  2821. protected function get filesLoading():ch.capi.data.IList
  2822. {
  2823. return _filesLoading;
  2824. }
  2825.  
  2826. protected final function onOpen(arg1:flash.events.Event):void
  2827. {
  2828. var loc1:*=arg1.target as ILoadManager;
  2829. _filesLoading.addElement(arg1.target as ILoadManager);
  2830. if (!_isLoading)
  2831. {
  2832. stopLoadingFile(loc1);
  2833. return;
  2834. }
  2835. return;
  2836. }
  2837.  
  2838. public function clear():void
  2839. {
  2840. _filesToLoad.clear();
  2841. return;
  2842. }
  2843.  
  2844. public function get bytesLoaded():uint
  2845. {
  2846. return _realLoadedBytes;
  2847. }
  2848.  
  2849. protected function get filesQueue():ch.capi.data.IDataStructure
  2850. {
  2851. return _filesQueue;
  2852. }
  2853.  
  2854. protected final function onIOError(arg1:flash.events.IOErrorEvent):void
  2855. {
  2856. closeEventFile(arg1);
  2857. return;
  2858. }
  2859.  
  2860. internal function extractNextFile():ch.capi.net.ILoadManager
  2861. {
  2862. return _filesQueue.remove() as ILoadManager;
  2863. }
  2864.  
  2865. protected function set filesQueue(arg1:ch.capi.data.IDataStructure):void
  2866. {
  2867. if (arg1 == null)
  2868. {
  2869. throw new ArgumentError("value is not defined");
  2870. }
  2871. _filesQueue = arg1;
  2872. return;
  2873. }
  2874.  
  2875. public final function stop():void
  2876. {
  2877. var loc4:*=null;
  2878. if (!_isLoading)
  2879. {
  2880. throw new IllegalOperationError("State not loading");
  2881. }
  2882. _isLoading = false;
  2883. var loc1:*=_filesLoading.length;
  2884. var loc2:*=0;
  2885. while (loc2 < loc1)
  2886. {
  2887. loc4 = _filesLoading.getElementAt(loc2) as ILoadManager;
  2888. stopLoadingFile(loc4);
  2889. ++loc2;
  2890. }
  2891. var loc3:*=new Event(Event.CLOSE);
  2892. _closeEvent = loc3;
  2893. dispatchEvent(loc3);
  2894. return;
  2895. }
  2896.  
  2897. public function set parallelFiles(arg1:uint):void
  2898. {
  2899. _parallelFiles = arg1;
  2900. return;
  2901. }
  2902.  
  2903. protected final function onClose(arg1:flash.events.Event):void
  2904. {
  2905. closeEventFile(arg1);
  2906. return;
  2907. }
  2908.  
  2909. public final function start():void
  2910. {
  2911. if (_isLoading)
  2912. {
  2913. throw new IllegalOperationError("State already loading");
  2914. }
  2915. _isLoading = true;
  2916. _closeEvent = null;
  2917. _tempTotalBytes = 0;
  2918. _currentFilesLoading = 0;
  2919. _filesLoading.clear();
  2920. _filesQueue.clear();
  2921. _loadInfo.reset();
  2922. var loc1:*=_filesToLoad.length;
  2923. var loc2:*=0;
  2924. while (loc2 < loc1)
  2925. {
  2926. _filesQueue.add(_filesToLoad.getElementAt(loc2));
  2927. ++loc2;
  2928. }
  2929. updateBytes();
  2930. var loc3:*=new Event(Event.OPEN);
  2931. dispatchEvent(loc3);
  2932. if (_filesQueue.isEmpty())
  2933. {
  2934. doComplete();
  2935. }
  2936. else
  2937. {
  2938. loadNext();
  2939. }
  2940. return;
  2941. }
  2942.  
  2943. internal static const LISTENER_PRIORITY:int=-100;
  2944.  
  2945. internal var _loadInfo:ch.capi.net.ILoadInfo;
  2946.  
  2947. internal var _useCache:Boolean;
  2948.  
  2949. internal var _currentFilesLoading:uint=0;
  2950.  
  2951. internal var _closeEvent:flash.events.Event=null;
  2952.  
  2953. internal var _filesLoading:ch.capi.data.IList;
  2954.  
  2955. internal var _realLoadedBytes:uint=0;
  2956.  
  2957. internal var _parallelFiles:uint;
  2958.  
  2959. internal var _isLoading:Boolean=false;
  2960.  
  2961. internal var _filesToLoad:ch.capi.data.IList;
  2962.  
  2963. internal var _loadPolicy:ch.capi.net.ILoadPolicy;
  2964.  
  2965. internal var _filesQueue:ch.capi.data.IDataStructure;
  2966.  
  2967. internal var _realTotalBytes:uint=0;
  2968.  
  2969. public var alwaysDispatchProgressEvent:Boolean=false;
  2970.  
  2971. internal var _tempTotalBytes:uint=0;
  2972. }
  2973. }
  2974.  
  2975. import ch.capi.data.*;
  2976. import ch.capi.events.*;
  2977. import flash.events.*;
  2978. import flash.utils.*;
  2979.  
  2980.  
  2981. class MassLoadInfo extends Object implements ILoadInfo
  2982. {
  2983. public function MassLoadInfo(arg1:ch.capi.net.IMassLoader)
  2984. {
  2985. _listSuccess = new ArrayList();
  2986. _listError = new ArrayList();
  2987. _listLoading = new ArrayList();
  2988. _listIdle = new ArrayList();
  2989. super();
  2990. _massLoader = arg1;
  2991. _massLoader.addEventListener(Event.OPEN, onOpen, false, LISTENER_PRIORITY, true);
  2992. _massLoader.addEventListener(MassLoadEvent.FILE_CLOSE, onFileClose, false, LISTENER_PRIORITY, true);
  2993. _massLoader.addEventListener(MassLoadEvent.FILE_OPEN, onFileOpen, false, LISTENER_PRIORITY, true);
  2994. _massLoader.addEventListener(Event.COMPLETE, onMassLoadClose, false, LISTENER_PRIORITY, true);
  2995. _massLoader.addEventListener(Event.CLOSE, onMassLoadClose, false, LISTENER_PRIORITY, true);
  2996. reset();
  2997. return;
  2998. }
  2999.  
  3000. public function get filesIdle():Array
  3001. {
  3002. return _listIdle.toArray();
  3003. }
  3004.  
  3005. public function get remainingTime():int
  3006. {
  3007. return _remainingTime;
  3008. }
  3009.  
  3010. public function get elapsedTime():uint
  3011. {
  3012. return _elapsedTime;
  3013. }
  3014.  
  3015. public function get bytesLoaded():uint
  3016. {
  3017. return massLoader.bytesLoaded;
  3018. }
  3019.  
  3020. protected function onMassLoadClose(arg1:flash.events.Event):void
  3021. {
  3022. clearInterval(_privateUpdater);
  3023. return;
  3024. }
  3025.  
  3026. public function get bytesTotal():uint
  3027. {
  3028. return massLoader.bytesTotal;
  3029. }
  3030.  
  3031. public function get filesSuccess():Array
  3032. {
  3033. return _listSuccess.toArray();
  3034. }
  3035.  
  3036. public function get massLoader():ch.capi.net.IMassLoader
  3037. {
  3038. return _massLoader;
  3039. }
  3040.  
  3041. public function get percentLoaded():uint
  3042. {
  3043. return Math.floor(ratioLoaded * 100);
  3044. }
  3045.  
  3046. public function get bytesRemaining():uint
  3047. {
  3048. return bytesTotal - bytesLoaded;
  3049. }
  3050.  
  3051. internal function doUpdate():void
  3052. {
  3053. update();
  3054. return;
  3055. }
  3056.  
  3057. public function get filesError():Array
  3058. {
  3059. return _listError.toArray();
  3060. }
  3061.  
  3062. protected function onFileClose(arg1:ch.capi.events.MassLoadEvent):void
  3063. {
  3064. var loc1:*=arg1.file;
  3065. var loc2:*=arg1.closeEvent;
  3066. _listLoading.removeElement(loc1);
  3067. if (loc2 == null || loc2.type == Event.COMPLETE)
  3068. {
  3069. _listSuccess.addElement(loc1);
  3070. }
  3071. else
  3072. {
  3073. _listError.addElement(loc1);
  3074. }
  3075. return;
  3076. }
  3077.  
  3078. public function get averageSpeed():Number
  3079. {
  3080. return _averageSpeed;
  3081. }
  3082.  
  3083. public function get filesLoading():Array
  3084. {
  3085. return _listLoading.toArray();
  3086. }
  3087.  
  3088. public function reset():void
  3089. {
  3090. _startTime = 0;
  3091. _remainingTime = 0;
  3092. _elapsedTime = 0;
  3093. _currentSpeed = 0;
  3094. _averageSpeed = 0;
  3095. _lastTimeUpdate = 0;
  3096. _lastTimeBytesLoaded = 0;
  3097. _listError.clear();
  3098. _listSuccess.clear();
  3099. _listLoading.clear();
  3100. _listIdle.clear();
  3101. clearInterval(_privateUpdater);
  3102. return;
  3103. }
  3104.  
  3105. public function update():void
  3106. {
  3107. var loc3:*=NaN;
  3108. var loc1:*=bytesLoaded - _lastTimeBytesLoaded;
  3109. var loc2:*=getTimer() - _lastTimeUpdate;
  3110. if (loc2 > 0)
  3111. {
  3112. loc3 = BYTES_PER_TIME / loc2;
  3113. _currentSpeed = loc1 * loc3;
  3114. _lastTimeBytesLoaded = bytesLoaded;
  3115. _lastTimeUpdate = getTimer();
  3116. }
  3117. _elapsedTime = getTimer() - _startTime;
  3118. if (_elapsedTime > 0)
  3119. {
  3120. _averageSpeed = bytesLoaded / _elapsedTime;
  3121. }
  3122. else
  3123. {
  3124. _averageSpeed = 0;
  3125. }
  3126. if (_averageSpeed > 0)
  3127. {
  3128. _remainingTime = Math.round(bytesRemaining / _averageSpeed);
  3129. }
  3130. else
  3131. {
  3132. _remainingTime = -1;
  3133. }
  3134. clearInterval(_privateUpdater);
  3135. if (massLoader.stateLoading)
  3136. {
  3137. _privateUpdater = setTimeout(doUpdate, TIMEOUT);
  3138. }
  3139. return;
  3140. }
  3141.  
  3142. public function get currentSpeed():Number
  3143. {
  3144. return _currentSpeed;
  3145. }
  3146.  
  3147. public function toString():String
  3148. {
  3149. var loc1:*="";
  3150. loc1 = loc1 + ("bytesTotal : " + bytesTotal + "\n");
  3151. loc1 = loc1 + ("bytesLoaded : " + bytesLoaded + "\n");
  3152. loc1 = loc1 + ("bytesRemaining : " + bytesRemaining + "\n");
  3153. loc1 = loc1 + ("percentLoaded : " + percentLoaded + "%\n");
  3154. loc1 = loc1 + ("radioLoaded : " + Math.floor(ratioLoaded * 100) / 100 + "\n");
  3155. loc1 = loc1 + ("currentSpeed : " + Math.floor(currentSpeed * 100) / 100 + " ko/sec\n");
  3156. loc1 = loc1 + ("averageSpeed : " + Math.floor(averageSpeed * 100) / 100 + " ko/sec\n");
  3157. loc1 = loc1 + ("elapsedTime : " + elapsedTime + " ms\n");
  3158. loc1 = loc1 + ("remainingTime : " + remainingTime + " ms\n");
  3159. loc1 = loc1 + ("filesIdle : " + _listIdle.length + "\n");
  3160. loc1 = loc1 + ("filesLoading : " + _listLoading.length + "\n");
  3161. loc1 = loc1 + ("filesSuccess : " + _listSuccess.length + "\n");
  3162. loc1 = loc1 + ("filesError : " + _listError.length + "\n");
  3163. loc1 = loc1 + ("filesIdle : " + _listIdle.length + "\n");
  3164. return loc1;
  3165. }
  3166.  
  3167. protected function onFileOpen(arg1:ch.capi.events.MassLoadEvent):void
  3168. {
  3169. var loc1:*=arg1.file;
  3170. _listIdle.removeElement(loc1);
  3171. _listError.removeElement(loc1);
  3172. _listSuccess.removeElement(loc1);
  3173. _listLoading.addElement(loc1);
  3174. return;
  3175. }
  3176.  
  3177. protected function onOpen(arg1:flash.events.Event):void
  3178. {
  3179. var loc2:*=null;
  3180. _startTime = getTimer();
  3181. var loc1:*=massLoader.getFiles();
  3182. var loc3:*=0;
  3183. var loc4:*=loc1;
  3184. for each (loc2 in loc4)
  3185. {
  3186. _listIdle.addElement(loc2);
  3187. }
  3188. return;
  3189. }
  3190.  
  3191. public function get ratioLoaded():Number
  3192. {
  3193. return bytesTotal != 0 ? bytesLoaded / bytesTotal : 0;
  3194. }
  3195.  
  3196. internal static const LISTENER_PRIORITY:int=100;
  3197.  
  3198. internal static const TIMEOUT:uint=1500;
  3199.  
  3200. internal static const BYTES_PER_TIME:uint=1000;
  3201.  
  3202. internal var _remainingTime:int;
  3203.  
  3204. internal var _privateUpdater:uint;
  3205.  
  3206. internal var _listError:ch.capi.data.ArrayList;
  3207.  
  3208. internal var _averageSpeed:Number;
  3209.  
  3210. internal var _listLoading:ch.capi.data.ArrayList;
  3211.  
  3212. internal var _lastTimeUpdate:uint;
  3213.  
  3214. internal var _listIdle:ch.capi.data.ArrayList;
  3215.  
  3216. internal var _massLoader:ch.capi.net.IMassLoader;
  3217.  
  3218. internal var _startTime:Number;
  3219.  
  3220. internal var _elapsedTime:uint;
  3221.  
  3222. internal var _currentSpeed:Number;
  3223.  
  3224. internal var _lastTimeBytesLoaded:uint;
  3225.  
  3226. internal var _listSuccess:ch.capi.data.ArrayList;
  3227. }
  3228.  
  3229. // class NetState
  3230. package ch.capi.net
  3231. {
  3232. import flash.system.*;
  3233.  
  3234. public class NetState extends Object
  3235. {
  3236. public function NetState()
  3237. {
  3238. super();
  3239. return;
  3240. }
  3241.  
  3242. public static function get():String
  3243. {
  3244. var loc1:*=Security.sandboxType;
  3245. var loc2:*=loc1;
  3246. switch (loc2)
  3247. {
  3248. case Security.REMOTE:
  3249. {
  3250. return ONLINE;
  3251. }
  3252. case Security.LOCAL_TRUSTED:
  3253. case Security.LOCAL_WITH_FILE:
  3254. {
  3255. return OFFLINE;
  3256. }
  3257. case Security.LOCAL_WITH_NETWORK:
  3258. default:
  3259. {
  3260. return DYNAMIC;
  3261. }
  3262. }
  3263. }
  3264.  
  3265. public static const ONLINE:String="online";
  3266.  
  3267. public static const OFFLINE:String="offline";
  3268.  
  3269. public static const DYNAMIC:String="dynamic";
  3270. }
  3271. }
  3272.  
  3273.  
  3274. // class RLoadableFile
  3275. package ch.capi.net
  3276. {
  3277. import flash.events.*;
  3278. import flash.net.*;
  3279. import flash.system.*;
  3280.  
  3281. internal class RLoadableFile extends ch.capi.net.AbstractLoadableFile implements ILoadableFile
  3282. {
  3283. public function RLoadableFile(arg1:flash.net.URLStream)
  3284. {
  3285. super(arg1);
  3286. registerTo(arg1);
  3287. return;
  3288. }
  3289.  
  3290. public override function start():void
  3291. {
  3292. super.start();
  3293. var loc1:*=getURLRequest();
  3294. var loc2:*=loadManagerObject as URLStream;
  3295. loc2.load(loc1);
  3296. return;
  3297. }
  3298.  
  3299. public function getEventDispatcher():flash.events.IEventDispatcher
  3300. {
  3301. return loadManagerObject as URLStream;
  3302. }
  3303.  
  3304. public function isClassSupported(arg1:String, arg2:flash.system.ApplicationDomain=null):Boolean
  3305. {
  3306. return arg1 == "flash.net.URLStream";
  3307. }
  3308.  
  3309. public function getType():String
  3310. {
  3311. return LoadableFileType.STREAM;
  3312. }
  3313.  
  3314. public function getData(arg1:String=null, arg2:flash.system.ApplicationDomain=null):*
  3315. {
  3316. if (!(arg1 == null) && !isClassSupported(arg1))
  3317. {
  3318. throw new ArgumentError("The type \'" + arg1 + "\' is not supported");
  3319. }
  3320. return loadManagerObject as URLStream;
  3321. }
  3322. }
  3323. }
  3324.  
  3325.  
  3326. // class SLoadableFile
  3327. package ch.capi.net
  3328. {
  3329. import flash.events.*;
  3330. import flash.media.*;
  3331. import flash.net.*;
  3332. import flash.system.*;
  3333.  
  3334. internal class SLoadableFile extends ch.capi.net.AbstractLoadableFile implements ILoadableFile
  3335. {
  3336. public function SLoadableFile(arg1:flash.media.Sound)
  3337. {
  3338. soundLoaderContext = new SoundLoaderContext();
  3339. super(arg1);
  3340. registerTo(arg1);
  3341. return;
  3342. }
  3343.  
  3344. public override function start():void
  3345. {
  3346. super.start();
  3347. var loc1:*=getURLRequest();
  3348. var loc2:*=loadManagerObject as Sound;
  3349. loc2.load(loc1, soundLoaderContext);
  3350. return;
  3351. }
  3352.  
  3353. public function getData(arg1:String=null, arg2:flash.system.ApplicationDomain=null):*
  3354. {
  3355. if (!(arg1 == null) && !isClassSupported(arg1))
  3356. {
  3357. throw new ArgumentError("The type \'" + arg1 + "\' is not supported");
  3358. }
  3359. return loadManagerObject as Sound;
  3360. }
  3361.  
  3362. public function getType():String
  3363. {
  3364. return LoadableFileType.SOUND;
  3365. }
  3366.  
  3367. public function isClassSupported(arg1:String, arg2:flash.system.ApplicationDomain=null):Boolean
  3368. {
  3369. return arg1 == "flash.media.Sound";
  3370. }
  3371.  
  3372. public function getEventDispatcher():flash.events.IEventDispatcher
  3373. {
  3374. return loadManagerObject as Sound;
  3375. }
  3376.  
  3377. public var soundLoaderContext:flash.media.SoundLoaderContext;
  3378. }
  3379. }
  3380.  
  3381.  
  3382. // class ULoadableFile
  3383. package ch.capi.net
  3384. {
  3385. import ch.capi.display.*;
  3386. import flash.display.*;
  3387. import flash.events.*;
  3388. import flash.net.*;
  3389. import flash.system.*;
  3390. import flash.text.*;
  3391. import flash.xml.*;
  3392.  
  3393. internal class ULoadableFile extends ch.capi.net.AbstractLoadableFile implements ILoadableFile
  3394. {
  3395. public function ULoadableFile(arg1:flash.net.URLLoader)
  3396. {
  3397. super(arg1);
  3398. registerTo(arg1);
  3399. return;
  3400. }
  3401.  
  3402. protected function onInit(arg1:flash.events.Event):void
  3403. {
  3404. var loc3:*=null;
  3405. var loc1:*=arg1.target as LoaderInfo;
  3406. var loc2:*=loc1.content;
  3407. if (loc2 is IRootDocument)
  3408. {
  3409. (loc3 = loc2 as IRootDocument).initializeContext(this);
  3410. }
  3411. return;
  3412. }
  3413.  
  3414. public override function start():void
  3415. {
  3416. super.start();
  3417. var loc1:*=getURLRequest();
  3418. var loc2:*=loadManagerObject as URLLoader;
  3419. loc2.load(loc1);
  3420. return;
  3421. }
  3422.  
  3423. public function isClassSupported(arg1:String, arg2:flash.system.ApplicationDomain=null):Boolean
  3424. {
  3425. if (getType() == LoadableFileType.BINARY && (arg1 == "flash.utils.ByteArray" || isInstanceOfClass(arg1, "flash.display.Loader", arg2)))
  3426. {
  3427. return true;
  3428. }
  3429. if (getType() == LoadableFileType.VARIABLES && isInstanceOfClass(arg1, "flash.net.URLVariables", arg2))
  3430. {
  3431. return true;
  3432. }
  3433. if (isInstanceOf(arg1, ["XML", "flash.xml.XMLDocument", "flash.text.StyleSheet", "flash.net.URLVariables"], arg2))
  3434. {
  3435. return true;
  3436. }
  3437. return false;
  3438. }
  3439.  
  3440. public function getType():String
  3441. {
  3442. return (loadManagerObject as URLLoader).dataFormat;
  3443. }
  3444.  
  3445. public function getData(arg1:String=null, arg2:flash.system.ApplicationDomain=null):*
  3446. {
  3447. if (arg1 == null)
  3448. {
  3449. return loadManagerObject.data;
  3450. }
  3451. if (arg2 == null)
  3452. {
  3453. arg2 = ApplicationDomain.currentDomain;
  3454. }
  3455. if (!isClassSupported(arg1, arg2))
  3456. {
  3457. throw new ArgumentError("The type \'" + arg1 + "\' is not supported for this kind of data (" + getType() + ")");
  3458. }
  3459. if (arg1 == "flash.utils.ByteArray")
  3460. {
  3461. return loadManagerObject.data;
  3462. }
  3463. if (arg1 == "XML")
  3464. {
  3465. return new XML(loadManagerObject.data);
  3466. }
  3467. var loc1:*=arg2.getDefinition(arg1) as Class;
  3468. var loc2:*=new loc1();
  3469. var loc3:*=loadManagerObject.data;
  3470. if (loc2 is Loader)
  3471. {
  3472. loc2.contentLoaderInfo.addEventListener(Event.INIT, onInit, false, 10, true);
  3473. loc2.loadBytes(loc3);
  3474. }
  3475. else if (loc2 is URLVariables)
  3476. {
  3477. loc2.decode(loc3);
  3478. }
  3479. else if (loc2 is XMLDocument)
  3480. {
  3481. loc2.ignoreWhite = true;
  3482. loc2.parseXML(loc3);
  3483. }
  3484. else if (loc2 is StyleSheet)
  3485. {
  3486. loc2.parseCSS(loc3);
  3487. }
  3488. return loc2;
  3489. }
  3490.  
  3491. public function getEventDispatcher():flash.events.IEventDispatcher
  3492. {
  3493. return loadManagerObject as URLLoader;
  3494. }
  3495. }
  3496. }
  3497.  
  3498.  
  3499. // package com
  3500. // package adobe
  3501. // package crypto
  3502. // class MD5
  3503. package com.adobe.crypto
  3504. {
  3505. import com.adobe.utils.*;
  3506. import flash.utils.*;
  3507.  
  3508. public class MD5 extends Object
  3509. {
  3510. public function MD5()
  3511. {
  3512. super();
  3513. return;
  3514. }
  3515.  
  3516. internal static function ff(arg1:int, arg2:int, arg3:int, arg4:int, arg5:int, arg6:int, arg7:int):int
  3517. {
  3518. return transform(f, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
  3519. }
  3520.  
  3521. internal static function f(arg1:int, arg2:int, arg3:int):int
  3522. {
  3523. return arg1 & arg2 | ~arg1 & arg3;
  3524. }
  3525.  
  3526. internal static function g(arg1:int, arg2:int, arg3:int):int
  3527. {
  3528. return arg1 & arg3 | arg2 & ~arg3;
  3529. }
  3530.  
  3531. internal static function h(arg1:int, arg2:int, arg3:int):int
  3532. {
  3533. return arg1 ^ arg2 ^ arg3;
  3534. }
  3535.  
  3536. internal static function i(arg1:int, arg2:int, arg3:int):int
  3537. {
  3538. return arg2 ^ (arg1 | ~arg3);
  3539. }
  3540.  
  3541. internal static function transform(arg1:Function, arg2:int, arg3:int, arg4:int, arg5:int, arg6:int, arg7:int, arg8:int):int
  3542. {
  3543. var loc1:*=arg2 + int(arg1(arg3, arg4, arg5)) + arg6 + arg8;
  3544. return IntUtil.rol(loc1, arg7) + arg3;
  3545. }
  3546.  
  3547. internal static function hh(arg1:int, arg2:int, arg3:int, arg4:int, arg5:int, arg6:int, arg7:int):int
  3548. {
  3549. return transform(h, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
  3550. }
  3551.  
  3552. public static function hash(arg1:String):String
  3553. {
  3554. var loc1:*=new ByteArray();
  3555. loc1.writeUTFBytes(arg1);
  3556. return hashBinary(loc1);
  3557. }
  3558.  
  3559. internal static function createBlocks(arg1:flash.utils.ByteArray):Array
  3560. {
  3561. var loc1:*=new Array();
  3562. var loc2:*=arg1.length * 8;
  3563. var loc3:*=255;
  3564. var loc4:*=0;
  3565. while (loc4 < loc2)
  3566. {
  3567. loc1[int(loc4 >> 5)] = loc1[int(loc4 >> 5)] | (arg1[loc4 / 8] & loc3) << loc4 % 32;
  3568. loc4 = loc4 + 8;
  3569. }
  3570. loc1[int(loc2 >> 5)] = loc1[int(loc2 >> 5)] | 128 << loc2 % 32;
  3571. loc1[int((loc2 + 64 >>> 9 << 4) + 14)] = loc2;
  3572. return loc1;
  3573. }
  3574.  
  3575. public static function hashBinary(arg1:flash.utils.ByteArray):String
  3576. {
  3577. var loc5:*=0;
  3578. var loc6:*=0;
  3579. var loc7:*=0;
  3580. var loc8:*=0;
  3581. var loc1:*=1732584193;
  3582. var loc2:*=-271733879;
  3583. var loc3:*=-1732584194;
  3584. var loc4:*=271733878;
  3585. var loc9:*;
  3586. var loc10:*=(loc9 = createBlocks(arg1)).length;
  3587. var loc11:*=0;
  3588. while (loc11 < loc10)
  3589. {
  3590. loc5 = loc1;
  3591. loc6 = loc2;
  3592. loc7 = loc3;
  3593. loc8 = loc4;
  3594. loc1 = ff(loc1, loc2, loc3, loc4, loc9[int(loc11 + 0)], 7, -680876936);
  3595. loc4 = ff(loc4, loc1, loc2, loc3, loc9[int(loc11 + 1)], 12, -389564586);
  3596. loc3 = ff(loc3, loc4, loc1, loc2, loc9[int(loc11 + 2)], 17, 606105819);
  3597. loc2 = ff(loc2, loc3, loc4, loc1, loc9[int(loc11 + 3)], 22, -1044525330);
  3598. loc1 = ff(loc1, loc2, loc3, loc4, loc9[int(loc11 + 4)], 7, -176418897);
  3599. loc4 = ff(loc4, loc1, loc2, loc3, loc9[int(loc11 + 5)], 12, 1200080426);
  3600. loc3 = ff(loc3, loc4, loc1, loc2, loc9[int(loc11 + 6)], 17, -1473231341);
  3601. loc2 = ff(loc2, loc3, loc4, loc1, loc9[int(loc11 + 7)], 22, -45705983);
  3602. loc1 = ff(loc1, loc2, loc3, loc4, loc9[int(loc11 + 8)], 7, 1770035416);
  3603. loc4 = ff(loc4, loc1, loc2, loc3, loc9[int(loc11 + 9)], 12, -1958414417);
  3604. loc3 = ff(loc3, loc4, loc1, loc2, loc9[int(loc11 + 10)], 17, -42063);
  3605. loc2 = ff(loc2, loc3, loc4, loc1, loc9[int(loc11 + 11)], 22, -1990404162);
  3606. loc1 = ff(loc1, loc2, loc3, loc4, loc9[int(loc11 + 12)], 7, 1804603682);
  3607. loc4 = ff(loc4, loc1, loc2, loc3, loc9[int(loc11 + 13)], 12, -40341101);
  3608. loc3 = ff(loc3, loc4, loc1, loc2, loc9[int(loc11 + 14)], 17, -1502002290);
  3609. loc2 = ff(loc2, loc3, loc4, loc1, loc9[int(loc11 + 15)], 22, 1236535329);
  3610. loc1 = gg(loc1, loc2, loc3, loc4, loc9[int(loc11 + 1)], 5, -165796510);
  3611. loc4 = gg(loc4, loc1, loc2, loc3, loc9[int(loc11 + 6)], 9, -1069501632);
  3612. loc3 = gg(loc3, loc4, loc1, loc2, loc9[int(loc11 + 11)], 14, 643717713);
  3613. loc2 = gg(loc2, loc3, loc4, loc1, loc9[int(loc11 + 0)], 20, -373897302);
  3614. loc1 = gg(loc1, loc2, loc3, loc4, loc9[int(loc11 + 5)], 5, -701558691);
  3615. loc4 = gg(loc4, loc1, loc2, loc3, loc9[int(loc11 + 10)], 9, 38016083);
  3616. loc3 = gg(loc3, loc4, loc1, loc2, loc9[int(loc11 + 15)], 14, -660478335);
  3617. loc2 = gg(loc2, loc3, loc4, loc1, loc9[int(loc11 + 4)], 20, -405537848);
  3618. loc1 = gg(loc1, loc2, loc3, loc4, loc9[int(loc11 + 9)], 5, 568446438);
  3619. loc4 = gg(loc4, loc1, loc2, loc3, loc9[int(loc11 + 14)], 9, -1019803690);
  3620. loc3 = gg(loc3, loc4, loc1, loc2, loc9[int(loc11 + 3)], 14, -187363961);
  3621. loc2 = gg(loc2, loc3, loc4, loc1, loc9[int(loc11 + 8)], 20, 1163531501);
  3622. loc1 = gg(loc1, loc2, loc3, loc4, loc9[int(loc11 + 13)], 5, -1444681467);
  3623. loc4 = gg(loc4, loc1, loc2, loc3, loc9[int(loc11 + 2)], 9, -51403784);
  3624. loc3 = gg(loc3, loc4, loc1, loc2, loc9[int(loc11 + 7)], 14, 1735328473);
  3625. loc2 = gg(loc2, loc3, loc4, loc1, loc9[int(loc11 + 12)], 20, -1926607734);
  3626. loc1 = hh(loc1, loc2, loc3, loc4, loc9[int(loc11 + 5)], 4, -378558);
  3627. loc4 = hh(loc4, loc1, loc2, loc3, loc9[int(loc11 + 8)], 11, -2022574463);
  3628. loc3 = hh(loc3, loc4, loc1, loc2, loc9[int(loc11 + 11)], 16, 1839030562);
  3629. loc2 = hh(loc2, loc3, loc4, loc1, loc9[int(loc11 + 14)], 23, -35309556);
  3630. loc1 = hh(loc1, loc2, loc3, loc4, loc9[int(loc11 + 1)], 4, -1530992060);
  3631. loc4 = hh(loc4, loc1, loc2, loc3, loc9[int(loc11 + 4)], 11, 1272893353);
  3632. loc3 = hh(loc3, loc4, loc1, loc2, loc9[int(loc11 + 7)], 16, -155497632);
  3633. loc2 = hh(loc2, loc3, loc4, loc1, loc9[int(loc11 + 10)], 23, -1094730640);
  3634. loc1 = hh(loc1, loc2, loc3, loc4, loc9[int(loc11 + 13)], 4, 681279174);
  3635. loc4 = hh(loc4, loc1, loc2, loc3, loc9[int(loc11 + 0)], 11, -358537222);
  3636. loc3 = hh(loc3, loc4, loc1, loc2, loc9[int(loc11 + 3)], 16, -722521979);
  3637. loc2 = hh(loc2, loc3, loc4, loc1, loc9[int(loc11 + 6)], 23, 76029189);
  3638. loc1 = hh(loc1, loc2, loc3, loc4, loc9[int(loc11 + 9)], 4, -640364487);
  3639. loc4 = hh(loc4, loc1, loc2, loc3, loc9[int(loc11 + 12)], 11, -421815835);
  3640. loc3 = hh(loc3, loc4, loc1, loc2, loc9[int(loc11 + 15)], 16, 530742520);
  3641. loc2 = hh(loc2, loc3, loc4, loc1, loc9[int(loc11 + 2)], 23, -995338651);
  3642. loc1 = ii(loc1, loc2, loc3, loc4, loc9[int(loc11 + 0)], 6, -198630844);
  3643. loc4 = ii(loc4, loc1, loc2, loc3, loc9[int(loc11 + 7)], 10, 1126891415);
  3644. loc3 = ii(loc3, loc4, loc1, loc2, loc9[int(loc11 + 14)], 15, -1416354905);
  3645. loc2 = ii(loc2, loc3, loc4, loc1, loc9[int(loc11 + 5)], 21, -57434055);
  3646. loc1 = ii(loc1, loc2, loc3, loc4, loc9[int(loc11 + 12)], 6, 1700485571);
  3647. loc4 = ii(loc4, loc1, loc2, loc3, loc9[int(loc11 + 3)], 10, -1894986606);
  3648. loc3 = ii(loc3, loc4, loc1, loc2, loc9[int(loc11 + 10)], 15, -1051523);
  3649. loc2 = ii(loc2, loc3, loc4, loc1, loc9[int(loc11 + 1)], 21, -2054922799);
  3650. loc1 = ii(loc1, loc2, loc3, loc4, loc9[int(loc11 + 8)], 6, 1873313359);
  3651. loc4 = ii(loc4, loc1, loc2, loc3, loc9[int(loc11 + 15)], 10, -30611744);
  3652. loc3 = ii(loc3, loc4, loc1, loc2, loc9[int(loc11 + 6)], 15, -1560198380);
  3653. loc2 = ii(loc2, loc3, loc4, loc1, loc9[int(loc11 + 13)], 21, 1309151649);
  3654. loc1 = ii(loc1, loc2, loc3, loc4, loc9[int(loc11 + 4)], 6, -145523070);
  3655. loc4 = ii(loc4, loc1, loc2, loc3, loc9[int(loc11 + 11)], 10, -1120210379);
  3656. loc3 = ii(loc3, loc4, loc1, loc2, loc9[int(loc11 + 2)], 15, 718787259);
  3657. loc2 = ii(loc2, loc3, loc4, loc1, loc9[int(loc11 + 9)], 21, -343485551);
  3658. loc1 = loc1 + loc5;
  3659. loc2 = loc2 + loc6;
  3660. loc3 = loc3 + loc7;
  3661. loc4 = loc4 + loc8;
  3662. loc11 = loc11 + 16;
  3663. }
  3664. digest = new ByteArray();
  3665. digest.writeInt(loc1);
  3666. digest.writeInt(loc2);
  3667. digest.writeInt(loc3);
  3668. digest.writeInt(loc4);
  3669. digest.position = 0;
  3670. return IntUtil.toHex(loc1) + IntUtil.toHex(loc2) + IntUtil.toHex(loc3) + IntUtil.toHex(loc4);
  3671. }
  3672.  
  3673. internal static function gg(arg1:int, arg2:int, arg3:int, arg4:int, arg5:int, arg6:int, arg7:int):int
  3674. {
  3675. return transform(g, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
  3676. }
  3677.  
  3678. internal static function ii(arg1:int, arg2:int, arg3:int, arg4:int, arg5:int, arg6:int, arg7:int):int
  3679. {
  3680. return transform(i, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
  3681. }
  3682.  
  3683. public static function hashBytes(arg1:flash.utils.ByteArray):String
  3684. {
  3685. return hashBinary(arg1);
  3686. }
  3687.  
  3688. public static var digest:flash.utils.ByteArray;
  3689. }
  3690. }
  3691.  
  3692.  
  3693. // package utils
  3694. // class IntUtil
  3695. package com.adobe.utils
  3696. {
  3697. public class IntUtil extends Object
  3698. {
  3699. public function IntUtil()
  3700. {
  3701. super();
  3702. return;
  3703. }
  3704.  
  3705. public static function toHex(arg1:int, arg2:Boolean=false):String
  3706. {
  3707. var loc2:*=0;
  3708. var loc3:*=0;
  3709. var loc1:*="";
  3710. if (arg2)
  3711. {
  3712. loc2 = 0;
  3713. while (loc2 < 4)
  3714. {
  3715. loc1 = loc1 + (hexChars.charAt(arg1 >> (3 - loc2) * 8 + 4 & 15) + hexChars.charAt(arg1 >> (3 - loc2) * 8 & 15));
  3716. ++loc2;
  3717. }
  3718. }
  3719. else
  3720. {
  3721. loc3 = 0;
  3722. while (loc3 < 4)
  3723. {
  3724. loc1 = loc1 + (hexChars.charAt(arg1 >> loc3 * 8 + 4 & 15) + hexChars.charAt(arg1 >> loc3 * 8 & 15));
  3725. ++loc3;
  3726. }
  3727. }
  3728. return loc1;
  3729. }
  3730.  
  3731. public static function ror(arg1:int, arg2:int):uint
  3732. {
  3733. var loc1:*=32 - arg2;
  3734. return arg1 << loc1 | arg1 >>> 32 - loc1;
  3735. }
  3736.  
  3737. public static function rol(arg1:int, arg2:int):int
  3738. {
  3739. return arg1 << arg2 | arg1 >>> 32 - arg2;
  3740. }
  3741.  
  3742.  
  3743. {
  3744. hexChars = "0123456789abcdef";
  3745. }
  3746.  
  3747. internal static var hexChars:String="0123456789abcdef";
  3748. }
  3749. }
  3750.  
  3751.  
  3752. // package hurlant
  3753. // package crypto
  3754. // package hash
  3755. // class HMAC
  3756. package com.hurlant.crypto.hash
  3757. {
  3758. import flash.utils.*;
  3759.  
  3760. public class HMAC extends Object
  3761. {
  3762. public function HMAC(arg1:com.hurlant.crypto.hash.IHash, arg2:uint=0)
  3763. {
  3764. super();
  3765. this.hash = arg1;
  3766. this.bits = arg2;
  3767. return;
  3768. }
  3769.  
  3770. public function toString():String
  3771. {
  3772. return "hmac-" + (bits > 0 ? bits + "-" : "") + hash.toString();
  3773. }
  3774.  
  3775. public function getHashSize():uint
  3776. {
  3777. if (bits != 0)
  3778. {
  3779. return bits / 8;
  3780. }
  3781. return hash.getHashSize();
  3782. }
  3783.  
  3784. public function compute(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray):flash.utils.ByteArray
  3785. {
  3786. var loc1:*=null;
  3787. if (arg1.length > hash.getInputSize())
  3788. {
  3789. loc1 = hash.hash(arg1);
  3790. }
  3791. else
  3792. {
  3793. loc1 = new ByteArray();
  3794. loc1.writeBytes(arg1);
  3795. }
  3796. while (loc1.length < hash.getInputSize())
  3797. {
  3798. loc1[loc1.length] = 0;
  3799. }
  3800. var loc2:*=new ByteArray();
  3801. var loc3:*=new ByteArray();
  3802. var loc4:*=0;
  3803. while (loc4 < loc1.length)
  3804. {
  3805. loc2[loc4] = loc1[loc4] ^ 54;
  3806. loc3[loc4] = loc1[loc4] ^ 92;
  3807. ++loc4;
  3808. }
  3809. loc2.position = loc1.length;
  3810. loc2.writeBytes(arg2);
  3811. var loc5:*=hash.hash(loc2);
  3812. loc3.position = loc1.length;
  3813. loc3.writeBytes(loc5);
  3814. var loc6:*=hash.hash(loc3);
  3815. if (bits > 0 && bits < 8 * loc6.length)
  3816. {
  3817. loc6.length = bits / 8;
  3818. }
  3819. return loc6;
  3820. }
  3821.  
  3822. public function dispose():void
  3823. {
  3824. hash = null;
  3825. bits = 0;
  3826. return;
  3827. }
  3828.  
  3829. internal var bits:uint;
  3830.  
  3831. internal var hash:com.hurlant.crypto.hash.IHash;
  3832. }
  3833. }
  3834.  
  3835.  
  3836. // class IHash
  3837. package com.hurlant.crypto.hash
  3838. {
  3839. import flash.utils.*;
  3840.  
  3841. public interface IHash
  3842. {
  3843. function toString():String;
  3844.  
  3845. function getHashSize():uint;
  3846.  
  3847. function getInputSize():uint;
  3848.  
  3849. function hash(arg1:flash.utils.ByteArray):flash.utils.ByteArray;
  3850. }
  3851. }
  3852.  
  3853.  
  3854. // class MD2
  3855. package com.hurlant.crypto.hash
  3856. {
  3857. import flash.utils.*;
  3858.  
  3859. public class MD2 extends Object implements IHash
  3860. {
  3861. public function MD2()
  3862. {
  3863. super();
  3864. return;
  3865. }
  3866.  
  3867. public function toString():String
  3868. {
  3869. return "md2";
  3870. }
  3871.  
  3872. public function getInputSize():uint
  3873. {
  3874. return 16;
  3875. }
  3876.  
  3877. public function getHashSize():uint
  3878. {
  3879. return HASH_SIZE;
  3880. }
  3881.  
  3882. public function hash(arg1:flash.utils.ByteArray):flash.utils.ByteArray
  3883. {
  3884. var loc7:*=0;
  3885. var loc8:*=0;
  3886. var loc9:*=0;
  3887. var loc1:*=arg1.length;
  3888. var loc2:*=16 - arg1.length % 16 || 16;
  3889. do
  3890. {
  3891. arg1[arg1.length] = loc2;
  3892. }
  3893. while (arg1.length % 16 != 0);
  3894. var loc3:*=arg1.length;
  3895. var loc4:*=new ByteArray();
  3896. var loc5:*=0;
  3897. loc2 = 0;
  3898. while (loc2 < loc3)
  3899. {
  3900. loc7 = 0;
  3901. while (loc7 < 16)
  3902. {
  3903. var loc10:*;
  3904. loc4[loc7] = loc10 = loc4[loc7] ^ S[arg1[loc2 + loc7] ^ loc5];
  3905. loc5 = loc10;
  3906. ++loc7;
  3907. }
  3908. loc2 = loc2 + 16;
  3909. }
  3910. arg1.position = arg1.length;
  3911. arg1.writeBytes(loc4);
  3912. loc3 = loc3 + 16;
  3913. var loc6:*=new ByteArray();
  3914. loc2 = 0;
  3915. while (loc2 < loc3)
  3916. {
  3917. loc7 = 0;
  3918. while (loc7 < 16)
  3919. {
  3920. loc6[16 + loc7] = loc10 = arg1[loc2 + loc7];
  3921. loc6[32 + loc7] = loc10 ^ loc6[loc7];
  3922. ++loc7;
  3923. }
  3924. loc8 = 0;
  3925. loc7 = 0;
  3926. while (loc7 < 18)
  3927. {
  3928. loc9 = 0;
  3929. while (loc9 < 48)
  3930. {
  3931. loc8 = loc10 = loc6[loc9] ^ S[loc8];
  3932. loc6[loc9] = loc10;
  3933. ++loc9;
  3934. }
  3935. loc8 = loc8 + loc7 & 255;
  3936. ++loc7;
  3937. }
  3938. loc2 = loc2 + 16;
  3939. }
  3940. loc6.length = 16;
  3941. arg1.length = loc1;
  3942. return loc6;
  3943. }
  3944.  
  3945. public static const HASH_SIZE:int=16;
  3946.  
  3947. internal static const S:Array=[41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, 138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251, 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, 181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210, 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, 203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228, 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, 31, 26, 219, 153, 141, 51, 159, 17, 131, 20];
  3948. }
  3949. }
  3950.  
  3951.  
  3952. // class MD5
  3953. package com.hurlant.crypto.hash
  3954. {
  3955. import flash.utils.*;
  3956.  
  3957. public class MD5 extends Object implements IHash
  3958. {
  3959. public function MD5()
  3960. {
  3961. super();
  3962. return;
  3963. }
  3964.  
  3965. internal function ff(arg1:uint, arg2:uint, arg3:uint, arg4:uint, arg5:uint, arg6:uint, arg7:uint):uint
  3966. {
  3967. return cmn(arg2 & arg3 | ~arg2 & arg4, arg1, arg2, arg5, arg6, arg7);
  3968. }
  3969.  
  3970. internal function cmn(arg1:uint, arg2:uint, arg3:uint, arg4:uint, arg5:uint, arg6:uint):uint
  3971. {
  3972. return rol(arg2 + arg1 + arg4 + arg6, arg5) + arg3;
  3973. }
  3974.  
  3975. internal function hh(arg1:uint, arg2:uint, arg3:uint, arg4:uint, arg5:uint, arg6:uint, arg7:uint):uint
  3976. {
  3977. return cmn(arg2 ^ arg3 ^ arg4, arg1, arg2, arg5, arg6, arg7);
  3978. }
  3979.  
  3980. public function getHashSize():uint
  3981. {
  3982. return HASH_SIZE;
  3983. }
  3984.  
  3985. public function hash(arg1:flash.utils.ByteArray):flash.utils.ByteArray
  3986. {
  3987. var loc1:*=arg1.length * 8;
  3988. var loc2:*=arg1.endian;
  3989. while (arg1.length % 4 != 0)
  3990. {
  3991. arg1[arg1.length] = 0;
  3992. }
  3993. arg1.position = 0;
  3994. var loc3:*=[];
  3995. arg1.endian = Endian.LITTLE_ENDIAN;
  3996. var loc4:*=0;
  3997. while (loc4 < arg1.length)
  3998. {
  3999. loc3.push(arg1.readUnsignedInt());
  4000. loc4 = loc4 + 4;
  4001. }
  4002. var loc5:*=core_md5(loc3, loc1);
  4003. var loc6:*;
  4004. (loc6 = new ByteArray()).endian = Endian.LITTLE_ENDIAN;
  4005. loc4 = 0;
  4006. while (loc4 < 4)
  4007. {
  4008. loc6.writeUnsignedInt(loc5[loc4]);
  4009. ++loc4;
  4010. }
  4011. arg1.length = loc1 / 8;
  4012. arg1.endian = loc2;
  4013. return loc6;
  4014. }
  4015.  
  4016. internal function gg(arg1:uint, arg2:uint, arg3:uint, arg4:uint, arg5:uint, arg6:uint, arg7:uint):uint
  4017. {
  4018. return cmn(arg2 & arg4 | arg3 & ~arg4, arg1, arg2, arg5, arg6, arg7);
  4019. }
  4020.  
  4021. public function toString():String
  4022. {
  4023. return "md5";
  4024. }
  4025.  
  4026. public function getInputSize():uint
  4027. {
  4028. return 64;
  4029. }
  4030.  
  4031. internal function rol(arg1:uint, arg2:uint):uint
  4032. {
  4033. return arg1 << arg2 | arg1 >>> 32 - arg2;
  4034. }
  4035.  
  4036. internal function ii(arg1:uint, arg2:uint, arg3:uint, arg4:uint, arg5:uint, arg6:uint, arg7:uint):uint
  4037. {
  4038. return cmn(arg3 ^ (arg2 | ~arg4), arg1, arg2, arg5, arg6, arg7);
  4039. }
  4040.  
  4041. internal function core_md5(arg1:Array, arg2:uint):Array
  4042. {
  4043. var loc6:*=0;
  4044. var loc7:*=0;
  4045. var loc8:*=0;
  4046. var loc9:*=0;
  4047. arg1[arg2 >> 5] = arg1[arg2 >> 5] | 128 << arg2 % 32;
  4048. arg1[(arg2 + 64 >>> 9 << 4) + 14] = arg2;
  4049. var loc1:*=1732584193;
  4050. var loc2:*=4023233417;
  4051. var loc3:*=2562383102;
  4052. var loc4:*=271733878;
  4053. var loc5:*=0;
  4054. while (loc5 < arg1.length)
  4055. {
  4056. arg1[loc5] = arg1[loc5] || 0;
  4057. arg1[loc5 + 1] = arg1[loc5 + 1] || 0;
  4058. arg1[loc5 + 2] = arg1[loc5 + 2] || 0;
  4059. arg1[loc5 + 3] = arg1[loc5 + 3] || 0;
  4060. arg1[loc5 + 4] = arg1[loc5 + 4] || 0;
  4061. arg1[loc5 + 5] = arg1[loc5 + 5] || 0;
  4062. arg1[loc5 + 6] = arg1[loc5 + 6] || 0;
  4063. arg1[loc5 + 7] = arg1[loc5 + 7] || 0;
  4064. arg1[loc5 + 8] = arg1[loc5 + 8] || 0;
  4065. arg1[loc5 + 9] = arg1[loc5 + 9] || 0;
  4066. arg1[loc5 + 10] = arg1[loc5 + 10] || 0;
  4067. arg1[loc5 + 11] = arg1[loc5 + 11] || 0;
  4068. arg1[loc5 + 12] = arg1[loc5 + 12] || 0;
  4069. arg1[loc5 + 13] = arg1[loc5 + 13] || 0;
  4070. arg1[loc5 + 14] = arg1[loc5 + 14] || 0;
  4071. arg1[loc5 + 15] = arg1[loc5 + 15] || 0;
  4072. loc6 = loc1;
  4073. loc7 = loc2;
  4074. loc8 = loc3;
  4075. loc9 = loc4;
  4076. loc1 = ff(loc1, loc2, loc3, loc4, arg1[loc5 + 0], 7, 3614090360);
  4077. loc4 = ff(loc4, loc1, loc2, loc3, arg1[loc5 + 1], 12, 3905402710);
  4078. loc3 = ff(loc3, loc4, loc1, loc2, arg1[loc5 + 2], 17, 606105819);
  4079. loc2 = ff(loc2, loc3, loc4, loc1, arg1[loc5 + 3], 22, 3250441966);
  4080. loc1 = ff(loc1, loc2, loc3, loc4, arg1[loc5 + 4], 7, 4118548399);
  4081. loc4 = ff(loc4, loc1, loc2, loc3, arg1[loc5 + 5], 12, 1200080426);
  4082. loc3 = ff(loc3, loc4, loc1, loc2, arg1[loc5 + 6], 17, 2821735955);
  4083. loc2 = ff(loc2, loc3, loc4, loc1, arg1[loc5 + 7], 22, 4249261313);
  4084. loc1 = ff(loc1, loc2, loc3, loc4, arg1[loc5 + 8], 7, 1770035416);
  4085. loc4 = ff(loc4, loc1, loc2, loc3, arg1[loc5 + 9], 12, 2336552879);
  4086. loc3 = ff(loc3, loc4, loc1, loc2, arg1[loc5 + 10], 17, 4294925233);
  4087. loc2 = ff(loc2, loc3, loc4, loc1, arg1[loc5 + 11], 22, 2304563134);
  4088. loc1 = ff(loc1, loc2, loc3, loc4, arg1[loc5 + 12], 7, 1804603682);
  4089. loc4 = ff(loc4, loc1, loc2, loc3, arg1[loc5 + 13], 12, 4254626195);
  4090. loc3 = ff(loc3, loc4, loc1, loc2, arg1[loc5 + 14], 17, 2792965006);
  4091. loc2 = ff(loc2, loc3, loc4, loc1, arg1[loc5 + 15], 22, 1236535329);
  4092. loc1 = gg(loc1, loc2, loc3, loc4, arg1[loc5 + 1], 5, 4129170786);
  4093. loc4 = gg(loc4, loc1, loc2, loc3, arg1[loc5 + 6], 9, 3225465664);
  4094. loc3 = gg(loc3, loc4, loc1, loc2, arg1[loc5 + 11], 14, 643717713);
  4095. loc2 = gg(loc2, loc3, loc4, loc1, arg1[loc5 + 0], 20, 3921069994);
  4096. loc1 = gg(loc1, loc2, loc3, loc4, arg1[loc5 + 5], 5, 3593408605);
  4097. loc4 = gg(loc4, loc1, loc2, loc3, arg1[loc5 + 10], 9, 38016083);
  4098. loc3 = gg(loc3, loc4, loc1, loc2, arg1[loc5 + 15], 14, 3634488961);
  4099. loc2 = gg(loc2, loc3, loc4, loc1, arg1[loc5 + 4], 20, 3889429448);
  4100. loc1 = gg(loc1, loc2, loc3, loc4, arg1[loc5 + 9], 5, 568446438);
  4101. loc4 = gg(loc4, loc1, loc2, loc3, arg1[loc5 + 14], 9, 3275163606);
  4102. loc3 = gg(loc3, loc4, loc1, loc2, arg1[loc5 + 3], 14, 4107603335);
  4103. loc2 = gg(loc2, loc3, loc4, loc1, arg1[loc5 + 8], 20, 1163531501);
  4104. loc1 = gg(loc1, loc2, loc3, loc4, arg1[loc5 + 13], 5, 2850285829);
  4105. loc4 = gg(loc4, loc1, loc2, loc3, arg1[loc5 + 2], 9, 4243563512);
  4106. loc3 = gg(loc3, loc4, loc1, loc2, arg1[loc5 + 7], 14, 1735328473);
  4107. loc2 = gg(loc2, loc3, loc4, loc1, arg1[loc5 + 12], 20, 2368359562);
  4108. loc1 = hh(loc1, loc2, loc3, loc4, arg1[loc5 + 5], 4, 4294588738);
  4109. loc4 = hh(loc4, loc1, loc2, loc3, arg1[loc5 + 8], 11, 2272392833);
  4110. loc3 = hh(loc3, loc4, loc1, loc2, arg1[loc5 + 11], 16, 1839030562);
  4111. loc2 = hh(loc2, loc3, loc4, loc1, arg1[loc5 + 14], 23, 4259657740);
  4112. loc1 = hh(loc1, loc2, loc3, loc4, arg1[loc5 + 1], 4, 2763975236);
  4113. loc4 = hh(loc4, loc1, loc2, loc3, arg1[loc5 + 4], 11, 1272893353);
  4114. loc3 = hh(loc3, loc4, loc1, loc2, arg1[loc5 + 7], 16, 4139469664);
  4115. loc2 = hh(loc2, loc3, loc4, loc1, arg1[loc5 + 10], 23, 3200236656);
  4116. loc1 = hh(loc1, loc2, loc3, loc4, arg1[loc5 + 13], 4, 681279174);
  4117. loc4 = hh(loc4, loc1, loc2, loc3, arg1[loc5 + 0], 11, 3936430074);
  4118. loc3 = hh(loc3, loc4, loc1, loc2, arg1[loc5 + 3], 16, 3572445317);
  4119. loc2 = hh(loc2, loc3, loc4, loc1, arg1[loc5 + 6], 23, 76029189);
  4120. loc1 = hh(loc1, loc2, loc3, loc4, arg1[loc5 + 9], 4, 3654602809);
  4121. loc4 = hh(loc4, loc1, loc2, loc3, arg1[loc5 + 12], 11, 3873151461);
  4122. loc3 = hh(loc3, loc4, loc1, loc2, arg1[loc5 + 15], 16, 530742520);
  4123. loc2 = hh(loc2, loc3, loc4, loc1, arg1[loc5 + 2], 23, 3299628645);
  4124. loc1 = ii(loc1, loc2, loc3, loc4, arg1[loc5 + 0], 6, 4096336452);
  4125. loc4 = ii(loc4, loc1, loc2, loc3, arg1[loc5 + 7], 10, 1126891415);
  4126. loc3 = ii(loc3, loc4, loc1, loc2, arg1[loc5 + 14], 15, 2878612391);
  4127. loc2 = ii(loc2, loc3, loc4, loc1, arg1[loc5 + 5], 21, 4237533241);
  4128. loc1 = ii(loc1, loc2, loc3, loc4, arg1[loc5 + 12], 6, 1700485571);
  4129. loc4 = ii(loc4, loc1, loc2, loc3, arg1[loc5 + 3], 10, 2399980690);
  4130. loc3 = ii(loc3, loc4, loc1, loc2, arg1[loc5 + 10], 15, 4293915773);
  4131. loc2 = ii(loc2, loc3, loc4, loc1, arg1[loc5 + 1], 21, 2240044497);
  4132. loc1 = ii(loc1, loc2, loc3, loc4, arg1[loc5 + 8], 6, 1873313359);
  4133. loc4 = ii(loc4, loc1, loc2, loc3, arg1[loc5 + 15], 10, 4264355552);
  4134. loc3 = ii(loc3, loc4, loc1, loc2, arg1[loc5 + 6], 15, 2734768916);
  4135. loc2 = ii(loc2, loc3, loc4, loc1, arg1[loc5 + 13], 21, 1309151649);
  4136. loc1 = ii(loc1, loc2, loc3, loc4, arg1[loc5 + 4], 6, 4149444226);
  4137. loc4 = ii(loc4, loc1, loc2, loc3, arg1[loc5 + 11], 10, 3174756917);
  4138. loc3 = ii(loc3, loc4, loc1, loc2, arg1[loc5 + 2], 15, 718787259);
  4139. loc2 = ii(loc2, loc3, loc4, loc1, arg1[loc5 + 9], 21, 3951481745);
  4140. loc1 = loc1 + loc6;
  4141. loc2 = loc2 + loc7;
  4142. loc3 = loc3 + loc8;
  4143. loc4 = loc4 + loc9;
  4144. loc5 = loc5 + 16;
  4145. }
  4146. return [loc1, loc2, loc3, loc4];
  4147. }
  4148.  
  4149. public static const HASH_SIZE:int=16;
  4150. }
  4151. }
  4152.  
  4153.  
  4154. // class SHA1
  4155. package com.hurlant.crypto.hash
  4156. {
  4157. public class SHA1 extends com.hurlant.crypto.hash.SHABase implements IHash
  4158. {
  4159. public function SHA1()
  4160. {
  4161. super();
  4162. return;
  4163. }
  4164.  
  4165. public override function toString():String
  4166. {
  4167. return "sha1";
  4168. }
  4169.  
  4170. protected override function core(arg1:Array, arg2:uint):Array
  4171. {
  4172. var loc8:*=0;
  4173. var loc9:*=0;
  4174. var loc10:*=0;
  4175. var loc11:*=0;
  4176. var loc12:*=0;
  4177. var loc13:*=0;
  4178. var loc14:*=0;
  4179. arg1[arg2 >> 5] = arg1[arg2 >> 5] | 128 << 24 - arg2 % 32;
  4180. arg1[(arg2 + 64 >> 9 << 4) + 15] = arg2;
  4181. var loc1:*=[];
  4182. var loc2:*=1732584193;
  4183. var loc3:*=4023233417;
  4184. var loc4:*=2562383102;
  4185. var loc5:*=271733878;
  4186. var loc6:*=3285377520;
  4187. var loc7:*=0;
  4188. while (loc7 < arg1.length)
  4189. {
  4190. loc8 = loc2;
  4191. loc9 = loc3;
  4192. loc10 = loc4;
  4193. loc11 = loc5;
  4194. loc12 = loc6;
  4195. loc13 = 0;
  4196. while (loc13 < 80)
  4197. {
  4198. if (loc13 < 16)
  4199. {
  4200. loc1[loc13] = arg1[loc7 + loc13] || 0;
  4201. }
  4202. else
  4203. {
  4204. loc1[loc13] = rol(loc1[loc13 - 3] ^ loc1[loc13 - 8] ^ loc1[loc13 - 14] ^ loc1[loc13 - 16], 1);
  4205. }
  4206. loc14 = rol(loc2, 5) + ft(loc13, loc3, loc4, loc5) + loc6 + loc1[loc13] + kt(loc13);
  4207. loc6 = loc5;
  4208. loc5 = loc4;
  4209. loc4 = rol(loc3, 30);
  4210. loc3 = loc2;
  4211. loc2 = loc14;
  4212. ++loc13;
  4213. }
  4214. loc2 = loc2 + loc8;
  4215. loc3 = loc3 + loc9;
  4216. loc4 = loc4 + loc10;
  4217. loc5 = loc5 + loc11;
  4218. loc6 = loc6 + loc12;
  4219. loc7 = loc7 + 16;
  4220. }
  4221. return [loc2, loc3, loc4, loc5, loc6];
  4222. }
  4223.  
  4224. internal function kt(arg1:uint):uint
  4225. {
  4226. return arg1 < 20 ? 1518500249 : arg1 < 40 ? 1859775393 : arg1 < 60 ? 2400959708 : 3395469782;
  4227. }
  4228.  
  4229. public override function getHashSize():uint
  4230. {
  4231. return HASH_SIZE;
  4232. }
  4233.  
  4234. internal function ft(arg1:uint, arg2:uint, arg3:uint, arg4:uint):uint
  4235. {
  4236. if (arg1 < 20)
  4237. {
  4238. return arg2 & arg3 | ~arg2 & arg4;
  4239. }
  4240. if (arg1 < 40)
  4241. {
  4242. return arg2 ^ arg3 ^ arg4;
  4243. }
  4244. if (arg1 < 60)
  4245. {
  4246. return arg2 & arg3 | arg2 & arg4 | arg3 & arg4;
  4247. }
  4248. return arg2 ^ arg3 ^ arg4;
  4249. }
  4250.  
  4251. internal function rol(arg1:uint, arg2:uint):uint
  4252. {
  4253. return arg1 << arg2 | arg1 >>> 32 - arg2;
  4254. }
  4255.  
  4256. public static const HASH_SIZE:int=20;
  4257. }
  4258. }
  4259.  
  4260.  
  4261. // class SHA224
  4262. package com.hurlant.crypto.hash
  4263. {
  4264. public class SHA224 extends com.hurlant.crypto.hash.SHA256
  4265. {
  4266. public function SHA224()
  4267. {
  4268. super();
  4269. h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428];
  4270. return;
  4271. }
  4272.  
  4273. public override function getHashSize():uint
  4274. {
  4275. return 28;
  4276. }
  4277.  
  4278. public override function toString():String
  4279. {
  4280. return "sha224";
  4281. }
  4282. }
  4283. }
  4284.  
  4285.  
  4286. // class SHA256
  4287. package com.hurlant.crypto.hash
  4288. {
  4289. public class SHA256 extends com.hurlant.crypto.hash.SHABase implements IHash
  4290. {
  4291. public function SHA256()
  4292. {
  4293. h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225];
  4294. super();
  4295. return;
  4296. }
  4297.  
  4298. public override function toString():String
  4299. {
  4300. return "sha256";
  4301. }
  4302.  
  4303. public override function getHashSize():uint
  4304. {
  4305. return 32;
  4306. }
  4307.  
  4308. protected function rrol(arg1:uint, arg2:uint):uint
  4309. {
  4310. return arg1 << 32 - arg2 | arg1 >>> arg2;
  4311. }
  4312.  
  4313. protected override function core(arg1:Array, arg2:uint):Array
  4314. {
  4315. var loc9:*=0;
  4316. var loc11:*=0;
  4317. var loc12:*=0;
  4318. var loc13:*=0;
  4319. var loc14:*=0;
  4320. var loc15:*=0;
  4321. var loc16:*=0;
  4322. var loc17:*=0;
  4323. var loc18:*=0;
  4324. var loc19:*=0;
  4325. var loc20:*=0;
  4326. var loc21:*=0;
  4327. var loc22:*=0;
  4328. var loc23:*=0;
  4329. arg1[arg2 >> 5] = arg1[arg2 >> 5] | 128 << 24 - arg2 % 32;
  4330. arg1[(arg2 + 64 >> 9 << 4) + 15] = arg2;
  4331. var loc1:*=[];
  4332. var loc2:*=loc9[0];
  4333. var loc3:*=loc9[1];
  4334. var loc4:*=loc9[2];
  4335. var loc5:*=loc9[3];
  4336. var loc6:*=loc9[4];
  4337. var loc7:*=loc9[5];
  4338. var loc8:*=loc9[6];
  4339. loc9 = loc9[7];
  4340. var loc10:*=0;
  4341. while (loc10 < arg1.length)
  4342. {
  4343. loc11 = loc2;
  4344. loc12 = loc3;
  4345. loc13 = loc4;
  4346. loc14 = loc5;
  4347. loc15 = loc6;
  4348. loc16 = loc7;
  4349. loc17 = loc8;
  4350. loc18 = loc9;
  4351. loc19 = 0;
  4352. while (loc19 < 64)
  4353. {
  4354. if (loc19 < 16)
  4355. {
  4356. loc1[loc19] = arg1[loc10 + loc19] || 0;
  4357. }
  4358. else
  4359. {
  4360. loc22 = rrol(loc1[loc19 - 15], 7) ^ rrol(loc1[loc19 - 15], 18) ^ loc1[loc19 - 15] >>> 3;
  4361. loc23 = rrol(loc1[loc19 - 2], 17) ^ rrol(loc1[loc19 - 2], 19) ^ loc1[loc19 - 2] >>> 10;
  4362. loc1[loc19] = loc1[loc19 - 16] + loc22 + loc1[loc19 - 7] + loc23;
  4363. }
  4364. loc20 = (rrol(loc2, 2) ^ rrol(loc2, 13) ^ rrol(loc2, 22)) + (loc2 & loc3 ^ loc2 & loc4 ^ loc3 & loc4);
  4365. loc21 = loc9 + (rrol(loc6, 6) ^ rrol(loc6, 11) ^ rrol(loc6, 25)) + (loc6 & loc7 ^ loc8 & ~loc6) + k[loc19] + loc1[loc19];
  4366. loc9 = loc8;
  4367. loc8 = loc7;
  4368. loc7 = loc6;
  4369. loc6 = loc5 + loc21;
  4370. loc5 = loc4;
  4371. loc4 = loc3;
  4372. loc3 = loc2;
  4373. loc2 = loc21 + loc20;
  4374. ++loc19;
  4375. }
  4376. loc2 = loc2 + loc11;
  4377. loc3 = loc3 + loc12;
  4378. loc4 = loc4 + loc13;
  4379. loc5 = loc5 + loc14;
  4380. loc6 = loc6 + loc15;
  4381. loc7 = loc7 + loc16;
  4382. loc8 = loc8 + loc17;
  4383. loc9 = loc9 + loc18;
  4384. loc10 = loc10 + 16;
  4385. }
  4386. return [loc2, loc3, loc4, loc5, loc6, loc7, loc8, loc9];
  4387. }
  4388.  
  4389. protected static const k:Array=[1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298];
  4390.  
  4391. protected var h:Array;
  4392. }
  4393. }
  4394.  
  4395.  
  4396. // class SHABase
  4397. package com.hurlant.crypto.hash
  4398. {
  4399. import flash.utils.*;
  4400.  
  4401. public class SHABase extends Object implements IHash
  4402. {
  4403. public function SHABase()
  4404. {
  4405. super();
  4406. return;
  4407. }
  4408.  
  4409. public function toString():String
  4410. {
  4411. return "sha";
  4412. }
  4413.  
  4414. public function getInputSize():uint
  4415. {
  4416. return 64;
  4417. }
  4418.  
  4419. public function getHashSize():uint
  4420. {
  4421. return 0;
  4422. }
  4423.  
  4424. public function hash(arg1:flash.utils.ByteArray):flash.utils.ByteArray
  4425. {
  4426. var loc1:*=arg1.length;
  4427. var loc2:*=arg1.endian;
  4428. arg1.endian = Endian.BIG_ENDIAN;
  4429. var loc3:*=loc1 * 8;
  4430. while (arg1.length % 4 != 0)
  4431. {
  4432. arg1[arg1.length] = 0;
  4433. }
  4434. arg1.position = 0;
  4435. var loc4:*=[];
  4436. var loc5:*=0;
  4437. while (loc5 < arg1.length)
  4438. {
  4439. loc4.push(arg1.readUnsignedInt());
  4440. loc5 = loc5 + 4;
  4441. }
  4442. var loc6:*=core(loc4, loc3);
  4443. var loc7:*=new ByteArray();
  4444. var loc8:*=getHashSize() / 4;
  4445. loc5 = 0;
  4446. while (loc5 < loc8)
  4447. {
  4448. loc7.writeUnsignedInt(loc6[loc5]);
  4449. ++loc5;
  4450. }
  4451. arg1.length = loc1;
  4452. arg1.endian = loc2;
  4453. return loc7;
  4454. }
  4455.  
  4456. protected function core(arg1:Array, arg2:uint):Array
  4457. {
  4458. return null;
  4459. }
  4460. }
  4461. }
  4462.  
  4463.  
  4464. // package prng
  4465. // class ARC4
  4466. package com.hurlant.crypto.prng
  4467. {
  4468. import com.hurlant.crypto.symmetric.*;
  4469. import com.hurlant.util.*;
  4470. import flash.utils.*;
  4471.  
  4472. public class ARC4 extends Object implements IPRNG, IStreamCipher
  4473. {
  4474. public function ARC4(arg1:flash.utils.ByteArray=null)
  4475. {
  4476. super();
  4477. S = new ByteArray();
  4478. if (arg1)
  4479. {
  4480. init(arg1);
  4481. }
  4482. return;
  4483. }
  4484.  
  4485. public function decrypt(arg1:flash.utils.ByteArray):void
  4486. {
  4487. encrypt(arg1);
  4488. return;
  4489. }
  4490.  
  4491. public function init(arg1:flash.utils.ByteArray):void
  4492. {
  4493. var loc1:*=0;
  4494. var loc2:*=0;
  4495. var loc3:*=0;
  4496. loc1 = 0;
  4497. while (loc1 < 256)
  4498. {
  4499. S[loc1] = loc1;
  4500. ++loc1;
  4501. }
  4502. loc2 = 0;
  4503. loc1 = 0;
  4504. while (loc1 < 256)
  4505. {
  4506. loc2 = loc2 + S[loc1] + arg1[loc1 % arg1.length] & 255;
  4507. loc3 = S[loc1];
  4508. S[loc1] = S[loc2];
  4509. S[loc2] = loc3;
  4510. ++loc1;
  4511. }
  4512. this.i = 0;
  4513. this.j = 0;
  4514. return;
  4515. }
  4516.  
  4517. public function next():uint
  4518. {
  4519. var loc1:*=0;
  4520. i = i + 1 & 255;
  4521. j = j + S[i] & 255;
  4522. loc1 = S[i];
  4523. S[i] = S[j];
  4524. S[j] = loc1;
  4525. return S[loc1 + S[i] & 255];
  4526. }
  4527.  
  4528. public function encrypt(arg1:flash.utils.ByteArray):void
  4529. {
  4530. var loc1:*=0;
  4531. while (loc1 < arg1.length)
  4532. {
  4533. var loc2:*=loc1++;
  4534. arg1[loc2] = arg1[loc2] ^ next();
  4535. }
  4536. return;
  4537. }
  4538.  
  4539. public function dispose():void
  4540. {
  4541. var loc1:*=0;
  4542. if (S != null)
  4543. {
  4544. loc1 = 0;
  4545. while (loc1 < S.length)
  4546. {
  4547. S[loc1] = Math.random() * 256;
  4548. ++loc1;
  4549. }
  4550. S.length = 0;
  4551. S = null;
  4552. }
  4553. this.i = 0;
  4554. this.j = 0;
  4555. Memory.gc();
  4556. return;
  4557. }
  4558.  
  4559. public function getBlockSize():uint
  4560. {
  4561. return 1;
  4562. }
  4563.  
  4564. public function getPoolSize():uint
  4565. {
  4566. return psize;
  4567. }
  4568.  
  4569. public function toString():String
  4570. {
  4571. return "rc4";
  4572. }
  4573.  
  4574. internal const psize:uint=256;
  4575.  
  4576. internal var S:flash.utils.ByteArray;
  4577.  
  4578. internal var i:int=0;
  4579.  
  4580. internal var j:int=0;
  4581. }
  4582. }
  4583.  
  4584.  
  4585. // class IPRNG
  4586. package com.hurlant.crypto.prng
  4587. {
  4588. import flash.utils.*;
  4589.  
  4590. public interface IPRNG
  4591. {
  4592. function init(arg1:flash.utils.ByteArray):void;
  4593.  
  4594. function next():uint;
  4595.  
  4596. function getPoolSize():uint;
  4597.  
  4598. function toString():String;
  4599.  
  4600. function dispose():void;
  4601. }
  4602. }
  4603.  
  4604.  
  4605. // class Random
  4606. package com.hurlant.crypto.prng
  4607. {
  4608. import com.hurlant.util.*;
  4609. import flash.system.*;
  4610. import flash.text.*;
  4611. import flash.utils.*;
  4612.  
  4613. public class Random extends Object
  4614. {
  4615. public function Random(arg1:Class=null)
  4616. {
  4617. var loc1:*=0;
  4618. super();
  4619. if (arg1 == null)
  4620. {
  4621. arg1 = ARC4;
  4622. }
  4623. state = new arg1() as IPRNG;
  4624. psize = state.getPoolSize();
  4625. pool = new ByteArray();
  4626. pptr = 0;
  4627. while (pptr < psize)
  4628. {
  4629. loc1 = 65536 * Math.random();
  4630. var loc3:*;
  4631. var loc2:*=pptr++;
  4632. pool[loc2] = loc1 >>> 8;
  4633. pool[loc3 = pptr++] = loc1 & 255;
  4634. }
  4635. pptr = 0;
  4636. seed();
  4637. return;
  4638. }
  4639.  
  4640. public function autoSeed():void
  4641. {
  4642. var loc3:*=null;
  4643. var loc1:*=new ByteArray();
  4644. loc1.writeUnsignedInt(System.totalMemory);
  4645. loc1.writeUTF(Capabilities.serverString);
  4646. loc1.writeUnsignedInt(getTimer());
  4647. loc1.writeUnsignedInt(new Date().getTime());
  4648. var loc2:*=Font.enumerateFonts(true);
  4649. var loc4:*=0;
  4650. var loc5:*=loc2;
  4651. for each (loc3 in loc5)
  4652. {
  4653. loc1.writeUTF(loc3.fontName);
  4654. loc1.writeUTF(loc3.fontStyle);
  4655. loc1.writeUTF(loc3.fontType);
  4656. }
  4657. loc1.position = 0;
  4658. while (loc1.bytesAvailable >= 4)
  4659. {
  4660. seed(loc1.readUnsignedInt());
  4661. }
  4662. return;
  4663. }
  4664.  
  4665. public function seed(arg1:int=0):void
  4666. {
  4667. if (arg1 == 0)
  4668. {
  4669. arg1 = new Date().getTime();
  4670. }
  4671. var loc2:*;
  4672. var loc1:*=pptr++;
  4673. pool[loc1] = pool[loc1] ^ arg1 & 255;
  4674. loc2 = pptr++;
  4675. pool[loc2] = pool[loc2] ^ arg1 >> 8 & 255;
  4676. pool[loc3 = pptr++] = pool[loc3] ^ arg1 >> 16 & 255;
  4677. pool[loc4 = pptr++] = pool[loc4] ^ arg1 >> 24 & 255;
  4678. pptr = pptr % psize;
  4679. seeded = true;
  4680. return;
  4681. }
  4682.  
  4683. public function toString():String
  4684. {
  4685. return "random-" + state.toString();
  4686. }
  4687.  
  4688. public function dispose():void
  4689. {
  4690. var loc1:*=0;
  4691. while (loc1 < pool.length)
  4692. {
  4693. pool[loc1] = Math.random() * 256;
  4694. ++loc1;
  4695. }
  4696. pool.length = 0;
  4697. pool = null;
  4698. state.dispose();
  4699. state = null;
  4700. psize = 0;
  4701. pptr = 0;
  4702. Memory.gc();
  4703. return;
  4704. }
  4705.  
  4706. public function nextBytes(arg1:flash.utils.ByteArray, arg2:int):void
  4707. {
  4708. while (arg2--)
  4709. {
  4710. arg1.writeByte(nextByte());
  4711. }
  4712. return;
  4713. }
  4714.  
  4715. public function nextByte():int
  4716. {
  4717. if (!ready)
  4718. {
  4719. if (!seeded)
  4720. {
  4721. autoSeed();
  4722. }
  4723. state.init(pool);
  4724. pool.length = 0;
  4725. pptr = 0;
  4726. ready = true;
  4727. }
  4728. return state.next();
  4729. }
  4730.  
  4731. internal var ready:Boolean=false;
  4732.  
  4733. internal var pool:flash.utils.ByteArray;
  4734.  
  4735. internal var seeded:Boolean=false;
  4736.  
  4737. internal var psize:int;
  4738.  
  4739. internal var state:com.hurlant.crypto.prng.IPRNG;
  4740.  
  4741. internal var pptr:int;
  4742. }
  4743. }
  4744.  
  4745.  
  4746. // package rsa
  4747. // class RSAKey
  4748. package com.hurlant.crypto.rsa
  4749. {
  4750. import com.hurlant.crypto.prng.*;
  4751. import com.hurlant.math.*;
  4752. import com.hurlant.util.*;
  4753. import flash.utils.*;
  4754.  
  4755. public class RSAKey extends Object
  4756. {
  4757. public function RSAKey(arg1:com.hurlant.math.BigInteger, arg2:int, arg3:com.hurlant.math.BigInteger=null, arg4:com.hurlant.math.BigInteger=null, arg5:com.hurlant.math.BigInteger=null, arg6:com.hurlant.math.BigInteger=null, arg7:com.hurlant.math.BigInteger=null, arg8:com.hurlant.math.BigInteger=null)
  4758. {
  4759. super();
  4760. this.n = arg1;
  4761. this.e = arg2;
  4762. this.d = arg3;
  4763. this.p = arg4;
  4764. this.q = arg5;
  4765. this.dmp1 = arg6;
  4766. this.dmq1 = arg7;
  4767. this.coeff = arg8;
  4768. canEncrypt = !(n == null) && !(e == 0);
  4769. canDecrypt = canEncrypt && !(d == null);
  4770. return;
  4771. }
  4772.  
  4773. public function verify(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray, arg3:uint, arg4:Function=null):void
  4774. {
  4775. _decrypt(doPublic, arg1, arg2, arg3, arg4, 1);
  4776. return;
  4777. }
  4778.  
  4779. protected function doPrivate2(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  4780. {
  4781. if (p == null && q == null)
  4782. {
  4783. return arg1.modPow(d, n);
  4784. }
  4785. var loc1:*=arg1.mod(p).modPow(dmp1, p);
  4786. var loc2:*=arg1.mod(q).modPow(dmq1, q);
  4787. while (loc1.compareTo(loc2) < 0)
  4788. {
  4789. loc1 = loc1.add(p);
  4790. }
  4791. var loc3:*;
  4792. return loc3 = loc1.subtract(loc2).multiply(coeff).mod(p).multiply(q).add(loc2);
  4793. }
  4794.  
  4795. public function dump():String
  4796. {
  4797. var loc1:*="N=" + n.toString(16) + "\n" + "E=" + e.toString(16) + "\n";
  4798. if (canDecrypt)
  4799. {
  4800. loc1 = loc1 + ("D=" + d.toString(16) + "\n");
  4801. if (!(p == null) && !(q == null))
  4802. {
  4803. loc1 = loc1 + ("P=" + p.toString(16) + "\n");
  4804. loc1 = loc1 + ("Q=" + q.toString(16) + "\n");
  4805. loc1 = loc1 + ("DMP1=" + dmp1.toString(16) + "\n");
  4806. loc1 = loc1 + ("DMQ1=" + dmq1.toString(16) + "\n");
  4807. loc1 = loc1 + ("IQMP=" + coeff.toString(16) + "\n");
  4808. }
  4809. }
  4810. return loc1;
  4811. }
  4812.  
  4813. public function decrypt(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray, arg3:uint, arg4:Function=null):void
  4814. {
  4815. _decrypt(doPrivate2, arg1, arg2, arg3, arg4, 2);
  4816. return;
  4817. }
  4818.  
  4819. internal function _decrypt(arg1:Function, arg2:flash.utils.ByteArray, arg3:flash.utils.ByteArray, arg4:uint, arg5:Function, arg6:int):void
  4820. {
  4821. var loc3:*=null;
  4822. var loc4:*=null;
  4823. var loc5:*=null;
  4824. if (arg5 == null)
  4825. {
  4826. arg5 = pkcs1unpad;
  4827. }
  4828. if (arg2.position >= arg2.length)
  4829. {
  4830. arg2.position = 0;
  4831. }
  4832. var loc1:*=getBlockSize();
  4833. var loc2:*=arg2.position + arg4;
  4834. while (arg2.position < loc2)
  4835. {
  4836. loc3 = new BigInteger(arg2, arg4);
  4837. loc4 = arg1(loc3);
  4838. loc5 = arg5(loc4, loc1);
  4839. arg3.writeBytes(loc5);
  4840. }
  4841. return;
  4842. }
  4843.  
  4844. protected function doPublic(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  4845. {
  4846. return arg1.modPowInt(e, n);
  4847. }
  4848.  
  4849. public function dispose():void
  4850. {
  4851. e = 0;
  4852. n.dispose();
  4853. n = null;
  4854. Memory.gc();
  4855. return;
  4856. }
  4857.  
  4858. internal function _encrypt(arg1:Function, arg2:flash.utils.ByteArray, arg3:flash.utils.ByteArray, arg4:uint, arg5:Function, arg6:int):void
  4859. {
  4860. var loc3:*=null;
  4861. var loc4:*=null;
  4862. if (arg5 == null)
  4863. {
  4864. arg5 = pkcs1pad;
  4865. }
  4866. if (arg2.position >= arg2.length)
  4867. {
  4868. arg2.position = 0;
  4869. }
  4870. var loc1:*=getBlockSize();
  4871. var loc2:*=arg2.position + arg4;
  4872. while (arg2.position < loc2)
  4873. {
  4874. loc3 = new BigInteger(arg5(arg2, loc2, loc1, arg6), loc1);
  4875. (loc4 = arg1(loc3)).toArray(arg3);
  4876. }
  4877. return;
  4878. }
  4879.  
  4880. internal function rawpad(arg1:flash.utils.ByteArray, arg2:int, arg3:uint):flash.utils.ByteArray
  4881. {
  4882. return arg1;
  4883. }
  4884.  
  4885. public function encrypt(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray, arg3:uint, arg4:Function=null):void
  4886. {
  4887. _encrypt(doPublic, arg1, arg2, arg3, arg4, 2);
  4888. return;
  4889. }
  4890.  
  4891. internal function pkcs1pad(arg1:flash.utils.ByteArray, arg2:int, arg3:uint, arg4:uint=2):flash.utils.ByteArray
  4892. {
  4893. var loc5:*=0;
  4894. var loc1:*=new ByteArray();
  4895. var loc2:*=arg1.position;
  4896. arg2 = Math.min(arg2, arg1.length, loc2 + arg3 - 11);
  4897. arg1.position = arg2;
  4898. var loc3:*;
  4899. --loc3;
  4900. while (loc3 >= loc2 && arg3 > 11)
  4901. {
  4902. var loc6:*;
  4903. loc1[loc6 = --arg3] = arg1[loc3--];
  4904. }
  4905. loc1[loc6 = --arg3] = 0;
  4906. var loc4:*=new Random();
  4907. while (arg3 > 2)
  4908. {
  4909. loc5 = 0;
  4910. while (loc5 == 0)
  4911. {
  4912. loc5 = arg4 != 2 ? 255 : loc4.nextByte();
  4913. }
  4914. var loc7:*;
  4915. loc1[loc7 = --arg3] = loc5;
  4916. }
  4917. loc1[loc7 = --arg3] = arg4;
  4918. var loc8:*;
  4919. loc1[loc8 = --arg3] = 0;
  4920. return loc1;
  4921. }
  4922.  
  4923. internal function pkcs1unpad(arg1:com.hurlant.math.BigInteger, arg2:uint, arg3:uint=2):flash.utils.ByteArray
  4924. {
  4925. var loc1:*=arg1.toByteArray();
  4926. var loc2:*=new ByteArray();
  4927. var loc3:*=0;
  4928. while (loc3 < loc1.length && loc1[loc3] == 0)
  4929. {
  4930. ++loc3;
  4931. }
  4932. if (!(loc1.length - loc3 == (arg2 - 1)) || loc1[loc3] > 2)
  4933. {
  4934. trace("PKCS#1 unpad: i=" + loc3 + ", expected b[i]==[0,1,2], got b[i]=" + loc1[loc3].toString(16));
  4935. return null;
  4936. }
  4937. ++loc3;
  4938. while (loc1[loc3] != 0)
  4939. {
  4940. if (!(++loc3 >= loc1.length))
  4941. {
  4942. continue;
  4943. }
  4944. trace("PKCS#1 unpad: i=" + loc3 + ", b[i-1]!=0 (=" + loc1[(loc3 - 1)].toString(16) + ")");
  4945. return null;
  4946. }
  4947. while (++loc3 < loc1.length)
  4948. {
  4949. loc2.writeByte(loc1[loc3]);
  4950. }
  4951. loc2.position = 0;
  4952. return loc2;
  4953. }
  4954.  
  4955. public function getBlockSize():uint
  4956. {
  4957. return (n.bitLength() + 7) / 8;
  4958. }
  4959.  
  4960. public function toString():String
  4961. {
  4962. return "rsa";
  4963. }
  4964.  
  4965. public function sign(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray, arg3:uint, arg4:Function=null):void
  4966. {
  4967. _encrypt(doPrivate2, arg1, arg2, arg3, arg4, 1);
  4968. return;
  4969. }
  4970.  
  4971. protected function doPrivate(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  4972. {
  4973. if (p == null || q == null)
  4974. {
  4975. return arg1.modPow(d, n);
  4976. }
  4977. var loc1:*=arg1.mod(p).modPow(dmp1, p);
  4978. var loc2:*=arg1.mod(q).modPow(dmq1, q);
  4979. while (loc1.compareTo(loc2) < 0)
  4980. {
  4981. loc1 = loc1.add(p);
  4982. }
  4983. return loc1.subtract(loc2).multiply(coeff).mod(p).multiply(q).add(loc2);
  4984. }
  4985.  
  4986. protected static function bigRandom(arg1:int, arg2:com.hurlant.crypto.prng.Random):com.hurlant.math.BigInteger
  4987. {
  4988. if (arg1 < 2)
  4989. {
  4990. return BigInteger.nbv(1);
  4991. }
  4992. var loc1:*=new ByteArray();
  4993. arg2.nextBytes(loc1, arg1 >> 3);
  4994. loc1.position = 0;
  4995. var loc2:*;
  4996. (loc2 = new BigInteger(loc1)).primify(arg1, 1);
  4997. return loc2;
  4998. }
  4999.  
  5000. public static function parsePublicKey(arg1:String, arg2:String):com.hurlant.crypto.rsa.RSAKey
  5001. {
  5002. return new RSAKey(new BigInteger(arg1, 16), parseInt(arg2, 16));
  5003. }
  5004.  
  5005. public static function generate(arg1:uint, arg2:String):com.hurlant.crypto.rsa.RSAKey
  5006. {
  5007. var loc5:*=null;
  5008. var loc6:*=null;
  5009. var loc7:*=null;
  5010. var loc8:*=null;
  5011. var loc1:*=new Random();
  5012. var loc2:*=arg1 >> 1;
  5013. var loc3:*;
  5014. (loc3 = new RSAKey(null, 0, null)).e = parseInt(arg2, 16);
  5015. var loc4:*=new BigInteger(arg2, 16);
  5016. for (;;)
  5017. {
  5018. for (;;)
  5019. {
  5020. loc3.p = bigRandom(arg1 - loc2, loc1);
  5021. if (!(loc3.p.subtract(BigInteger.ONE).gcd(loc4).compareTo(BigInteger.ONE) == 0 && loc3.p.isProbablePrime(10)))
  5022. {
  5023. continue;
  5024. }
  5025. break;
  5026. }
  5027. for (;;)
  5028. {
  5029. loc3.q = bigRandom(loc2, loc1);
  5030. if (!(loc3.q.subtract(BigInteger.ONE).gcd(loc4).compareTo(BigInteger.ONE) == 0 && loc3.q.isProbablePrime(10)))
  5031. {
  5032. continue;
  5033. }
  5034. break;
  5035. }
  5036. if (loc3.p.compareTo(loc3.q) <= 0)
  5037. {
  5038. loc8 = loc3.p;
  5039. loc3.p = loc3.q;
  5040. loc3.q = loc8;
  5041. }
  5042. loc5 = loc3.p.subtract(BigInteger.ONE);
  5043. loc6 = loc3.q.subtract(BigInteger.ONE);
  5044. if ((loc7 = loc5.multiply(loc6)).gcd(loc4).compareTo(BigInteger.ONE) != 0)
  5045. {
  5046. continue;
  5047. }
  5048. loc3.n = loc3.p.multiply(loc3.q);
  5049. loc3.d = loc4.modInverse(loc7);
  5050. loc3.dmp1 = loc3.d.mod(loc5);
  5051. loc3.dmq1 = loc3.d.mod(loc6);
  5052. loc3.coeff = loc3.q.modInverse(loc3.p);
  5053. break;
  5054. }
  5055. return loc3;
  5056. }
  5057.  
  5058. public static function parsePrivateKey(arg1:String, arg2:String, arg3:String, arg4:String=null, arg5:String=null, arg6:String=null, arg7:String=null, arg8:String=null):com.hurlant.crypto.rsa.RSAKey
  5059. {
  5060. if (arg4 == null)
  5061. {
  5062. return new RSAKey(new BigInteger(arg1, 16), parseInt(arg2, 16), new BigInteger(arg3, 16));
  5063. }
  5064. return new RSAKey(new BigInteger(arg1, 16), parseInt(arg2, 16), new BigInteger(arg3, 16), new BigInteger(arg4, 16), new BigInteger(arg5, 16), new BigInteger(arg6, 16), new BigInteger(arg7), new BigInteger(arg8));
  5065. }
  5066.  
  5067. public var dmp1:com.hurlant.math.BigInteger;
  5068.  
  5069. protected var canDecrypt:Boolean;
  5070.  
  5071. public var d:com.hurlant.math.BigInteger;
  5072.  
  5073. public var e:int;
  5074.  
  5075. public var dmq1:com.hurlant.math.BigInteger;
  5076.  
  5077. public var n:com.hurlant.math.BigInteger;
  5078.  
  5079. public var p:com.hurlant.math.BigInteger;
  5080.  
  5081. public var q:com.hurlant.math.BigInteger;
  5082.  
  5083. protected var canEncrypt:Boolean;
  5084.  
  5085. public var coeff:com.hurlant.math.BigInteger;
  5086. }
  5087. }
  5088.  
  5089.  
  5090. // package symmetric
  5091. // class AESKey
  5092. package com.hurlant.crypto.symmetric
  5093. {
  5094. import com.hurlant.crypto.prng.*;
  5095. import com.hurlant.util.*;
  5096. import flash.utils.*;
  5097.  
  5098. public class AESKey extends Object implements ISymmetricKey
  5099. {
  5100. public function AESKey(arg1:flash.utils.ByteArray)
  5101. {
  5102. super();
  5103. if (!instance)
  5104. {
  5105. instance = this;
  5106. init();
  5107. }
  5108. tmp = new ByteArray();
  5109. state = new ByteArray();
  5110. keyLength = arg1.length;
  5111. this.key = new ByteArray();
  5112. this.key.writeBytes(arg1);
  5113. expandKey();
  5114. return;
  5115. }
  5116.  
  5117. public function toString():String
  5118. {
  5119. return "aes" + 8 * keyLength;
  5120. }
  5121.  
  5122. protected function invShiftRows():void
  5123. {
  5124. var loc1:*=0;
  5125. state[0] = InvSbox[state[0]];
  5126. state[4] = InvSbox[state[4]];
  5127. state[8] = InvSbox[state[8]];
  5128. state[12] = InvSbox[state[12]];
  5129. loc1 = InvSbox[state[13]];
  5130. state[13] = InvSbox[state[9]];
  5131. state[9] = InvSbox[state[5]];
  5132. state[5] = InvSbox[state[1]];
  5133. state[1] = loc1;
  5134. loc1 = InvSbox[state[2]];
  5135. state[2] = InvSbox[state[10]];
  5136. state[10] = loc1;
  5137. loc1 = InvSbox[state[6]];
  5138. state[6] = InvSbox[state[14]];
  5139. state[14] = loc1;
  5140. loc1 = InvSbox[state[3]];
  5141. state[3] = InvSbox[state[7]];
  5142. state[7] = InvSbox[state[11]];
  5143. state[11] = InvSbox[state[15]];
  5144. state[15] = loc1;
  5145. return;
  5146. }
  5147.  
  5148. public function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  5149. {
  5150. var loc1:*=0;
  5151. state.position = 0;
  5152. state.writeBytes(arg1, arg2, Nb * 4);
  5153. addRoundKey(key, Nr * Nb * 4);
  5154. invShiftRows();
  5155. loc1 = Nr;
  5156. while (loc1--)
  5157. {
  5158. addRoundKey(key, loc1 * Nb * 4);
  5159. if (!loc1)
  5160. {
  5161. continue;
  5162. }
  5163. invMixSubColumns();
  5164. }
  5165. arg1.position = arg2;
  5166. arg1.writeBytes(state);
  5167. return;
  5168. }
  5169.  
  5170. protected function invMixSubColumns():void
  5171. {
  5172. var loc1:*=0;
  5173. tmp.length = 0;
  5174. tmp[0] = XtimeE[state[0]] ^ XtimeB[state[1]] ^ XtimeD[state[2]] ^ Xtime9[state[3]];
  5175. tmp[5] = Xtime9[state[0]] ^ XtimeE[state[1]] ^ XtimeB[state[2]] ^ XtimeD[state[3]];
  5176. tmp[10] = XtimeD[state[0]] ^ Xtime9[state[1]] ^ XtimeE[state[2]] ^ XtimeB[state[3]];
  5177. tmp[15] = XtimeB[state[0]] ^ XtimeD[state[1]] ^ Xtime9[state[2]] ^ XtimeE[state[3]];
  5178. tmp[4] = XtimeE[state[4]] ^ XtimeB[state[5]] ^ XtimeD[state[6]] ^ Xtime9[state[7]];
  5179. tmp[9] = Xtime9[state[4]] ^ XtimeE[state[5]] ^ XtimeB[state[6]] ^ XtimeD[state[7]];
  5180. tmp[14] = XtimeD[state[4]] ^ Xtime9[state[5]] ^ XtimeE[state[6]] ^ XtimeB[state[7]];
  5181. tmp[3] = XtimeB[state[4]] ^ XtimeD[state[5]] ^ Xtime9[state[6]] ^ XtimeE[state[7]];
  5182. tmp[8] = XtimeE[state[8]] ^ XtimeB[state[9]] ^ XtimeD[state[10]] ^ Xtime9[state[11]];
  5183. tmp[13] = Xtime9[state[8]] ^ XtimeE[state[9]] ^ XtimeB[state[10]] ^ XtimeD[state[11]];
  5184. tmp[2] = XtimeD[state[8]] ^ Xtime9[state[9]] ^ XtimeE[state[10]] ^ XtimeB[state[11]];
  5185. tmp[7] = XtimeB[state[8]] ^ XtimeD[state[9]] ^ Xtime9[state[10]] ^ XtimeE[state[11]];
  5186. tmp[12] = XtimeE[state[12]] ^ XtimeB[state[13]] ^ XtimeD[state[14]] ^ Xtime9[state[15]];
  5187. tmp[1] = Xtime9[state[12]] ^ XtimeE[state[13]] ^ XtimeB[state[14]] ^ XtimeD[state[15]];
  5188. tmp[6] = XtimeD[state[12]] ^ Xtime9[state[13]] ^ XtimeE[state[14]] ^ XtimeB[state[15]];
  5189. tmp[11] = XtimeB[state[12]] ^ XtimeD[state[13]] ^ Xtime9[state[14]] ^ XtimeE[state[15]];
  5190. loc1 = 0;
  5191. while (loc1 < 4 * Nb)
  5192. {
  5193. state[loc1] = InvSbox[tmp[loc1]];
  5194. ++loc1;
  5195. }
  5196. return;
  5197. }
  5198.  
  5199. public function dispose():void
  5200. {
  5201. var loc1:*=0;
  5202. var loc2:*=new Random();
  5203. loc1 = 0;
  5204. while (loc1 < key.length)
  5205. {
  5206. key[loc1] = loc2.nextByte();
  5207. ++loc1;
  5208. }
  5209. Nr = loc2.nextByte();
  5210. loc1 = 0;
  5211. while (loc1 < state.length)
  5212. {
  5213. state[loc1] = loc2.nextByte();
  5214. ++loc1;
  5215. }
  5216. loc1 = 0;
  5217. while (loc1 < tmp.length)
  5218. {
  5219. tmp[loc1] = loc2.nextByte();
  5220. ++loc1;
  5221. }
  5222. key.length = 0;
  5223. keyLength = 0;
  5224. state.length = 0;
  5225. tmp.length = 0;
  5226. key = null;
  5227. state = null;
  5228. tmp = null;
  5229. Nr = 0;
  5230. Memory.gc();
  5231. return;
  5232. }
  5233.  
  5234.  
  5235. {
  5236. _Rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
  5237. }
  5238.  
  5239. protected function mixSubColumns():void
  5240. {
  5241. tmp.length = 0;
  5242. tmp[0] = Xtime2Sbox[state[0]] ^ Xtime3Sbox[state[5]] ^ Sbox[state[10]] ^ Sbox[state[15]];
  5243. tmp[1] = Sbox[state[0]] ^ Xtime2Sbox[state[5]] ^ Xtime3Sbox[state[10]] ^ Sbox[state[15]];
  5244. tmp[2] = Sbox[state[0]] ^ Sbox[state[5]] ^ Xtime2Sbox[state[10]] ^ Xtime3Sbox[state[15]];
  5245. tmp[3] = Xtime3Sbox[state[0]] ^ Sbox[state[5]] ^ Sbox[state[10]] ^ Xtime2Sbox[state[15]];
  5246. tmp[4] = Xtime2Sbox[state[4]] ^ Xtime3Sbox[state[9]] ^ Sbox[state[14]] ^ Sbox[state[3]];
  5247. tmp[5] = Sbox[state[4]] ^ Xtime2Sbox[state[9]] ^ Xtime3Sbox[state[14]] ^ Sbox[state[3]];
  5248. tmp[6] = Sbox[state[4]] ^ Sbox[state[9]] ^ Xtime2Sbox[state[14]] ^ Xtime3Sbox[state[3]];
  5249. tmp[7] = Xtime3Sbox[state[4]] ^ Sbox[state[9]] ^ Sbox[state[14]] ^ Xtime2Sbox[state[3]];
  5250. tmp[8] = Xtime2Sbox[state[8]] ^ Xtime3Sbox[state[13]] ^ Sbox[state[2]] ^ Sbox[state[7]];
  5251. tmp[9] = Sbox[state[8]] ^ Xtime2Sbox[state[13]] ^ Xtime3Sbox[state[2]] ^ Sbox[state[7]];
  5252. tmp[10] = Sbox[state[8]] ^ Sbox[state[13]] ^ Xtime2Sbox[state[2]] ^ Xtime3Sbox[state[7]];
  5253. tmp[11] = Xtime3Sbox[state[8]] ^ Sbox[state[13]] ^ Sbox[state[2]] ^ Xtime2Sbox[state[7]];
  5254. tmp[12] = Xtime2Sbox[state[12]] ^ Xtime3Sbox[state[1]] ^ Sbox[state[6]] ^ Sbox[state[11]];
  5255. tmp[13] = Sbox[state[12]] ^ Xtime2Sbox[state[1]] ^ Xtime3Sbox[state[6]] ^ Sbox[state[11]];
  5256. tmp[14] = Sbox[state[12]] ^ Sbox[state[1]] ^ Xtime2Sbox[state[6]] ^ Xtime3Sbox[state[11]];
  5257. tmp[15] = Xtime3Sbox[state[12]] ^ Sbox[state[1]] ^ Sbox[state[6]] ^ Xtime2Sbox[state[11]];
  5258. state.position = 0;
  5259. state.writeBytes(tmp, 0, Nb * 4);
  5260. return;
  5261. }
  5262.  
  5263. protected function shiftRows():void
  5264. {
  5265. var loc1:*=0;
  5266. state[0] = Sbox[state[0]];
  5267. state[4] = Sbox[state[4]];
  5268. state[8] = Sbox[state[8]];
  5269. state[12] = Sbox[state[12]];
  5270. loc1 = Sbox[state[1]];
  5271. state[1] = Sbox[state[5]];
  5272. state[5] = Sbox[state[9]];
  5273. state[9] = Sbox[state[13]];
  5274. state[13] = loc1;
  5275. loc1 = Sbox[state[2]];
  5276. state[2] = Sbox[state[10]];
  5277. state[10] = loc1;
  5278. loc1 = Sbox[state[6]];
  5279. state[6] = Sbox[state[14]];
  5280. state[14] = loc1;
  5281. loc1 = Sbox[state[15]];
  5282. state[15] = Sbox[state[11]];
  5283. state[11] = Sbox[state[7]];
  5284. state[7] = Sbox[state[3]];
  5285. state[3] = loc1;
  5286. return;
  5287. }
  5288.  
  5289. public function getBlockSize():uint
  5290. {
  5291. return 16;
  5292. }
  5293.  
  5294. internal static function init():void
  5295. {
  5296. Sbox = new ByteArray();
  5297. InvSbox = new ByteArray();
  5298. Xtime2Sbox = new ByteArray();
  5299. Xtime3Sbox = new ByteArray();
  5300. Xtime2 = new ByteArray();
  5301. Xtime9 = new ByteArray();
  5302. XtimeB = new ByteArray();
  5303. XtimeD = new ByteArray();
  5304. XtimeE = new ByteArray();
  5305. i = 0;
  5306. while (i < 256)
  5307. {
  5308. Sbox[i] = _Sbox[i];
  5309. InvSbox[i] = _InvSbox[i];
  5310. Xtime2Sbox[i] = _Xtime2Sbox[i];
  5311. Xtime3Sbox[i] = _Xtime3Sbox[i];
  5312. Xtime2[i] = _Xtime2[i];
  5313. Xtime9[i] = _Xtime9[i];
  5314. XtimeB[i] = _XtimeB[i];
  5315. XtimeD[i] = _XtimeD[i];
  5316. XtimeE[i] = _XtimeE[i];
  5317. var loc1:*;
  5318. i++;
  5319. }
  5320. Rcon = new ByteArray();
  5321. i = 0;
  5322. while (i < _Rcon.length)
  5323. {
  5324. Rcon[i] = _Rcon[i];
  5325. i++;
  5326. }
  5327. return;
  5328. }
  5329.  
  5330. internal function expandKey():void
  5331. {
  5332. var loc1:*=0;
  5333. var loc2:*=0;
  5334. var loc3:*=0;
  5335. var loc4:*=0;
  5336. var loc5:*=0;
  5337. var loc6:*=0;
  5338. var loc7:*=key.length / 4;
  5339. Nr = loc7 + 6;
  5340. loc6 = loc7;
  5341. while (loc6 < Nb * (Nr + 1))
  5342. {
  5343. loc1 = key[4 * loc6 - 4];
  5344. loc2 = key[4 * loc6 - 3];
  5345. loc3 = key[4 * loc6 - 2];
  5346. loc4 = key[(4 * loc6 - 1)];
  5347. if (loc6 % loc7)
  5348. {
  5349. if (loc7 > 6 && loc6 % loc7 == 4)
  5350. {
  5351. loc1 = Sbox[loc1];
  5352. loc2 = Sbox[loc2];
  5353. loc3 = Sbox[loc3];
  5354. loc4 = Sbox[loc4];
  5355. }
  5356. }
  5357. else
  5358. {
  5359. loc5 = loc4;
  5360. loc4 = Sbox[loc1];
  5361. loc1 = Sbox[loc2] ^ Rcon[loc6 / loc7];
  5362. loc2 = Sbox[loc3];
  5363. loc3 = Sbox[loc5];
  5364. }
  5365. key[4 * loc6 + 0] = key[4 * loc6 - 4 * loc7 + 0] ^ loc1;
  5366. key[4 * loc6 + 1] = key[4 * loc6 - 4 * loc7 + 1] ^ loc2;
  5367. key[4 * loc6 + 2] = key[4 * loc6 - 4 * loc7 + 2] ^ loc3;
  5368. key[4 * loc6 + 3] = key[4 * loc6 - 4 * loc7 + 3] ^ loc4;
  5369. ++loc6;
  5370. }
  5371. return;
  5372. }
  5373.  
  5374. protected function addRoundKey(arg1:flash.utils.ByteArray, arg2:uint):void
  5375. {
  5376. var loc1:*=0;
  5377. loc1 = 0;
  5378. while (loc1 < 16)
  5379. {
  5380. state[loc1] = state[loc1] ^ arg1[loc1 + arg2];
  5381. ++loc1;
  5382. }
  5383. return;
  5384. }
  5385.  
  5386. public function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  5387. {
  5388. var loc1:*=0;
  5389. state.position = 0;
  5390. state.writeBytes(arg1, arg2, Nb * 4);
  5391. addRoundKey(key, 0);
  5392. loc1 = 1;
  5393. while (loc1 < Nr + 1)
  5394. {
  5395. if (loc1 < Nr)
  5396. {
  5397. mixSubColumns();
  5398. }
  5399. else
  5400. {
  5401. shiftRows();
  5402. }
  5403. addRoundKey(key, loc1 * Nb * 4);
  5404. ++loc1;
  5405. }
  5406. arg1.position = arg2;
  5407. arg1.writeBytes(state);
  5408. return;
  5409. }
  5410.  
  5411. internal static const _XtimeB:Array=[0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163];
  5412.  
  5413. internal static const _XtimeE:Array=[0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141];
  5414.  
  5415. internal static const _Xtime3Sbox:Array=[165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 255, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58];
  5416.  
  5417. internal static const _InvSbox:Array=[82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125];
  5418.  
  5419. internal static const _XtimeD:Array=[0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 255, 180, 185, 174, 163, 128, 141, 154, 151];
  5420.  
  5421. internal static const _Xtime2Sbox:Array=[198, 248, 238, 246, 255, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44];
  5422.  
  5423. internal static const _Sbox:Array=[99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22];
  5424.  
  5425. internal static const Nb:uint=4;
  5426.  
  5427. internal static const _Xtime2:Array=[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 27, 25, 31, 29, 19, 17, 23, 21, 11, 9, 15, 13, 3, 1, 7, 5, 59, 57, 63, 61, 51, 49, 55, 53, 43, 41, 47, 45, 35, 33, 39, 37, 91, 89, 95, 93, 83, 81, 87, 85, 75, 73, 79, 77, 67, 65, 71, 69, 123, 121, 127, 125, 115, 113, 119, 117, 107, 105, 111, 109, 99, 97, 103, 101, 155, 153, 159, 157, 147, 145, 151, 149, 139, 137, 143, 141, 131, 129, 135, 133, 187, 185, 191, 189, 179, 177, 183, 181, 171, 169, 175, 173, 163, 161, 167, 165, 219, 217, 223, 221, 211, 209, 215, 213, 203, 201, 207, 205, 195, 193, 199, 197, 251, 249, 255, 253, 243, 241, 247, 245, 235, 233, 239, 237, 227, 225, 231, 229];
  5428.  
  5429. internal static const _Xtime9:Array=[0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70];
  5430.  
  5431. internal var instance:com.hurlant.crypto.symmetric.AESKey;
  5432.  
  5433. internal var tmp:flash.utils.ByteArray;
  5434.  
  5435. internal var Nr:uint;
  5436.  
  5437. internal var keyLength:uint;
  5438.  
  5439. internal var state:flash.utils.ByteArray;
  5440.  
  5441. internal var key:flash.utils.ByteArray;
  5442.  
  5443. internal static var XtimeE:flash.utils.ByteArray;
  5444.  
  5445. internal static var i:uint;
  5446.  
  5447. internal static var Xtime3Sbox:flash.utils.ByteArray;
  5448.  
  5449. internal static var InvSbox:flash.utils.ByteArray;
  5450.  
  5451. internal static var Sbox:flash.utils.ByteArray;
  5452.  
  5453. internal static var Xtime2Sbox:flash.utils.ByteArray;
  5454.  
  5455. internal static var Rcon:flash.utils.ByteArray;
  5456.  
  5457. internal static var _Rcon:Array;
  5458.  
  5459. internal static var Xtime9:flash.utils.ByteArray;
  5460.  
  5461. internal static var XtimeB:flash.utils.ByteArray;
  5462.  
  5463. internal static var XtimeD:flash.utils.ByteArray;
  5464.  
  5465. internal static var Xtime2:flash.utils.ByteArray;
  5466. }
  5467. }
  5468.  
  5469.  
  5470. // class BlowFishKey
  5471. package com.hurlant.crypto.symmetric
  5472. {
  5473. import com.hurlant.util.*;
  5474. import flash.utils.*;
  5475.  
  5476. public class BlowFishKey extends Object implements ISymmetricKey
  5477. {
  5478. public function BlowFishKey(arg1:flash.utils.ByteArray)
  5479. {
  5480. super();
  5481. this.key = arg1;
  5482. setKey(arg1);
  5483. return;
  5484. }
  5485.  
  5486. internal function F(arg1:uint):uint
  5487. {
  5488. return (S0[arg1 >>> 24] + S1[arg1 >>> 16 & 255] ^ S2[arg1 >>> 8 & 255]) + S3[arg1 & 255];
  5489. }
  5490.  
  5491. internal function BytesTo32bits(arg1:flash.utils.ByteArray, arg2:uint):uint
  5492. {
  5493. return (arg1[arg2] & 255) << 24 | (arg1[arg2 + 1] & 255) << 16 | (arg1[arg2 + 2] & 255) << 8 | arg1[arg2 + 3] & 255;
  5494. }
  5495.  
  5496. internal function decryptBlock(arg1:flash.utils.ByteArray, arg2:uint, arg3:flash.utils.ByteArray, arg4:uint):void
  5497. {
  5498. var loc1:*=BytesTo32bits(arg1, arg2);
  5499. var loc2:*=BytesTo32bits(arg1, arg2 + 4);
  5500. loc1 = loc1 ^ P[ROUNDS + 1];
  5501. var loc3:*=ROUNDS;
  5502. while (loc3 > 0)
  5503. {
  5504. loc2 = loc2 ^ F(loc1) ^ P[loc3];
  5505. loc1 = loc1 ^ F(loc2) ^ P[(loc3 - 1)];
  5506. loc3 = loc3 - 2;
  5507. }
  5508. loc2 = loc2 ^ P[0];
  5509. Bits32ToBytes(loc2, arg3, arg4);
  5510. Bits32ToBytes(loc1, arg3, arg4 + 4);
  5511. return;
  5512. }
  5513.  
  5514. public function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  5515. {
  5516. decryptBlock(arg1, arg2, arg1, arg2);
  5517. return;
  5518. }
  5519.  
  5520. public function getBlockSize():uint
  5521. {
  5522. return BLOCK_SIZE;
  5523. }
  5524.  
  5525. internal function setKey(arg1:flash.utils.ByteArray):void
  5526. {
  5527. var loc4:*=0;
  5528. var loc5:*=0;
  5529. S0 = KS0.concat();
  5530. S1 = KS1.concat();
  5531. S2 = KS2.concat();
  5532. S3 = KS3.concat();
  5533. P = KP.concat();
  5534. var loc1:*=arg1.length;
  5535. var loc2:*=0;
  5536. var loc3:*=0;
  5537. while (loc3 < P_SZ)
  5538. {
  5539. loc4 = 0;
  5540. loc5 = 0;
  5541. while (loc5 < 4)
  5542. {
  5543. loc4 = loc4 << 8 | arg1[loc2++] & 255;
  5544. if (loc2 >= loc1)
  5545. {
  5546. loc2 = 0;
  5547. }
  5548. ++loc5;
  5549. }
  5550. P[loc3] = P[loc3] ^ loc4;
  5551. ++loc3;
  5552. }
  5553. processTable(0, 0, P);
  5554. processTable(P[P_SZ - 2], P[(P_SZ - 1)], S0);
  5555. processTable(S0[SBOX_SK - 2], S0[(SBOX_SK - 1)], S1);
  5556. processTable(S1[SBOX_SK - 2], S1[(SBOX_SK - 1)], S2);
  5557. processTable(S2[SBOX_SK - 2], S2[(SBOX_SK - 1)], S3);
  5558. return;
  5559. }
  5560.  
  5561. internal function processTable(arg1:uint, arg2:uint, arg3:Array):void
  5562. {
  5563. var loc3:*=0;
  5564. var loc1:*=arg3.length;
  5565. var loc2:*=0;
  5566. while (loc2 < loc1)
  5567. {
  5568. arg1 = arg1 ^ P[0];
  5569. loc3 = 1;
  5570. while (loc3 < ROUNDS)
  5571. {
  5572. arg2 = arg2 ^ F(arg1) ^ P[loc3];
  5573. arg1 = arg1 ^ F(arg2) ^ P[loc3 + 1];
  5574. loc3 = loc3 + 2;
  5575. }
  5576. arg2 = arg2 ^ P[ROUNDS + 1];
  5577. arg3[loc2] = arg2;
  5578. arg3[loc2 + 1] = arg1;
  5579. arg2 = arg1;
  5580. arg1 = arg3[loc2];
  5581. loc2 = loc2 + 2;
  5582. }
  5583. return;
  5584. }
  5585.  
  5586. public function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  5587. {
  5588. encryptBlock(arg1, arg2, arg1, arg2);
  5589. return;
  5590. }
  5591.  
  5592. public function dispose():void
  5593. {
  5594. var loc1:*=0;
  5595. loc1 = 0;
  5596. while (loc1 < S0.length)
  5597. {
  5598. S0[loc1] = 0;
  5599. ++loc1;
  5600. }
  5601. loc1 = 0;
  5602. while (loc1 < S1.length)
  5603. {
  5604. S1[loc1] = 0;
  5605. ++loc1;
  5606. }
  5607. loc1 = 0;
  5608. while (loc1 < S2.length)
  5609. {
  5610. S2[loc1] = 0;
  5611. ++loc1;
  5612. }
  5613. loc1 = 0;
  5614. while (loc1 < S3.length)
  5615. {
  5616. S3[loc1] = 0;
  5617. ++loc1;
  5618. }
  5619. loc1 = 0;
  5620. while (loc1 < P.length)
  5621. {
  5622. P[loc1] = 0;
  5623. ++loc1;
  5624. }
  5625. S0 = null;
  5626. S1 = null;
  5627. S2 = null;
  5628. S3 = null;
  5629. P = null;
  5630. loc1 = 0;
  5631. while (loc1 < key.length)
  5632. {
  5633. key[loc1] = 0;
  5634. ++loc1;
  5635. }
  5636. key.length = 0;
  5637. key = null;
  5638. Memory.gc();
  5639. return;
  5640. }
  5641.  
  5642. internal function encryptBlock(arg1:flash.utils.ByteArray, arg2:uint, arg3:flash.utils.ByteArray, arg4:uint):void
  5643. {
  5644. var loc1:*=BytesTo32bits(arg1, arg2);
  5645. var loc2:*=BytesTo32bits(arg1, arg2 + 4);
  5646. loc1 = loc1 ^ P[0];
  5647. var loc3:*=1;
  5648. while (loc3 < ROUNDS)
  5649. {
  5650. loc2 = loc2 ^ F(loc1) ^ P[loc3];
  5651. loc1 = loc1 ^ F(loc2) ^ P[loc3 + 1];
  5652. loc3 = loc3 + 2;
  5653. }
  5654. loc2 = loc2 ^ P[ROUNDS + 1];
  5655. Bits32ToBytes(loc2, arg3, arg4);
  5656. Bits32ToBytes(loc1, arg3, arg4 + 4);
  5657. return;
  5658. }
  5659.  
  5660. internal function Bits32ToBytes(arg1:uint, arg2:flash.utils.ByteArray, arg3:uint):void
  5661. {
  5662. arg2[arg3 + 3] = arg1;
  5663. arg2[arg3 + 2] = arg1 >> 8;
  5664. arg2[arg3 + 1] = arg1 >> 16;
  5665. arg2[arg3] = arg1 >> 24;
  5666. return;
  5667. }
  5668.  
  5669. public function toString():String
  5670. {
  5671. return "blowfish";
  5672. }
  5673.  
  5674. internal static const KP:Array=[608135816, 2242054355, 320440878, 57701188, 2752067618, 698298832, 137296536, 3964562569, 1160258022, 953160567, 3193202383, 887688300, 3232508343, 3380367581, 1065670069, 3041331479, 2450970073, 2306472731];
  5675.  
  5676. internal static const KS0:Array=[3509652390, 2564797868, 805139163, 3491422135, 3101798381, 1780907670, 3128725573, 4046225305, 614570311, 3012652279, 134345442, 2240740374, 1667834072, 1901547113, 2757295779, 4103290238, 227898511, 1921955416, 1904987480, 2182433518, 2069144605, 3260701109, 2620446009, 720527379, 3318853667, 677414384, 3393288472, 3101374703, 2390351024, 1614419982, 1822297739, 2954791486, 3608508353, 3174124327, 2024746970, 1432378464, 3864339955, 2857741204, 1464375394, 1676153920, 1439316330, 715854006, 3033291828, 289532110, 2706671279, 2087905683, 3018724369, 1668267050, 732546397, 1947742710, 3462151702, 2609353502, 2950085171, 1814351708, 2050118529, 680887927, 999245976, 1800124847, 3300911131, 1713906067, 1641548236, 4213287313, 1216130144, 1575780402, 4018429277, 3917837745, 3693486850, 3949271944, 596196993, 3549867205, 258830323, 2213823033, 772490370, 2760122372, 1774776394, 2652871518, 566650946, 4142492826, 1728879713, 2882767088, 1783734482, 3629395816, 2517608232, 2874225571, 1861159788, 326777828, 3124490320, 2130389656, 2716951837, 967770486, 1724537150, 2185432712, 2364442137, 1164943284, 2105845187, 998989502, 3765401048, 2244026483, 1075463327, 1455516326, 1322494562, 910128902, 469688178, 1117454909, 936433444, 3490320968, 3675253459, 1240580251, 122909385, 2157517691, 634681816, 4142456567, 3825094682, 3061402683, 2540495037, 79693498, 3249098678, 1084186820, 1583128258, 426386531, 1761308591, 1047286709, 322548459, 995290223, 1845252383, 2603652396, 3431023940, 2942221577, 3202600964, 3727903485, 1712269319, 422464435, 3234572375, 1170764815, 3523960633, 3117677531, 1434042557, 442511882, 3600875718, 1076654713, 1738483198, 4213154764, 2393238008, 3677496056, 1014306527, 4251020053, 793779912, 2902807211, 842905082, 4246964064, 1395751752, 1040244610, 2656851899, 3396308128, 445077038, 3742853595, 3577915638, 679411651, 2892444358, 2354009459, 1767581616, 3150600392, 3791627101, 3102740896, 284835224, 4246832056, 1258075500, 768725851, 2589189241, 3069724005, 3532540348, 1274779536, 3789419226, 2764799539, 1660621633, 3471099624, 4011903706, 913787905, 3497959166, 737222580, 2514213453, 2928710040, 3937242737, 1804850592, 3499020752, 2949064160, 2386320175, 2390070455, 2415321851, 4061277028, 2290661394, 2416832540, 1336762016, 1754252060, 3520065937, 3014181293, 791618072, 3188594551, 3933548030, 2332172193, 3852520463, 3043980520, 413987798, 3465142937, 3030929376, 4245938359, 2093235073, 3534596313, 375366246, 2157278981, 2479649556, 555357303, 3870105701, 2008414854, 3344188149, 4221384143, 3956125452, 2067696032, 3594591187, 2921233993, 2428461, 544322398, 577241275, 1471733935, 610547355, 4027169054, 1432588573, 1507829418, 2025931657, 3646575487, 545086370, 48609733, 2200306550, 1653985193, 298326376, 1316178497, 3007786442, 2064951626, 458293330, 2589141269, 3591329599, 3164325604, 727753846, 2179363840, 146436021, 1461446943, 4069977195, 705550613, 3059967265, 3887724982, 4281599278, 3313849956, 1404054877, 2845806497, 146425753, 1854211946];
  5677.  
  5678. internal static const KS1:Array=[1266315497, 3048417604, 3681880366, 3289982499, 2909710000, 1235738493, 2632868024, 2414719590, 3970600049, 1771706367, 1449415276, 3266420449, 422970021, 1963543593, 2690192192, 3826793022, 1062508698, 1531092325, 1804592342, 2583117782, 2714934279, 4024971509, 1294809318, 4028980673, 1289560198, 2221992742, 1669523910, 35572830, 157838143, 1052438473, 1016535060, 1802137761, 1753167236, 1386275462, 3080475397, 2857371447, 1040679964, 2145300060, 2390574316, 1461121720, 2956646967, 4031777805, 4028374788, 33600511, 2920084762, 1018524850, 629373528, 3691585981, 3515945977, 2091462646, 2486323059, 586499841, 988145025, 935516892, 3367335476, 2599673255, 2839830854, 265290510, 3972581182, 2759138881, 3795373465, 1005194799, 847297441, 406762289, 1314163512, 1332590856, 1866599683, 4127851711, 750260880, 613907577, 1450815602, 3165620655, 3734664991, 3650291728, 3012275730, 3704569646, 1427272223, 778793252, 1343938022, 2676280711, 2052605720, 1946737175, 3164576444, 3914038668, 3967478842, 3682934266, 1661551462, 3294938066, 4011595847, 840292616, 3712170807, 616741398, 312560963, 711312465, 1351876610, 322626781, 1910503582, 271666773, 2175563734, 1594956187, 70604529, 3617834859, 1007753275, 1495573769, 4069517037, 2549218298, 2663038764, 504708206, 2263041392, 3941167025, 2249088522, 1514023603, 1998579484, 1312622330, 694541497, 2582060303, 2151582166, 1382467621, 776784248, 2618340202, 3323268794, 2497899128, 2784771155, 503983604, 4076293799, 907881277, 423175695, 432175456, 1378068232, 4145222326, 3954048622, 3938656102, 3820766613, 2793130115, 2977904593, 26017576, 3274890735, 3194772133, 1700274565, 1756076034, 4006520079, 3677328699, 720338349, 1533947780, 354530856, 688349552, 3973924725, 1637815568, 332179504, 3949051286, 53804574, 2852348879, 3044236432, 1282449977, 3583942155, 3416972820, 4006381244, 1617046695, 2628476075, 3002303598, 1686838959, 431878346, 2686675385, 1700445008, 1080580658, 1009431731, 832498133, 3223435511, 2605976345, 2271191193, 2516031870, 1648197032, 4164389018, 2548247927, 300782431, 375919233, 238389289, 3353747414, 2531188641, 2019080857, 1475708069, 455242339, 2609103871, 448939670, 3451063019, 1395535956, 2413381860, 1841049896, 1491858159, 885456874, 4264095073, 4001119347, 1565136089, 3898914787, 1108368660, 540939232, 1173283510, 2745871338, 3681308437, 4207628240, 3343053890, 4016749493, 1699691293, 1103962373, 3625875870, 2256883143, 3830138730, 1031889488, 3479347698, 1535977030, 4236805024, 3251091107, 2132092099, 1774941330, 1199868427, 1452454533, 157007616, 2904115357, 342012276, 595725824, 1480756522, 206960106, 497939518, 591360097, 863170706, 2375253569, 3596610801, 1814182875, 2094937945, 3421402208, 1082520231, 3463918190, 2785509508, 435703966, 3908032597, 1641649973, 2842273706, 3305899714, 1510255612, 2148256476, 2655287854, 3276092548, 4258621189, 236887753, 3681803219, 274041037, 1734335097, 3815195456, 3317970021, 1899903192, 1026095262, 4050517792, 356393447, 2410691914, 3873677099, 3682840055];
  5679.  
  5680. internal static const KS3:Array=[976866871, 3556439503, 2881648439, 1522871579, 1555064734, 1336096578, 3548522304, 2579274686, 3574697629, 3205460757, 3593280638, 3338716283, 3079412587, 564236357, 2993598910, 1781952180, 1464380207, 3163844217, 3332601554, 1699332808, 1393555694, 1183702653, 3581086237, 1288719814, 691649499, 2847557200, 2895455976, 3193889540, 2717570544, 1781354906, 1676643554, 2592534050, 3230253752, 1126444790, 2770207658, 2633158820, 2210423226, 2615765581, 2414155088, 3127139286, 673620729, 2805611233, 1269405062, 4015350505, 3341807571, 4149409754, 1057255273, 2012875353, 2162469141, 2276492801, 2601117357, 993977747, 3918593370, 2654263191, 753973209, 36408145, 2530585658, 25011837, 3520020182, 2088578344, 530523599, 2918365339, 1524020338, 1518925132, 3760827505, 3759777254, 1202760957, 3985898139, 3906192525, 674977740, 4174734889, 2031300136, 2019492241, 3983892565, 4153806404, 3822280332, 352677332, 2297720250, 60907813, 90501309, 3286998549, 1016092578, 2535922412, 2839152426, 457141659, 509813237, 4120667899, 652014361, 1966332200, 2975202805, 55981186, 2327461051, 676427537, 3255491064, 2882294119, 3433927263, 1307055953, 942726286, 933058658, 2468411793, 3933900994, 4215176142, 1361170020, 2001714738, 2830558078, 3274259782, 1222529897, 1679025792, 2729314320, 3714953764, 1770335741, 151462246, 3013232138, 1682292957, 1483529935, 471910574, 1539241949, 458788160, 3436315007, 1807016891, 3718408830, 978976581, 1043663428, 3165965781, 1927990952, 4200891579, 2372276910, 3208408903, 3533431907, 1412390302, 2931980059, 4132332400, 1947078029, 3881505623, 4168226417, 2941484381, 1077988104, 1320477388, 886195818, 18198404, 3786409000, 2509781533, 112762804, 3463356488, 1866414978, 891333506, 18488651, 661792760, 1628790961, 3885187036, 3141171499, 876946877, 2693282273, 1372485963, 791857591, 2686433993, 3759982718, 3167212022, 3472953795, 2716379847, 445679433, 3561995674, 3504004811, 3574258232, 54117162, 3331405415, 2381918588, 3769707343, 4154350007, 1140177722, 4074052095, 668550556, 3214352940, 367459370, 261225585, 2610173221, 4209349473, 3468074219, 3265815641, 314222801, 3066103646, 3808782860, 282218597, 3406013506, 3773591054, 379116347, 1285071038, 846784868, 2669647154, 3771962079, 3550491691, 2305946142, 453669953, 1268987020, 3317592352, 3279303384, 3744833421, 2610507566, 3859509063, 266596637, 3847019092, 517658769, 3462560207, 3443424879, 370717030, 4247526661, 2224018117, 4143653529, 4112773975, 2788324899, 2477274417, 1456262402, 2901442914, 1517677493, 1846949527, 2295493580, 3734397586, 2176403920, 1280348187, 1908823572, 3871786941, 846861322, 1172426758, 3287448474, 3383383037, 1655181056, 3139813346, 901632758, 1897031941, 2986607138, 3066810236, 3447102507, 1393639104, 373351379, 950779232, 625454576, 3124240540, 4148612726, 2007998917, 544563296, 2244738638, 2330496472, 2058025392, 1291430526, 424198748, 50039436, 29584100, 3605783033, 2429876329, 2791104160, 1057563949, 3255363231, 3075367218, 3463963227, 1469046755, 985887462];
  5681.  
  5682. internal static const ROUNDS:uint=16;
  5683.  
  5684. internal static const KS2:Array=[3913112168, 2491498743, 4132185628, 2489919796, 1091903735, 1979897079, 3170134830, 3567386728, 3557303409, 857797738, 1136121015, 1342202287, 507115054, 2535736646, 337727348, 3213592640, 1301675037, 2528481711, 1895095763, 1721773893, 3216771564, 62756741, 2142006736, 835421444, 2531993523, 1442658625, 3659876326, 2882144922, 676362277, 1392781812, 170690266, 3921047035, 1759253602, 3611846912, 1745797284, 664899054, 1329594018, 3901205900, 3045908486, 2062866102, 2865634940, 3543621612, 3464012697, 1080764994, 553557557, 3656615353, 3996768171, 991055499, 499776247, 1265440854, 648242737, 3940784050, 980351604, 3713745714, 1749149687, 3396870395, 4211799374, 3640570775, 1161844396, 3125318951, 1431517754, 545492359, 4268468663, 3499529547, 1437099964, 2702547544, 3433638243, 2581715763, 2787789398, 1060185593, 1593081372, 2418618748, 4260947970, 69676912, 2159744348, 86519011, 2512459080, 3838209314, 1220612927, 3339683548, 133810670, 1090789135, 1078426020, 1569222167, 845107691, 3583754449, 4072456591, 1091646820, 628848692, 1613405280, 3757631651, 526609435, 236106946, 48312990, 2942717905, 3402727701, 1797494240, 859738849, 992217954, 4005476642, 2243076622, 3870952857, 3732016268, 765654824, 3490871365, 2511836413, 1685915746, 3888969200, 1414112111, 2273134842, 3281911079, 4080962846, 172450625, 2569994100, 980381355, 4109958455, 2819808352, 2716589560, 2568741196, 3681446669, 3329971472, 1835478071, 660984891, 3704678404, 4045999559, 3422617507, 3040415634, 1762651403, 1719377915, 3470491036, 2693910283, 3642056355, 3138596744, 1364962596, 2073328063, 1983633131, 926494387, 3423689081, 2150032023, 4096667949, 1749200295, 3328846651, 309677260, 2016342300, 1779581495, 3079819751, 111262694, 1274766160, 443224088, 298511866, 1025883608, 3806446537, 1145181785, 168956806, 3641502830, 3584813610, 1689216846, 3666258015, 3200248200, 1692713982, 2646376535, 4042768518, 1618508792, 1610833997, 3523052358, 4130873264, 2001055236, 3610705100, 2202168115, 4028541809, 2961195399, 1006657119, 2006996926, 3186142756, 1430667929, 3210227297, 1314452623, 4074634658, 4101304120, 2273951170, 1399257539, 3367210612, 3027628629, 1190975929, 2062231137, 2333990788, 2221543033, 2438960610, 1181637006, 548689776, 2362791313, 3372408396, 3104550113, 3145860560, 296247880, 1970579870, 3078560182, 3769228297, 1714227617, 3291629107, 3898220290, 166772364, 1251581989, 493813264, 448347421, 195405023, 2709975567, 677966185, 3703036547, 1463355134, 2715995803, 1338867538, 1343315457, 2802222074, 2684532164, 233230375, 2599980071, 2000651841, 3277868038, 1638401717, 4028070440, 3237316320, 6314154, 819756386, 300326615, 590932579, 1405279636, 3267499572, 3150704214, 2428286686, 3959192993, 3461946742, 1862657033, 1266418056, 963775037, 2089974820, 2263052895, 1917689273, 448879540, 3550394620, 3981727096, 150775221, 3627908307, 1303187396, 508620638, 2975983352, 2726630617, 1817252668, 1876281319, 1457606340, 908771278, 3720792119, 3617206836, 2455994898, 1729034894, 1080033504];
  5685.  
  5686. internal static const BLOCK_SIZE:uint=8;
  5687.  
  5688. internal static const P_SZ:uint=ROUNDS + 2;
  5689.  
  5690. internal static const SBOX_SK:uint=256;
  5691.  
  5692. internal var S3:Array;
  5693.  
  5694. internal var P:Array;
  5695.  
  5696. internal var S1:Array;
  5697.  
  5698. internal var key:flash.utils.ByteArray=null;
  5699.  
  5700. internal var S0:Array;
  5701.  
  5702. internal var S2:Array;
  5703. }
  5704. }
  5705.  
  5706.  
  5707. // class CBCMode
  5708. package com.hurlant.crypto.symmetric
  5709. {
  5710. import flash.utils.*;
  5711.  
  5712. public class CBCMode extends com.hurlant.crypto.symmetric.IVMode implements IMode
  5713. {
  5714. public function CBCMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  5715. {
  5716. super(arg1, arg2);
  5717. return;
  5718. }
  5719.  
  5720. public function toString():String
  5721. {
  5722. return key.toString() + "-cbc";
  5723. }
  5724.  
  5725. public function encrypt(arg1:flash.utils.ByteArray):void
  5726. {
  5727. var loc3:*=0;
  5728. padding.pad(arg1);
  5729. var loc1:*=getIV4e();
  5730. var loc2:*=0;
  5731. while (loc2 < arg1.length)
  5732. {
  5733. loc3 = 0;
  5734. while (loc3 < blockSize)
  5735. {
  5736. arg1[loc2 + loc3] = arg1[loc2 + loc3] ^ loc1[loc3];
  5737. ++loc3;
  5738. }
  5739. key.encrypt(arg1, loc2);
  5740. loc1.position = 0;
  5741. loc1.writeBytes(arg1, loc2, blockSize);
  5742. loc2 = loc2 + blockSize;
  5743. }
  5744. return;
  5745. }
  5746.  
  5747. public function decrypt(arg1:flash.utils.ByteArray):void
  5748. {
  5749. var loc4:*=0;
  5750. var loc1:*=getIV4d();
  5751. var loc2:*=new ByteArray();
  5752. var loc3:*=0;
  5753. while (loc3 < arg1.length)
  5754. {
  5755. loc2.position = 0;
  5756. loc2.writeBytes(arg1, loc3, blockSize);
  5757. key.decrypt(arg1, loc3);
  5758. loc4 = 0;
  5759. while (loc4 < blockSize)
  5760. {
  5761. arg1[loc3 + loc4] = arg1[loc3 + loc4] ^ loc1[loc4];
  5762. ++loc4;
  5763. }
  5764. loc1.position = 0;
  5765. loc1.writeBytes(loc2, 0, blockSize);
  5766. loc3 = loc3 + blockSize;
  5767. }
  5768. padding.unpad(arg1);
  5769. return;
  5770. }
  5771. }
  5772. }
  5773.  
  5774.  
  5775. // class CFB8Mode
  5776. package com.hurlant.crypto.symmetric
  5777. {
  5778. import flash.utils.*;
  5779.  
  5780. public class CFB8Mode extends com.hurlant.crypto.symmetric.IVMode implements IMode
  5781. {
  5782. public function CFB8Mode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  5783. {
  5784. super(arg1, null);
  5785. return;
  5786. }
  5787.  
  5788. public function toString():String
  5789. {
  5790. return key.toString() + "-cfb8";
  5791. }
  5792.  
  5793. public function encrypt(arg1:flash.utils.ByteArray):void
  5794. {
  5795. var loc4:*=0;
  5796. var loc1:*=getIV4e();
  5797. var loc2:*=new ByteArray();
  5798. var loc3:*=0;
  5799. while (loc3 < arg1.length)
  5800. {
  5801. loc2.position = 0;
  5802. loc2.writeBytes(loc1);
  5803. key.encrypt(loc1);
  5804. arg1[loc3] = arg1[loc3] ^ loc1[0];
  5805. loc4 = 0;
  5806. while (loc4 < (blockSize - 1))
  5807. {
  5808. loc1[loc4] = loc2[loc4 + 1];
  5809. ++loc4;
  5810. }
  5811. loc1[(blockSize - 1)] = arg1[loc3];
  5812. ++loc3;
  5813. }
  5814. return;
  5815. }
  5816.  
  5817. public function decrypt(arg1:flash.utils.ByteArray):void
  5818. {
  5819. var loc4:*=0;
  5820. var loc5:*=0;
  5821. var loc1:*=getIV4d();
  5822. var loc2:*=new ByteArray();
  5823. var loc3:*=0;
  5824. while (loc3 < arg1.length)
  5825. {
  5826. loc4 = arg1[loc3];
  5827. loc2.position = 0;
  5828. loc2.writeBytes(loc1);
  5829. key.encrypt(loc1);
  5830. arg1[loc3] = arg1[loc3] ^ loc1[0];
  5831. loc5 = 0;
  5832. while (loc5 < (blockSize - 1))
  5833. {
  5834. loc1[loc5] = loc2[loc5 + 1];
  5835. ++loc5;
  5836. }
  5837. loc1[(blockSize - 1)] = loc4;
  5838. ++loc3;
  5839. }
  5840. return;
  5841. }
  5842. }
  5843. }
  5844.  
  5845.  
  5846. // class CFBMode
  5847. package com.hurlant.crypto.symmetric
  5848. {
  5849. import flash.utils.*;
  5850.  
  5851. public class CFBMode extends com.hurlant.crypto.symmetric.IVMode implements IMode
  5852. {
  5853. public function CFBMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  5854. {
  5855. super(arg1, null);
  5856. return;
  5857. }
  5858.  
  5859. public function toString():String
  5860. {
  5861. return key.toString() + "-cfb";
  5862. }
  5863.  
  5864. public function encrypt(arg1:flash.utils.ByteArray):void
  5865. {
  5866. var loc4:*=0;
  5867. var loc5:*=0;
  5868. var loc1:*=arg1.length;
  5869. var loc2:*=getIV4e();
  5870. var loc3:*=0;
  5871. while (loc3 < arg1.length)
  5872. {
  5873. key.encrypt(loc2);
  5874. loc4 = loc3 + blockSize < loc1 ? blockSize : loc1 - loc3;
  5875. loc5 = 0;
  5876. while (loc5 < loc4)
  5877. {
  5878. arg1[loc3 + loc5] = arg1[loc3 + loc5] ^ loc2[loc5];
  5879. ++loc5;
  5880. }
  5881. loc2.position = 0;
  5882. loc2.writeBytes(arg1, loc3, loc4);
  5883. loc3 = loc3 + blockSize;
  5884. }
  5885. return;
  5886. }
  5887.  
  5888. public function decrypt(arg1:flash.utils.ByteArray):void
  5889. {
  5890. var loc5:*=0;
  5891. var loc6:*=0;
  5892. var loc1:*=arg1.length;
  5893. var loc2:*=getIV4d();
  5894. var loc3:*=new ByteArray();
  5895. var loc4:*=0;
  5896. while (loc4 < arg1.length)
  5897. {
  5898. key.encrypt(loc2);
  5899. loc5 = loc4 + blockSize < loc1 ? blockSize : loc1 - loc4;
  5900. loc3.position = 0;
  5901. loc3.writeBytes(arg1, loc4, loc5);
  5902. loc6 = 0;
  5903. while (loc6 < loc5)
  5904. {
  5905. arg1[loc4 + loc6] = arg1[loc4 + loc6] ^ loc2[loc6];
  5906. ++loc6;
  5907. }
  5908. loc2.position = 0;
  5909. loc2.writeBytes(loc3);
  5910. loc4 = loc4 + blockSize;
  5911. }
  5912. return;
  5913. }
  5914. }
  5915. }
  5916.  
  5917.  
  5918. // class CTRMode
  5919. package com.hurlant.crypto.symmetric
  5920. {
  5921. import flash.utils.*;
  5922.  
  5923. public class CTRMode extends com.hurlant.crypto.symmetric.IVMode implements IMode
  5924. {
  5925. public function CTRMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  5926. {
  5927. super(arg1, arg2);
  5928. return;
  5929. }
  5930.  
  5931. internal function core(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray):void
  5932. {
  5933. var loc4:*=0;
  5934. var loc1:*=new ByteArray();
  5935. var loc2:*=new ByteArray();
  5936. loc1.writeBytes(arg2);
  5937. var loc3:*=0;
  5938. while (loc3 < arg1.length)
  5939. {
  5940. loc2.position = 0;
  5941. loc2.writeBytes(loc1);
  5942. key.encrypt(loc2);
  5943. loc4 = 0;
  5944. while (loc4 < blockSize)
  5945. {
  5946. arg1[loc3 + loc4] = arg1[loc3 + loc4] ^ loc2[loc4];
  5947. ++loc4;
  5948. }
  5949. loc4 = (blockSize - 1);
  5950. while (loc4 >= 0)
  5951. {
  5952. var loc5:*;
  5953. var loc6:*;
  5954. var loc7:*=((loc5 = loc1)[loc6 = loc4] + 1);
  5955. loc5[loc6] = loc7;
  5956. if (loc1[loc4] != 0)
  5957. {
  5958. break;
  5959. }
  5960. --loc4;
  5961. }
  5962. loc3 = loc3 + blockSize;
  5963. }
  5964. return;
  5965. }
  5966.  
  5967. public function toString():String
  5968. {
  5969. return key.toString() + "-ctr";
  5970. }
  5971.  
  5972. public function encrypt(arg1:flash.utils.ByteArray):void
  5973. {
  5974. padding.pad(arg1);
  5975. var loc1:*=getIV4e();
  5976. core(arg1, loc1);
  5977. return;
  5978. }
  5979.  
  5980. public function decrypt(arg1:flash.utils.ByteArray):void
  5981. {
  5982. var loc1:*=getIV4d();
  5983. core(arg1, loc1);
  5984. padding.unpad(arg1);
  5985. return;
  5986. }
  5987. }
  5988. }
  5989.  
  5990.  
  5991. // class DESKey
  5992. package com.hurlant.crypto.symmetric
  5993. {
  5994. import com.hurlant.util.*;
  5995. import flash.utils.*;
  5996.  
  5997. public class DESKey extends Object implements ISymmetricKey
  5998. {
  5999. public function DESKey(arg1:flash.utils.ByteArray)
  6000. {
  6001. super();
  6002. this.key = arg1;
  6003. this.encKey = generateWorkingKey(true, arg1, 0);
  6004. this.decKey = generateWorkingKey(false, arg1, 0);
  6005. return;
  6006. }
  6007.  
  6008. protected function generateWorkingKey(arg1:Boolean, arg2:flash.utils.ByteArray, arg3:uint):Array
  6009. {
  6010. var loc4:*=0;
  6011. var loc7:*=0;
  6012. var loc8:*=0;
  6013. var loc9:*=0;
  6014. var loc10:*=0;
  6015. var loc1:*=[];
  6016. var loc2:*=new ByteArray();
  6017. var loc3:*=new ByteArray();
  6018. var loc5:*=0;
  6019. while (loc5 < 56)
  6020. {
  6021. loc4 = pc1[loc5];
  6022. loc2[loc5] = !((arg2[arg3 + (loc4 >>> 3)] & bytebit[loc4 & 7]) == 0);
  6023. ++loc5;
  6024. }
  6025. var loc6:*=0;
  6026. while (loc6 < 16)
  6027. {
  6028. if (arg1)
  6029. {
  6030. loc7 = loc6 << 1;
  6031. }
  6032. else
  6033. {
  6034. loc7 = 15 - loc6 << 1;
  6035. }
  6036. loc8 = loc7 + 1;
  6037. var loc11:*;
  6038. loc1[loc8] = loc11 = 0;
  6039. loc1[loc7] = loc11;
  6040. loc5 = 0;
  6041. while (loc5 < 28)
  6042. {
  6043. if ((loc4 = loc5 + totrot[loc6]) < 28)
  6044. {
  6045. loc3[loc5] = loc2[loc4];
  6046. }
  6047. else
  6048. {
  6049. loc3[loc5] = loc2[loc4 - 28];
  6050. }
  6051. ++loc5;
  6052. }
  6053. loc5 = 28;
  6054. while (loc5 < 56)
  6055. {
  6056. if ((loc4 = loc5 + totrot[loc6]) < 56)
  6057. {
  6058. loc3[loc5] = loc2[loc4];
  6059. }
  6060. else
  6061. {
  6062. loc3[loc5] = loc2[loc4 - 28];
  6063. }
  6064. ++loc5;
  6065. }
  6066. loc5 = 0;
  6067. while (loc5 < 24)
  6068. {
  6069. if (loc3[pc2[loc5]])
  6070. {
  6071. loc1[loc7] = loc1[loc7] | bigbyte[loc5];
  6072. }
  6073. if (loc3[pc2[loc5 + 24]])
  6074. {
  6075. loc1[loc8] = loc1[loc8] | bigbyte[loc5];
  6076. }
  6077. ++loc5;
  6078. }
  6079. ++loc6;
  6080. }
  6081. loc6 = 0;
  6082. while (loc6 != 32)
  6083. {
  6084. loc9 = loc1[loc6];
  6085. loc10 = loc1[loc6 + 1];
  6086. loc1[loc6] = (loc9 & 16515072) << 6 | (loc9 & 4032) << 10 | (loc10 & 16515072) >>> 10 | (loc10 & 4032) >>> 6;
  6087. loc1[loc6 + 1] = (loc9 & 258048) << 12 | (loc9 & 63) << 16 | (loc10 & 258048) >>> 4 | loc10 & 63;
  6088. loc6 = loc6 + 2;
  6089. }
  6090. return loc1;
  6091. }
  6092.  
  6093. public function getBlockSize():uint
  6094. {
  6095. return 8;
  6096. }
  6097.  
  6098. public function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6099. {
  6100. desFunc(encKey, arg1, arg2, arg1, arg2);
  6101. return;
  6102. }
  6103.  
  6104. public function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6105. {
  6106. desFunc(decKey, arg1, arg2, arg1, arg2);
  6107. return;
  6108. }
  6109.  
  6110. protected function desFunc(arg1:Array, arg2:flash.utils.ByteArray, arg3:uint, arg4:flash.utils.ByteArray, arg5:uint):void
  6111. {
  6112. var loc1:*=0;
  6113. var loc2:*=0;
  6114. var loc3:*=0;
  6115. var loc5:*=0;
  6116. loc3 = (loc3 = (loc3 = (loc3 = (arg2[arg3 + 0] & 255) << 24) | (arg2[arg3 + 1] & 255) << 16) | (arg2[arg3 + 2] & 255) << 8) | arg2[arg3 + 3] & 255;
  6117. loc2 = (loc2 = (loc2 = (loc2 = (arg2[arg3 + 4] & 255) << 24) | (arg2[arg3 + 5] & 255) << 16) | (arg2[arg3 + 6] & 255) << 8) | arg2[arg3 + 7] & 255;
  6118. loc1 = (loc3 >>> 4 ^ loc2) & 252645135;
  6119. loc2 = loc2 ^ loc1;
  6120. loc1 = ((loc3 = loc3 ^ loc1 << 4) >>> 16 ^ loc2) & 65535;
  6121. loc2 = loc2 ^ loc1;
  6122. loc3 = loc3 ^ loc1 << 16;
  6123. loc1 = (loc2 >>> 2 ^ loc3) & 858993459;
  6124. loc3 = loc3 ^ loc1;
  6125. loc1 = ((loc2 = loc2 ^ loc1 << 2) >>> 8 ^ loc3) & 16711935;
  6126. loc3 = loc3 ^ loc1;
  6127. loc2 = ((loc2 = loc2 ^ loc1 << 8) << 1 | loc2 >>> 31 & 1) & 4294967295;
  6128. loc1 = (loc3 ^ loc2) & 2863311530;
  6129. loc3 = loc3 ^ loc1;
  6130. loc2 = loc2 ^ loc1;
  6131. loc3 = (loc3 << 1 | loc3 >>> 31 & 1) & 4294967295;
  6132. var loc4:*=0;
  6133. while (loc4 < 8)
  6134. {
  6135. loc1 = (loc1 = loc2 << 28 | loc2 >>> 4) ^ arg1[loc4 * 4 + 0];
  6136. loc5 = (loc5 = (loc5 = (loc5 = SP7[loc1 & 63]) | SP5[loc1 >>> 8 & 63]) | SP3[loc1 >>> 16 & 63]) | SP1[loc1 >>> 24 & 63];
  6137. loc1 = loc2 ^ arg1[loc4 * 4 + 1];
  6138. loc5 = (loc5 = (loc5 = (loc5 = loc5 | SP8[loc1 & 63]) | SP6[loc1 >>> 8 & 63]) | SP4[loc1 >>> 16 & 63]) | SP2[loc1 >>> 24 & 63];
  6139. loc1 = (loc1 = (loc3 = loc3 ^ loc5) << 28 | loc3 >>> 4) ^ arg1[loc4 * 4 + 2];
  6140. loc5 = (loc5 = (loc5 = (loc5 = SP7[loc1 & 63]) | SP5[loc1 >>> 8 & 63]) | SP3[loc1 >>> 16 & 63]) | SP1[loc1 >>> 24 & 63];
  6141. loc1 = loc3 ^ arg1[loc4 * 4 + 3];
  6142. loc5 = (loc5 = (loc5 = (loc5 = loc5 | SP8[loc1 & 63]) | SP6[loc1 >>> 8 & 63]) | SP4[loc1 >>> 16 & 63]) | SP2[loc1 >>> 24 & 63];
  6143. loc2 = loc2 ^ loc5;
  6144. ++loc4;
  6145. }
  6146. loc2 = loc2 << 31 | loc2 >>> 1;
  6147. loc1 = (loc3 ^ loc2) & 2863311530;
  6148. loc3 = loc3 ^ loc1;
  6149. loc2 = loc2 ^ loc1;
  6150. loc1 = ((loc3 = loc3 << 31 | loc3 >>> 1) >>> 8 ^ loc2) & 16711935;
  6151. loc2 = loc2 ^ loc1;
  6152. loc1 = ((loc3 = loc3 ^ loc1 << 8) >>> 2 ^ loc2) & 858993459;
  6153. loc2 = loc2 ^ loc1;
  6154. loc3 = loc3 ^ loc1 << 2;
  6155. loc1 = (loc2 >>> 16 ^ loc3) & 65535;
  6156. loc3 = loc3 ^ loc1;
  6157. loc1 = ((loc2 = loc2 ^ loc1 << 16) >>> 4 ^ loc3) & 252645135;
  6158. loc3 = loc3 ^ loc1;
  6159. loc2 = loc2 ^ loc1 << 4;
  6160. arg4[arg5 + 0] = loc2 >>> 24 & 255;
  6161. arg4[arg5 + 1] = loc2 >>> 16 & 255;
  6162. arg4[arg5 + 2] = loc2 >>> 8 & 255;
  6163. arg4[arg5 + 3] = loc2 & 255;
  6164. arg4[arg5 + 4] = loc3 >>> 24 & 255;
  6165. arg4[arg5 + 5] = loc3 >>> 16 & 255;
  6166. arg4[arg5 + 6] = loc3 >>> 8 & 255;
  6167. arg4[arg5 + 7] = loc3 & 255;
  6168. return;
  6169. }
  6170.  
  6171. public function toString():String
  6172. {
  6173. return "des";
  6174. }
  6175.  
  6176. public function dispose():void
  6177. {
  6178. var loc1:*=0;
  6179. loc1 = 0;
  6180. while (loc1 < encKey.length)
  6181. {
  6182. encKey[loc1] = 0;
  6183. ++loc1;
  6184. }
  6185. loc1 = 0;
  6186. while (loc1 < decKey.length)
  6187. {
  6188. decKey[loc1] = 0;
  6189. ++loc1;
  6190. }
  6191. encKey = null;
  6192. decKey = null;
  6193. loc1 = 0;
  6194. while (loc1 < key.length)
  6195. {
  6196. key[loc1] = 0;
  6197. ++loc1;
  6198. }
  6199. key.length = 0;
  6200. key = null;
  6201. Memory.gc();
  6202. return;
  6203. }
  6204.  
  6205. internal static const SP8:Array=[268439616, 4096, 262144, 268701760, 268435456, 268439616, 64, 268435456, 262208, 268697600, 268701760, 266240, 268701696, 266304, 4096, 64, 268697600, 268435520, 268439552, 4160, 266240, 262208, 268697664, 268701696, 4160, 0, 0, 268697664, 268435520, 268439552, 266304, 262144, 266304, 262144, 268701696, 4096, 64, 268697664, 4096, 266304, 268439552, 64, 268435520, 268697600, 268697664, 268435456, 262144, 268439616, 0, 268701760, 262208, 268435520, 268697600, 268439552, 268439616, 0, 268701760, 266240, 266240, 4160, 4160, 262208, 268435456, 268701696];
  6206.  
  6207. internal static const bytebit:Array=[128, 64, 32, 16, 8, 4, 2, 1];
  6208.  
  6209. internal static const bigbyte:Array=[8388608, 4194304, 2097152, 1048576, 524288, 262144, 131072, 65536, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1];
  6210.  
  6211. internal static const pc1:Array=[56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3];
  6212.  
  6213. internal static const pc2:Array=[13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31];
  6214.  
  6215. internal static const Df_Key:Array=[1, 35, 69, 103, 137, 171, 205, 239, 254, 220, 186, 152, 118, 84, 50, 16, 137, 171, 205, 239, 1, 35, 69, 103];
  6216.  
  6217. internal static const totrot:Array=[1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
  6218.  
  6219. internal static const SP1:Array=[16843776, 0, 65536, 16843780, 16842756, 66564, 4, 65536, 1024, 16843776, 16843780, 1024, 16778244, 16842756, 16777216, 4, 1028, 16778240, 16778240, 66560, 66560, 16842752, 16842752, 16778244, 65540, 16777220, 16777220, 65540, 0, 1028, 66564, 16777216, 65536, 16843780, 4, 16842752, 16843776, 16777216, 16777216, 1024, 16842756, 65536, 66560, 16777220, 1024, 4, 16778244, 66564, 16843780, 65540, 16842752, 16778244, 16777220, 1028, 66564, 16843776, 1028, 16778240, 16778240, 0, 65540, 66560, 0, 16842756];
  6220.  
  6221. internal static const SP2:Array=[2148565024, 2147516416, 32768, 1081376, 1048576, 32, 2148532256, 2147516448, 2147483680, 2148565024, 2148564992, 2147483648, 2147516416, 1048576, 32, 2148532256, 1081344, 1048608, 2147516448, 0, 2147483648, 32768, 1081376, 2148532224, 1048608, 2147483680, 0, 1081344, 32800, 2148564992, 2148532224, 32800, 0, 1081376, 2148532256, 1048576, 2147516448, 2148532224, 2148564992, 32768, 2148532224, 2147516416, 32, 2148565024, 1081376, 32, 32768, 2147483648, 32800, 2148564992, 1048576, 2147483680, 1048608, 2147516448, 2147483680, 1048608, 1081344, 0, 2147516416, 32800, 2147483648, 2148532256, 2148565024, 1081344];
  6222.  
  6223. internal static const SP3:Array=[520, 134349312, 0, 134348808, 134218240, 0, 131592, 134218240, 131080, 134217736, 134217736, 131072, 134349320, 131080, 134348800, 520, 134217728, 8, 134349312, 512, 131584, 134348800, 134348808, 131592, 134218248, 131584, 131072, 134218248, 8, 134349320, 512, 134217728, 134349312, 134217728, 131080, 520, 131072, 134349312, 134218240, 0, 512, 131080, 134349320, 134218240, 134217736, 512, 0, 134348808, 134218248, 131072, 134217728, 134349320, 8, 131592, 131584, 134217736, 134348800, 134218248, 520, 134348800, 131592, 8, 134348808, 131584];
  6224.  
  6225. internal static const SP4:Array=[8396801, 8321, 8321, 128, 8396928, 8388737, 8388609, 8193, 0, 8396800, 8396800, 8396929, 129, 0, 8388736, 8388609, 1, 8192, 8388608, 8396801, 128, 8388608, 8193, 8320, 8388737, 1, 8320, 8388736, 8192, 8396928, 8396929, 129, 8388736, 8388609, 8396800, 8396929, 129, 0, 0, 8396800, 8320, 8388736, 8388737, 1, 8396801, 8321, 8321, 128, 8396929, 129, 1, 8192, 8388609, 8193, 8396928, 8388737, 8193, 8320, 8388608, 8396801, 128, 8388608, 8192, 8396928];
  6226.  
  6227. internal static const SP5:Array=[256, 34078976, 34078720, 1107296512, 524288, 256, 1073741824, 34078720, 1074266368, 524288, 33554688, 1074266368, 1107296512, 1107820544, 524544, 1073741824, 33554432, 1074266112, 1074266112, 0, 1073742080, 1107820800, 1107820800, 33554688, 1107820544, 1073742080, 0, 1107296256, 34078976, 33554432, 1107296256, 524544, 524288, 1107296512, 256, 33554432, 1073741824, 34078720, 1107296512, 1074266368, 33554688, 1073741824, 1107820544, 34078976, 1074266368, 256, 33554432, 1107820544, 1107820800, 524544, 1107296256, 1107820800, 34078720, 0, 1074266112, 1107296256, 524544, 33554688, 1073742080, 524288, 0, 1074266112, 34078976, 1073742080];
  6228.  
  6229. internal static const SP6:Array=[536870928, 541065216, 16384, 541081616, 541065216, 16, 541081616, 4194304, 536887296, 4210704, 4194304, 536870928, 4194320, 536887296, 536870912, 16400, 0, 4194320, 536887312, 16384, 4210688, 536887312, 16, 541065232, 541065232, 0, 4210704, 541081600, 16400, 4210688, 541081600, 536870912, 536887296, 16, 541065232, 4210688, 541081616, 4194304, 16400, 536870928, 4194304, 536887296, 536870912, 16400, 536870928, 541081616, 4210688, 541065216, 4210704, 541081600, 0, 541065232, 16, 16384, 541065216, 4210704, 16384, 4194320, 536887312, 0, 541081600, 536870912, 4194320, 536887312];
  6230.  
  6231. internal static const SP7:Array=[2097152, 69206018, 67110914, 0, 2048, 67110914, 2099202, 69208064, 69208066, 2097152, 0, 67108866, 2, 67108864, 69206018, 2050, 67110912, 2099202, 2097154, 67110912, 67108866, 69206016, 69208064, 2097154, 69206016, 2048, 2050, 69208066, 2099200, 2, 67108864, 2099200, 67108864, 2099200, 2097152, 67110914, 67110914, 69206018, 69206018, 2, 2097154, 67108864, 67110912, 2097152, 69208064, 2050, 2099202, 69208064, 2050, 67108866, 69208066, 69206016, 2099200, 0, 2, 69208066, 0, 2099202, 69206016, 2048, 67108866, 67110912, 2048, 2097154];
  6232.  
  6233. protected var encKey:Array;
  6234.  
  6235. protected var key:flash.utils.ByteArray;
  6236.  
  6237. protected var decKey:Array;
  6238. }
  6239. }
  6240.  
  6241.  
  6242. // class ECBMode
  6243. package com.hurlant.crypto.symmetric
  6244. {
  6245. import com.hurlant.util.*;
  6246. import flash.utils.*;
  6247.  
  6248. public class ECBMode extends Object implements IMode, ICipher
  6249. {
  6250. public function ECBMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  6251. {
  6252. super();
  6253. this.key = arg1;
  6254. if (arg2 != null)
  6255. {
  6256. arg2.setBlockSize(arg1.getBlockSize());
  6257. }
  6258. else
  6259. {
  6260. arg2 = new PKCS5(arg1.getBlockSize());
  6261. }
  6262. this.padding = arg2;
  6263. return;
  6264. }
  6265.  
  6266. public function encrypt(arg1:flash.utils.ByteArray):void
  6267. {
  6268. padding.pad(arg1);
  6269. arg1.position = 0;
  6270. var loc1:*=key.getBlockSize();
  6271. var loc2:*=new ByteArray();
  6272. var loc3:*=new ByteArray();
  6273. var loc4:*=0;
  6274. while (loc4 < arg1.length)
  6275. {
  6276. loc2.length = 0;
  6277. arg1.readBytes(loc2, 0, loc1);
  6278. key.encrypt(loc2);
  6279. loc3.writeBytes(loc2);
  6280. loc4 = loc4 + loc1;
  6281. }
  6282. arg1.length = 0;
  6283. arg1.writeBytes(loc3);
  6284. return;
  6285. }
  6286.  
  6287. public function getBlockSize():uint
  6288. {
  6289. return key.getBlockSize();
  6290. }
  6291.  
  6292. public function decrypt(arg1:flash.utils.ByteArray):void
  6293. {
  6294. arg1.position = 0;
  6295. var loc1:*=key.getBlockSize();
  6296. if (arg1.length % loc1 != 0)
  6297. {
  6298. throw new Error("ECB mode cipher length must be a multiple of blocksize " + loc1);
  6299. }
  6300. var loc2:*=new ByteArray();
  6301. var loc3:*=new ByteArray();
  6302. var loc4:*=0;
  6303. while (loc4 < arg1.length)
  6304. {
  6305. loc2.length = 0;
  6306. arg1.readBytes(loc2, 0, loc1);
  6307. key.decrypt(loc2);
  6308. loc3.writeBytes(loc2);
  6309. loc4 = loc4 + loc1;
  6310. }
  6311. padding.unpad(loc3);
  6312. arg1.length = 0;
  6313. arg1.writeBytes(loc3);
  6314. return;
  6315. }
  6316.  
  6317. public function toString():String
  6318. {
  6319. return key.toString() + "-ecb";
  6320. }
  6321.  
  6322. public function dispose():void
  6323. {
  6324. key.dispose();
  6325. key = null;
  6326. padding = null;
  6327. Memory.gc();
  6328. return;
  6329. }
  6330.  
  6331. internal var key:com.hurlant.crypto.symmetric.ISymmetricKey;
  6332.  
  6333. internal var padding:com.hurlant.crypto.symmetric.IPad;
  6334. }
  6335. }
  6336.  
  6337.  
  6338. // class ICipher
  6339. package com.hurlant.crypto.symmetric
  6340. {
  6341. import flash.utils.*;
  6342.  
  6343. public interface ICipher
  6344. {
  6345. function encrypt(arg1:flash.utils.ByteArray):void;
  6346.  
  6347. function getBlockSize():uint;
  6348.  
  6349. function toString():String;
  6350.  
  6351. function decrypt(arg1:flash.utils.ByteArray):void;
  6352.  
  6353. function dispose():void;
  6354. }
  6355. }
  6356.  
  6357.  
  6358. // class IMode
  6359. package com.hurlant.crypto.symmetric
  6360. {
  6361. public interface IMode extends ICipher
  6362. {
  6363. }
  6364. }
  6365.  
  6366.  
  6367. // class IPad
  6368. package com.hurlant.crypto.symmetric
  6369. {
  6370. import flash.utils.*;
  6371.  
  6372. public interface IPad
  6373. {
  6374. function unpad(arg1:flash.utils.ByteArray):void;
  6375.  
  6376. function pad(arg1:flash.utils.ByteArray):void;
  6377.  
  6378. function setBlockSize(arg1:uint):void;
  6379. }
  6380. }
  6381.  
  6382.  
  6383. // class IStreamCipher
  6384. package com.hurlant.crypto.symmetric
  6385. {
  6386. public interface IStreamCipher extends ICipher
  6387. {
  6388. }
  6389. }
  6390.  
  6391.  
  6392. // class ISymmetricKey
  6393. package com.hurlant.crypto.symmetric
  6394. {
  6395. import flash.utils.*;
  6396.  
  6397. public interface ISymmetricKey
  6398. {
  6399. function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void;
  6400.  
  6401. function getBlockSize():uint;
  6402.  
  6403. function toString():String;
  6404.  
  6405. function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void;
  6406.  
  6407. function dispose():void;
  6408. }
  6409. }
  6410.  
  6411.  
  6412. // class IVMode
  6413. package com.hurlant.crypto.symmetric
  6414. {
  6415. import com.hurlant.crypto.prng.*;
  6416. import com.hurlant.util.*;
  6417. import flash.utils.*;
  6418.  
  6419. public class IVMode extends Object
  6420. {
  6421. public function IVMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  6422. {
  6423. super();
  6424. this.key = arg1;
  6425. blockSize = arg1.getBlockSize();
  6426. if (arg2 != null)
  6427. {
  6428. arg2.setBlockSize(blockSize);
  6429. }
  6430. else
  6431. {
  6432. arg2 = new PKCS5(blockSize);
  6433. }
  6434. this.padding = arg2;
  6435. prng = new Random();
  6436. iv = null;
  6437. lastIV = new ByteArray();
  6438. return;
  6439. }
  6440.  
  6441. public function set IV(arg1:flash.utils.ByteArray):void
  6442. {
  6443. iv = arg1;
  6444. lastIV.length = 0;
  6445. lastIV.writeBytes(iv);
  6446. return;
  6447. }
  6448.  
  6449. protected function getIV4d():flash.utils.ByteArray
  6450. {
  6451. var loc1:*=new ByteArray();
  6452. if (iv)
  6453. {
  6454. loc1.writeBytes(iv);
  6455. }
  6456. else
  6457. {
  6458. throw new Error("an IV must be set before calling decrypt()");
  6459. }
  6460. return loc1;
  6461. }
  6462.  
  6463. protected function getIV4e():flash.utils.ByteArray
  6464. {
  6465. var loc1:*=new ByteArray();
  6466. if (iv)
  6467. {
  6468. loc1.writeBytes(iv);
  6469. }
  6470. else
  6471. {
  6472. prng.nextBytes(loc1, blockSize);
  6473. }
  6474. lastIV.length = 0;
  6475. lastIV.writeBytes(loc1);
  6476. return loc1;
  6477. }
  6478.  
  6479. public function get IV():flash.utils.ByteArray
  6480. {
  6481. return lastIV;
  6482. }
  6483.  
  6484. public function dispose():void
  6485. {
  6486. var loc1:*=0;
  6487. if (iv != null)
  6488. {
  6489. loc1 = 0;
  6490. while (loc1 < iv.length)
  6491. {
  6492. iv[loc1] = prng.nextByte();
  6493. ++loc1;
  6494. }
  6495. iv.length = 0;
  6496. iv = null;
  6497. }
  6498. if (lastIV != null)
  6499. {
  6500. loc1 = 0;
  6501. while (loc1 < iv.length)
  6502. {
  6503. lastIV[loc1] = prng.nextByte();
  6504. ++loc1;
  6505. }
  6506. lastIV.length = 0;
  6507. lastIV = null;
  6508. }
  6509. key.dispose();
  6510. key = null;
  6511. padding = null;
  6512. prng.dispose();
  6513. prng = null;
  6514. Memory.gc();
  6515. return;
  6516. }
  6517.  
  6518. public function getBlockSize():uint
  6519. {
  6520. return key.getBlockSize();
  6521. }
  6522.  
  6523. protected var lastIV:flash.utils.ByteArray;
  6524.  
  6525. protected var iv:flash.utils.ByteArray;
  6526.  
  6527. protected var blockSize:uint;
  6528.  
  6529. protected var padding:com.hurlant.crypto.symmetric.IPad;
  6530.  
  6531. protected var prng:com.hurlant.crypto.prng.Random;
  6532.  
  6533. protected var key:com.hurlant.crypto.symmetric.ISymmetricKey;
  6534. }
  6535. }
  6536.  
  6537.  
  6538. // class NullPad
  6539. package com.hurlant.crypto.symmetric
  6540. {
  6541. import flash.utils.*;
  6542.  
  6543. public class NullPad extends Object implements IPad
  6544. {
  6545. public function NullPad()
  6546. {
  6547. super();
  6548. return;
  6549. }
  6550.  
  6551. public function unpad(arg1:flash.utils.ByteArray):void
  6552. {
  6553. return;
  6554. }
  6555.  
  6556. public function pad(arg1:flash.utils.ByteArray):void
  6557. {
  6558. return;
  6559. }
  6560.  
  6561. public function setBlockSize(arg1:uint):void
  6562. {
  6563. return;
  6564. }
  6565. }
  6566. }
  6567.  
  6568.  
  6569. // class OFBMode
  6570. package com.hurlant.crypto.symmetric
  6571. {
  6572. import flash.utils.*;
  6573.  
  6574. public class OFBMode extends com.hurlant.crypto.symmetric.IVMode implements IMode
  6575. {
  6576. public function OFBMode(arg1:com.hurlant.crypto.symmetric.ISymmetricKey, arg2:com.hurlant.crypto.symmetric.IPad=null)
  6577. {
  6578. super(arg1, null);
  6579. return;
  6580. }
  6581.  
  6582. internal function core(arg1:flash.utils.ByteArray, arg2:flash.utils.ByteArray):void
  6583. {
  6584. var loc4:*=0;
  6585. var loc5:*=0;
  6586. var loc1:*=arg1.length;
  6587. var loc2:*=new ByteArray();
  6588. var loc3:*=0;
  6589. while (loc3 < arg1.length)
  6590. {
  6591. key.encrypt(arg2);
  6592. loc2.position = 0;
  6593. loc2.writeBytes(arg2);
  6594. loc4 = loc3 + blockSize < loc1 ? blockSize : loc1 - loc3;
  6595. loc5 = 0;
  6596. while (loc5 < loc4)
  6597. {
  6598. arg1[loc3 + loc5] = arg1[loc3 + loc5] ^ arg2[loc5];
  6599. ++loc5;
  6600. }
  6601. arg2.position = 0;
  6602. arg2.writeBytes(loc2);
  6603. loc3 = loc3 + blockSize;
  6604. }
  6605. return;
  6606. }
  6607.  
  6608. public function toString():String
  6609. {
  6610. return key.toString() + "-ofb";
  6611. }
  6612.  
  6613. public function encrypt(arg1:flash.utils.ByteArray):void
  6614. {
  6615. var loc1:*=getIV4e();
  6616. core(arg1, loc1);
  6617. return;
  6618. }
  6619.  
  6620. public function decrypt(arg1:flash.utils.ByteArray):void
  6621. {
  6622. var loc1:*=getIV4d();
  6623. core(arg1, loc1);
  6624. return;
  6625. }
  6626. }
  6627. }
  6628.  
  6629.  
  6630. // class PKCS5
  6631. package com.hurlant.crypto.symmetric
  6632. {
  6633. import flash.utils.*;
  6634.  
  6635. public class PKCS5 extends Object implements IPad
  6636. {
  6637. public function PKCS5(arg1:uint=0)
  6638. {
  6639. super();
  6640. this.blockSize = arg1;
  6641. return;
  6642. }
  6643.  
  6644. public function pad(arg1:flash.utils.ByteArray):void
  6645. {
  6646. var loc1:*=blockSize - arg1.length % blockSize;
  6647. var loc2:*=0;
  6648. while (loc2 < loc1)
  6649. {
  6650. arg1[arg1.length] = loc1;
  6651. ++loc2;
  6652. }
  6653. return;
  6654. }
  6655.  
  6656. public function setBlockSize(arg1:uint):void
  6657. {
  6658. blockSize = arg1;
  6659. return;
  6660. }
  6661.  
  6662. public function unpad(arg1:flash.utils.ByteArray):void
  6663. {
  6664. var loc3:*=0;
  6665. var loc1:*=arg1.length % blockSize;
  6666. if (loc1 != 0)
  6667. {
  6668. throw new Error("PKCS#5::unpad: ByteArray.length isn\'t a multiple of the blockSize");
  6669. }
  6670. loc1 = arg1[(arg1.length - 1)];
  6671. var loc2:*=loc1;
  6672. while (loc2 > 0)
  6673. {
  6674. loc3 = arg1[(arg1.length - 1)];
  6675. var loc4:*;
  6676. var loc5:*=((loc4 = arg1).length - 1);
  6677. loc4.length = loc5;
  6678. if (loc1 != loc3)
  6679. {
  6680. throw new Error("PKCS#5:unpad: Invalid padding value. expected [" + loc1 + "], found [" + loc3 + "]");
  6681. }
  6682. --loc2;
  6683. }
  6684. return;
  6685. }
  6686.  
  6687. internal var blockSize:uint;
  6688. }
  6689. }
  6690.  
  6691.  
  6692. // class SimpleIVMode
  6693. package com.hurlant.crypto.symmetric
  6694. {
  6695. import com.hurlant.util.*;
  6696. import flash.utils.*;
  6697.  
  6698. public class SimpleIVMode extends Object implements IMode, ICipher
  6699. {
  6700. public function SimpleIVMode(arg1:com.hurlant.crypto.symmetric.IVMode)
  6701. {
  6702. super();
  6703. this.mode = arg1;
  6704. cipher = arg1 as ICipher;
  6705. return;
  6706. }
  6707.  
  6708. public function encrypt(arg1:flash.utils.ByteArray):void
  6709. {
  6710. cipher.encrypt(arg1);
  6711. var loc1:*=new ByteArray();
  6712. loc1.writeBytes(mode.IV);
  6713. loc1.writeBytes(arg1);
  6714. arg1.position = 0;
  6715. arg1.writeBytes(loc1);
  6716. return;
  6717. }
  6718.  
  6719. public function decrypt(arg1:flash.utils.ByteArray):void
  6720. {
  6721. var loc1:*=new ByteArray();
  6722. loc1.writeBytes(arg1, 0, getBlockSize());
  6723. mode.IV = loc1;
  6724. loc1 = new ByteArray();
  6725. loc1.writeBytes(arg1, getBlockSize());
  6726. cipher.decrypt(loc1);
  6727. arg1.length = 0;
  6728. arg1.writeBytes(loc1);
  6729. return;
  6730. }
  6731.  
  6732. public function dispose():void
  6733. {
  6734. mode.dispose();
  6735. mode = null;
  6736. cipher = null;
  6737. Memory.gc();
  6738. return;
  6739. }
  6740.  
  6741. public function getBlockSize():uint
  6742. {
  6743. return mode.getBlockSize();
  6744. }
  6745.  
  6746. public function toString():String
  6747. {
  6748. return "simple-" + cipher.toString();
  6749. }
  6750.  
  6751. protected var mode:com.hurlant.crypto.symmetric.IVMode;
  6752.  
  6753. protected var cipher:com.hurlant.crypto.symmetric.ICipher;
  6754. }
  6755. }
  6756.  
  6757.  
  6758. // class TripleDESKey
  6759. package com.hurlant.crypto.symmetric
  6760. {
  6761. import com.hurlant.util.*;
  6762. import flash.utils.*;
  6763.  
  6764. public class TripleDESKey extends com.hurlant.crypto.symmetric.DESKey
  6765. {
  6766. public function TripleDESKey(arg1:flash.utils.ByteArray)
  6767. {
  6768. super(arg1);
  6769. encKey2 = generateWorkingKey(false, arg1, 8);
  6770. decKey2 = generateWorkingKey(true, arg1, 8);
  6771. if (arg1.length > 16)
  6772. {
  6773. encKey3 = generateWorkingKey(true, arg1, 16);
  6774. decKey3 = generateWorkingKey(false, arg1, 16);
  6775. }
  6776. else
  6777. {
  6778. encKey3 = encKey;
  6779. decKey3 = decKey;
  6780. }
  6781. return;
  6782. }
  6783.  
  6784. public override function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6785. {
  6786. desFunc(encKey, arg1, arg2, arg1, arg2);
  6787. desFunc(encKey2, arg1, arg2, arg1, arg2);
  6788. desFunc(encKey3, arg1, arg2, arg1, arg2);
  6789. return;
  6790. }
  6791.  
  6792. public override function dispose():void
  6793. {
  6794. super.dispose();
  6795. var loc1:*=0;
  6796. if (encKey2 != null)
  6797. {
  6798. loc1 = 0;
  6799. while (loc1 < encKey2.length)
  6800. {
  6801. encKey2[loc1] = 0;
  6802. ++loc1;
  6803. }
  6804. encKey2 = null;
  6805. }
  6806. if (encKey3 != null)
  6807. {
  6808. loc1 = 0;
  6809. while (loc1 < encKey3.length)
  6810. {
  6811. encKey3[loc1] = 0;
  6812. ++loc1;
  6813. }
  6814. encKey3 = null;
  6815. }
  6816. if (decKey2 != null)
  6817. {
  6818. loc1 = 0;
  6819. while (loc1 < decKey2.length)
  6820. {
  6821. decKey2[loc1] = 0;
  6822. ++loc1;
  6823. }
  6824. decKey2 = null;
  6825. }
  6826. if (decKey3 != null)
  6827. {
  6828. loc1 = 0;
  6829. while (loc1 < decKey3.length)
  6830. {
  6831. decKey3[loc1] = 0;
  6832. ++loc1;
  6833. }
  6834. decKey3 = null;
  6835. }
  6836. Memory.gc();
  6837. return;
  6838. }
  6839.  
  6840. public override function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6841. {
  6842. desFunc(decKey3, arg1, arg2, arg1, arg2);
  6843. desFunc(decKey2, arg1, arg2, arg1, arg2);
  6844. desFunc(decKey, arg1, arg2, arg1, arg2);
  6845. return;
  6846. }
  6847.  
  6848. public override function toString():String
  6849. {
  6850. return "3des";
  6851. }
  6852.  
  6853. protected var encKey2:Array;
  6854.  
  6855. protected var encKey3:Array;
  6856.  
  6857. protected var decKey2:Array;
  6858.  
  6859. protected var decKey3:Array;
  6860. }
  6861. }
  6862.  
  6863.  
  6864. // class XTeaKey
  6865. package com.hurlant.crypto.symmetric
  6866. {
  6867. import com.hurlant.crypto.prng.*;
  6868. import com.hurlant.util.*;
  6869. import flash.utils.*;
  6870.  
  6871. public class XTeaKey extends Object implements ISymmetricKey
  6872. {
  6873. public function XTeaKey(arg1:flash.utils.ByteArray)
  6874. {
  6875. super();
  6876. arg1.position = 0;
  6877. k = [arg1.readUnsignedInt(), arg1.readUnsignedInt(), arg1.readUnsignedInt(), arg1.readUnsignedInt()];
  6878. return;
  6879. }
  6880.  
  6881. public function encrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6882. {
  6883. var loc3:*=0;
  6884. arg1.position = arg2;
  6885. var loc1:*=arg1.readUnsignedInt();
  6886. var loc2:*=arg1.readUnsignedInt();
  6887. var loc4:*=0;
  6888. var loc5:*=2654435769;
  6889. loc3 = 0;
  6890. while (loc3 < NUM_ROUNDS)
  6891. {
  6892. loc1 = loc1 + ((loc2 << 4 ^ loc2 >> 5) + loc2 ^ loc4 + k[loc4 & 3]);
  6893. loc4 = loc4 + loc5;
  6894. loc2 = loc2 + ((loc1 << 4 ^ loc1 >> 5) + loc1 ^ loc4 + k[loc4 >> 11 & 3]);
  6895. ++loc3;
  6896. }
  6897. arg1.position = arg1.position - 8;
  6898. arg1.writeUnsignedInt(loc1);
  6899. arg1.writeUnsignedInt(loc2);
  6900. return;
  6901. }
  6902.  
  6903. public function decrypt(arg1:flash.utils.ByteArray, arg2:uint=0):void
  6904. {
  6905. var loc3:*=0;
  6906. arg1.position = arg2;
  6907. var loc1:*=arg1.readUnsignedInt();
  6908. var loc2:*=arg1.readUnsignedInt();
  6909. var loc4:*;
  6910. var loc5:*=(loc4 = 2654435769) * NUM_ROUNDS;
  6911. loc3 = 0;
  6912. while (loc3 < NUM_ROUNDS)
  6913. {
  6914. loc2 = loc2 - ((loc1 << 4 ^ loc1 >> 5) + loc1 ^ loc5 + k[loc5 >> 11 & 3]);
  6915. loc5 = loc5 - loc4;
  6916. loc1 = loc1 - ((loc2 << 4 ^ loc2 >> 5) + loc2 ^ loc5 + k[loc5 & 3]);
  6917. ++loc3;
  6918. }
  6919. arg1.position = arg1.position - 8;
  6920. arg1.writeUnsignedInt(loc1);
  6921. arg1.writeUnsignedInt(loc2);
  6922. return;
  6923. }
  6924.  
  6925. public function getBlockSize():uint
  6926. {
  6927. return 8;
  6928. }
  6929.  
  6930. public function toString():String
  6931. {
  6932. return "xtea";
  6933. }
  6934.  
  6935. public function dispose():void
  6936. {
  6937. var loc1:*=new Random();
  6938. var loc2:*=0;
  6939. while (loc2 < k.length)
  6940. {
  6941. k[loc2] = loc1.nextByte();
  6942. delete k[loc2];
  6943. ++loc2;
  6944. }
  6945. k = null;
  6946. Memory.gc();
  6947. return;
  6948. }
  6949.  
  6950. public static function parseKey(arg1:String):com.hurlant.crypto.symmetric.XTeaKey
  6951. {
  6952. var loc1:*=new ByteArray();
  6953. loc1.writeUnsignedInt(parseInt(arg1.substr(0, 8), 16));
  6954. loc1.writeUnsignedInt(parseInt(arg1.substr(8, 8), 16));
  6955. loc1.writeUnsignedInt(parseInt(arg1.substr(16, 8), 16));
  6956. loc1.writeUnsignedInt(parseInt(arg1.substr(24, 8), 16));
  6957. loc1.position = 0;
  6958. return new XTeaKey(loc1);
  6959. }
  6960.  
  6961. public const NUM_ROUNDS:uint=64;
  6962.  
  6963. internal var k:Array;
  6964. }
  6965. }
  6966.  
  6967.  
  6968. // class Crypto
  6969. package com.hurlant.crypto
  6970. {
  6971. import com.hurlant.crypto.hash.*;
  6972. import com.hurlant.crypto.prng.*;
  6973. import com.hurlant.crypto.rsa.*;
  6974. import com.hurlant.crypto.symmetric.*;
  6975. import com.hurlant.util.*;
  6976. import flash.utils.*;
  6977.  
  6978. public class Crypto extends Object
  6979. {
  6980. public function Crypto()
  6981. {
  6982. super();
  6983. return;
  6984. }
  6985.  
  6986. public static function getCipher(arg1:String, arg2:flash.utils.ByteArray, arg3:com.hurlant.crypto.symmetric.IPad=null):com.hurlant.crypto.symmetric.ICipher
  6987. {
  6988. var loc2:*=null;
  6989. var loc1:*=arg1.split("-");
  6990. var loc3:*=loc1[0];
  6991. switch (loc3)
  6992. {
  6993. case "simple":
  6994. {
  6995. loc1.shift();
  6996. arg1 = loc1.join("-");
  6997. if ((loc2 = getCipher(arg1, arg2, arg3)) is IVMode)
  6998. {
  6999. return new SimpleIVMode(loc2 as IVMode);
  7000. }
  7001. return loc2;
  7002. }
  7003. case "aes":
  7004. case "aes128":
  7005. case "aes192":
  7006. case "aes256":
  7007. {
  7008. loc1.shift();
  7009. if (arg2.length * 8 == loc1[0])
  7010. {
  7011. loc1.shift();
  7012. }
  7013. return getMode(loc1[0], new AESKey(arg2), arg3);
  7014. }
  7015. case "bf":
  7016. case "blowfish":
  7017. {
  7018. loc1.shift();
  7019. return getMode(loc1[0], new BlowFishKey(arg2), arg3);
  7020. }
  7021. case "des":
  7022. {
  7023. loc1.shift();
  7024. if (!(loc1[0] == "ede") && !(loc1[0] == "ede3"))
  7025. {
  7026. return getMode(loc1[0], new DESKey(arg2), arg3);
  7027. }
  7028. if (loc1.length == 1)
  7029. {
  7030. loc1.push("ecb");
  7031. }
  7032. }
  7033. case "3des":
  7034. case "des3":
  7035. {
  7036. loc1.shift();
  7037. return getMode(loc1[0], new TripleDESKey(arg2), arg3);
  7038. }
  7039. case "xtea":
  7040. {
  7041. loc1.shift();
  7042. return getMode(loc1[0], new XTeaKey(arg2), arg3);
  7043. }
  7044. case "rc4":
  7045. {
  7046. loc1.shift();
  7047. return new ARC4(arg2);
  7048. }
  7049. }
  7050. return null;
  7051. }
  7052.  
  7053. public static function getHash(arg1:String):com.hurlant.crypto.hash.IHash
  7054. {
  7055. var loc1:*=arg1;
  7056. switch (loc1)
  7057. {
  7058. case "md2":
  7059. {
  7060. return new MD2();
  7061. }
  7062. case "md5":
  7063. {
  7064. return new MD5();
  7065. }
  7066. case "sha":
  7067. case "sha1":
  7068. {
  7069. return new SHA1();
  7070. }
  7071. case "sha224":
  7072. {
  7073. return new SHA224();
  7074. }
  7075. case "sha256":
  7076. {
  7077. return new SHA256();
  7078. }
  7079. }
  7080. return null;
  7081. }
  7082.  
  7083. public static function getRSA(arg1:String, arg2:String):com.hurlant.crypto.rsa.RSAKey
  7084. {
  7085. return RSAKey.parsePublicKey(arg2, arg1);
  7086. }
  7087.  
  7088. internal static function getMode(arg1:String, arg2:com.hurlant.crypto.symmetric.ISymmetricKey, arg3:com.hurlant.crypto.symmetric.IPad=null):com.hurlant.crypto.symmetric.IMode
  7089. {
  7090. var loc1:*=arg1;
  7091. switch (loc1)
  7092. {
  7093. case "ecb":
  7094. {
  7095. return new ECBMode(arg2, arg3);
  7096. }
  7097. case "cfb":
  7098. {
  7099. return new CFBMode(arg2, arg3);
  7100. }
  7101. case "cfb8":
  7102. {
  7103. return new CFB8Mode(arg2, arg3);
  7104. }
  7105. case "ofb":
  7106. {
  7107. return new OFBMode(arg2, arg3);
  7108. }
  7109. case "ctr":
  7110. {
  7111. return new CTRMode(arg2, arg3);
  7112. }
  7113. case "cbc":
  7114. default:
  7115. {
  7116. return new CBCMode(arg2, arg3);
  7117. }
  7118. }
  7119. }
  7120.  
  7121. public static function getKeySize(arg1:String):uint
  7122. {
  7123. var loc1:*=arg1.split("-");
  7124. var loc2:*=loc1[0];
  7125. switch (loc2)
  7126. {
  7127. case "simple":
  7128. {
  7129. loc1.shift();
  7130. return getKeySize(loc1.join("-"));
  7131. }
  7132. case "aes128":
  7133. {
  7134. return 16;
  7135. }
  7136. case "aes192":
  7137. {
  7138. return 24;
  7139. }
  7140. case "aes256":
  7141. {
  7142. return 32;
  7143. }
  7144. case "aes":
  7145. {
  7146. loc1.shift();
  7147. return parseInt(loc1[0]) / 8;
  7148. }
  7149. case "bf":
  7150. case "blowfish":
  7151. {
  7152. return 16;
  7153. }
  7154. case "des":
  7155. {
  7156. loc1.shift();
  7157. loc2 = loc1[0];
  7158. switch (loc2)
  7159. {
  7160. case "ede":
  7161. {
  7162. return 16;
  7163. }
  7164. case "ede3":
  7165. {
  7166. return 24;
  7167. }
  7168. default:
  7169. {
  7170. return 8;
  7171. }
  7172. }
  7173. }
  7174. case "3des":
  7175. case "des3":
  7176. {
  7177. return 24;
  7178. }
  7179. case "xtea":
  7180. {
  7181. return 8;
  7182. }
  7183. case "rc4":
  7184. {
  7185. if (parseInt(loc1[1]) > 0)
  7186. {
  7187. return parseInt(loc1[1]) / 8;
  7188. }
  7189. return 16;
  7190. }
  7191. }
  7192. return 0;
  7193. }
  7194.  
  7195. public static function getPad(arg1:String):com.hurlant.crypto.symmetric.IPad
  7196. {
  7197. var loc1:*=arg1;
  7198. switch (loc1)
  7199. {
  7200. case "null":
  7201. {
  7202. return new NullPad();
  7203. }
  7204. case "pkcs5":
  7205. default:
  7206. {
  7207. return new PKCS5();
  7208. }
  7209. }
  7210. }
  7211.  
  7212. public static function getHMAC(arg1:String):com.hurlant.crypto.hash.HMAC
  7213. {
  7214. var loc1:*=arg1.split("-");
  7215. if (loc1[0] == "hmac")
  7216. {
  7217. loc1.shift();
  7218. }
  7219. var loc2:*=0;
  7220. if (loc1.length > 1)
  7221. {
  7222. loc2 = parseInt(loc1[1]);
  7223. }
  7224. return new HMAC(getHash(loc1[0]), loc2);
  7225. }
  7226.  
  7227. internal var b64:com.hurlant.util.Base64;
  7228. }
  7229. }
  7230.  
  7231.  
  7232. // package math
  7233. // class BarrettReduction
  7234. package com.hurlant.math
  7235. {
  7236. use namespace bi_internal;
  7237.  
  7238. internal class BarrettReduction extends Object implements IReduction
  7239. {
  7240. public function BarrettReduction(arg1:com.hurlant.math.BigInteger)
  7241. {
  7242. super();
  7243. r2 = new BigInteger();
  7244. q3 = new BigInteger();
  7245. BigInteger.ONE.dlShiftTo(2 * arg1.t, r2);
  7246. mu = r2.divide(arg1);
  7247. this.m = arg1;
  7248. return;
  7249. }
  7250.  
  7251. public function revert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7252. {
  7253. return arg1;
  7254. }
  7255.  
  7256. public function sqrTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  7257. {
  7258. arg1.squareTo(arg2);
  7259. reduce(arg2);
  7260. return;
  7261. }
  7262.  
  7263. public function convert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7264. {
  7265. var loc1:*=null;
  7266. if (arg1.s < 0 || arg1.t > 2 * m.t)
  7267. {
  7268. return arg1.mod(m);
  7269. }
  7270. if (arg1.compareTo(m) < 0)
  7271. {
  7272. return arg1;
  7273. }
  7274. loc1 = new BigInteger();
  7275. arg1.copyTo(loc1);
  7276. reduce(loc1);
  7277. return loc1;
  7278. }
  7279.  
  7280. public function reduce(arg1:com.hurlant.math.BigInteger):void
  7281. {
  7282. var loc1:*=arg1 as BigInteger;
  7283. loc1.drShiftTo((m.t - 1), r2);
  7284. if (loc1.t > m.t + 1)
  7285. {
  7286. loc1.t = m.t + 1;
  7287. loc1.clamp();
  7288. }
  7289. mu.multiplyUpperTo(r2, m.t + 1, q3);
  7290. m.multiplyLowerTo(q3, m.t + 1, r2);
  7291. while (loc1.compareTo(r2) < 0)
  7292. {
  7293. loc1.dAddOffset(1, m.t + 1);
  7294. }
  7295. loc1.subTo(r2, loc1);
  7296. while (loc1.compareTo(m) >= 0)
  7297. {
  7298. loc1.subTo(m, loc1);
  7299. }
  7300. return;
  7301. }
  7302.  
  7303. public function mulTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger, arg3:com.hurlant.math.BigInteger):void
  7304. {
  7305. arg1.multiplyTo(arg2, arg3);
  7306. reduce(arg3);
  7307. return;
  7308. }
  7309.  
  7310. internal var r2:com.hurlant.math.BigInteger;
  7311.  
  7312. internal var q3:com.hurlant.math.BigInteger;
  7313.  
  7314. internal var mu:com.hurlant.math.BigInteger;
  7315.  
  7316. internal var m:com.hurlant.math.BigInteger;
  7317. }
  7318. }
  7319.  
  7320. use namespace bi_internal;
  7321.  
  7322.  
  7323. // class BigInteger
  7324. package com.hurlant.math
  7325. {
  7326. import com.hurlant.crypto.prng.*;
  7327. import com.hurlant.util.*;
  7328. import flash.utils.*;
  7329.  
  7330. use namespace bi_internal;
  7331.  
  7332. public class BigInteger extends Object
  7333. {
  7334. public function BigInteger(arg1:*=null, arg2:int=0)
  7335. {
  7336. var loc1:*=null;
  7337. var loc2:*=0;
  7338. super();
  7339. a = new Array();
  7340. if (arg1 is String)
  7341. {
  7342. arg1 = Hex.toArray(arg1);
  7343. arg2 = 0;
  7344. }
  7345. if (arg1 is ByteArray)
  7346. {
  7347. loc1 = arg1 as ByteArray;
  7348. loc2 = arg2 || loc1.length - loc1.position;
  7349. fromArray(loc1, loc2);
  7350. }
  7351. return;
  7352. }
  7353.  
  7354. public function clearBit(arg1:int):com.hurlant.math.BigInteger
  7355. {
  7356. return changeBit(arg1, op_andnot);
  7357. }
  7358.  
  7359. internal function op_or(arg1:int, arg2:int):int
  7360. {
  7361. return arg1 | arg2;
  7362. }
  7363.  
  7364. public function negate():com.hurlant.math.BigInteger
  7365. {
  7366. var loc1:*=nbi();
  7367. ZERO.subTo(this, loc1);
  7368. return loc1;
  7369. }
  7370.  
  7371. public function andNot(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7372. {
  7373. var loc1:*=new BigInteger();
  7374. bitwiseTo(arg1, op_andnot, loc1);
  7375. return loc1;
  7376. }
  7377.  
  7378. public function modPow(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7379. {
  7380. var loc2:*=0;
  7381. var loc4:*=null;
  7382. var loc10:*=0;
  7383. var loc13:*=null;
  7384. var loc14:*=null;
  7385. var loc1:*=arg1.bitLength();
  7386. var loc3:*=nbv(1);
  7387. if (loc1 <= 0)
  7388. {
  7389. return loc3;
  7390. }
  7391. if (loc1 < 18)
  7392. {
  7393. loc2 = 1;
  7394. }
  7395. else if (loc1 < 48)
  7396. {
  7397. loc2 = 3;
  7398. }
  7399. else if (loc1 < 144)
  7400. {
  7401. loc2 = 4;
  7402. }
  7403. else if (loc1 < 768)
  7404. {
  7405. loc2 = 5;
  7406. }
  7407. else
  7408. {
  7409. loc2 = 6;
  7410. }
  7411. if (loc1 < 8)
  7412. {
  7413. loc4 = new ClassicReduction(arg2);
  7414. }
  7415. else if (arg2.isEven())
  7416. {
  7417. loc4 = new BarrettReduction(arg2);
  7418. }
  7419. else
  7420. {
  7421. loc4 = new MontgomeryReduction(arg2);
  7422. }
  7423. var loc5:*=[];
  7424. var loc6:*=3;
  7425. var loc7:*;
  7426. --loc7;
  7427. var loc8:*=(1 << loc2 - 1);
  7428. loc5[1] = loc4.convert(this);
  7429. if (loc2 > 1)
  7430. {
  7431. loc14 = new BigInteger();
  7432. loc4.sqrTo(loc5[1], loc14);
  7433. while (loc6 <= loc8)
  7434. {
  7435. loc5[loc6] = new BigInteger();
  7436. loc4.mulTo(loc14, loc5[loc6 - 2], loc5[loc6]);
  7437. loc6 = loc6 + 2;
  7438. }
  7439. }
  7440. var loc9:*=(arg1.t - 1);
  7441. var loc11:*=true;
  7442. var loc12:*=new BigInteger();
  7443. loc1 = (nbits(arg1.a[loc9]) - 1);
  7444. while (loc9 >= 0)
  7445. {
  7446. if (loc1 >= loc7)
  7447. {
  7448. loc10 = arg1.a[loc9] >> loc1 - loc7 & loc8;
  7449. }
  7450. else
  7451. {
  7452. loc10 = (arg1.a[loc9] & (1 << loc1 + 1 - 1)) << loc7 - loc1;
  7453. if (loc9 > 0)
  7454. {
  7455. loc10 = loc10 | arg1.a[(loc9 - 1)] >> DB + loc1 - loc7;
  7456. }
  7457. }
  7458. loc6 = loc2;
  7459. while ((loc10 & 1) == 0)
  7460. {
  7461. loc10 = loc10 >> 1;
  7462. --loc6;
  7463. }
  7464. var loc15:*;
  7465. loc1 = loc15 = loc1 - loc6;
  7466. if (loc15 < 0)
  7467. {
  7468. loc1 = loc1 + DB;
  7469. --loc9;
  7470. }
  7471. if (loc11)
  7472. {
  7473. loc5[loc10].copyTo(loc3);
  7474. loc11 = false;
  7475. }
  7476. else
  7477. {
  7478. while (loc6 > 1)
  7479. {
  7480. loc4.sqrTo(loc3, loc12);
  7481. loc4.sqrTo(loc12, loc3);
  7482. loc6 = loc6 - 2;
  7483. }
  7484. if (loc6 > 0)
  7485. {
  7486. loc4.sqrTo(loc3, loc12);
  7487. }
  7488. else
  7489. {
  7490. loc13 = loc3;
  7491. loc3 = loc12;
  7492. loc12 = loc13;
  7493. }
  7494. loc4.mulTo(loc12, loc5[loc10], loc3);
  7495. }
  7496. while (loc9 >= 0 && (arg1.a[loc9] & 1 << loc1) == 0)
  7497. {
  7498. loc4.sqrTo(loc3, loc12);
  7499. loc13 = loc3;
  7500. loc3 = loc12;
  7501. loc12 = loc13;
  7502. if (!(--loc1 < 0))
  7503. {
  7504. continue;
  7505. }
  7506. loc1 = (DB - 1);
  7507. --loc9;
  7508. }
  7509. }
  7510. return loc4.revert(loc3);
  7511. }
  7512.  
  7513. public function isProbablePrime(arg1:int):Boolean
  7514. {
  7515. var loc1:*=0;
  7516. var loc3:*=0;
  7517. var loc4:*=0;
  7518. var loc2:*=abs();
  7519. if (loc2.t == 1 && loc2.a[0] <= lowprimes[(lowprimes.length - 1)])
  7520. {
  7521. loc1 = 0;
  7522. while (loc1 < lowprimes.length)
  7523. {
  7524. if (loc2[0] == lowprimes[loc1])
  7525. {
  7526. return true;
  7527. }
  7528. ++loc1;
  7529. }
  7530. return false;
  7531. }
  7532. if (loc2.isEven())
  7533. {
  7534. return false;
  7535. }
  7536. loc1 = 1;
  7537. while (loc1 < lowprimes.length)
  7538. {
  7539. loc3 = lowprimes[loc1];
  7540. loc4 = loc1 + 1;
  7541. while (loc4 < lowprimes.length && loc3 < lplim)
  7542. {
  7543. loc3 = loc3 * lowprimes[loc4++];
  7544. }
  7545. loc3 = loc2.modInt(loc3);
  7546. while (loc1 < loc4)
  7547. {
  7548. if (loc3 % lowprimes[loc1++] != 0)
  7549. {
  7550. continue;
  7551. }
  7552. return false;
  7553. }
  7554. }
  7555. return loc2.millerRabin(arg1);
  7556. }
  7557.  
  7558. public function divide(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7559. {
  7560. var loc1:*=new BigInteger();
  7561. divRemTo(arg1, loc1, null);
  7562. return loc1;
  7563. }
  7564.  
  7565. public function mod(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7566. {
  7567. var loc1:*=nbi();
  7568. abs().divRemTo(arg1, null, loc1);
  7569. if (s < 0 && loc1.compareTo(ZERO) > 0)
  7570. {
  7571. arg1.subTo(loc1, loc1);
  7572. }
  7573. return loc1;
  7574. }
  7575.  
  7576. protected function addTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  7577. {
  7578. var loc1:*=0;
  7579. var loc2:*=0;
  7580. var loc3:*=Math.min(arg1.t, t);
  7581. while (loc1 < loc3)
  7582. {
  7583. loc2 = loc2 + (this.a[loc1] + arg1.a[loc1]);
  7584. var loc4:*;
  7585. arg2.a[loc4 = loc1++] = loc2 & DM;
  7586. loc2 = loc2 >> DB;
  7587. }
  7588. if (arg1.t < t)
  7589. {
  7590. loc2 = loc2 + arg1.s;
  7591. while (loc1 < t)
  7592. {
  7593. loc2 = loc2 + this.a[loc1];
  7594. arg2.a[loc4 = loc1++] = loc2 & DM;
  7595. loc2 = loc2 >> DB;
  7596. }
  7597. loc2 = loc2 + s;
  7598. }
  7599. else
  7600. {
  7601. loc2 = loc2 + s;
  7602. while (loc1 < arg1.t)
  7603. {
  7604. loc2 = loc2 + arg1.a[loc1];
  7605. arg2.a[loc4 = loc1++] = loc2 & DM;
  7606. loc2 = loc2 >> DB;
  7607. }
  7608. loc2 = loc2 + arg1.s;
  7609. }
  7610. arg2.s = loc2 < 0 ? -1 : 0;
  7611. if (loc2 > 0)
  7612. {
  7613. arg2.a[loc4 = loc1++] = loc2;
  7614. }
  7615. else if (loc2 < -1)
  7616. {
  7617. arg2.a[loc4 = loc1++] = DV + loc2;
  7618. }
  7619. arg2.t = loc1;
  7620. arg2.clamp();
  7621. return;
  7622. }
  7623.  
  7624. protected function bitwiseTo(arg1:com.hurlant.math.BigInteger, arg2:Function, arg3:com.hurlant.math.BigInteger):void
  7625. {
  7626. var loc1:*=0;
  7627. var loc2:*=0;
  7628. var loc3:*=Math.min(arg1.t, t);
  7629. loc1 = 0;
  7630. while (loc1 < loc3)
  7631. {
  7632. arg3.a[loc1] = arg2(this.a[loc1], arg1.a[loc1]);
  7633. ++loc1;
  7634. }
  7635. if (arg1.t < t)
  7636. {
  7637. loc2 = arg1.s & DM;
  7638. loc1 = loc3;
  7639. while (loc1 < t)
  7640. {
  7641. arg3.a[loc1] = arg2(this.a[loc1], loc2);
  7642. ++loc1;
  7643. }
  7644. arg3.t = t;
  7645. }
  7646. else
  7647. {
  7648. loc2 = s & DM;
  7649. loc1 = loc3;
  7650. while (loc1 < arg1.t)
  7651. {
  7652. arg3.a[loc1] = arg2(loc2, arg1.a[loc1]);
  7653. ++loc1;
  7654. }
  7655. arg3.t = arg1.t;
  7656. }
  7657. arg3.s = arg2(s, arg1.s);
  7658. arg3.clamp();
  7659. return;
  7660. }
  7661.  
  7662. protected function modInt(arg1:int):int
  7663. {
  7664. var loc3:*=0;
  7665. if (arg1 <= 0)
  7666. {
  7667. return 0;
  7668. }
  7669. var loc1:*=DV % arg1;
  7670. var loc2:*=s < 0 ? (arg1 - 1) : 0;
  7671. if (t > 0)
  7672. {
  7673. if (loc1 != 0)
  7674. {
  7675. loc3 = (t - 1);
  7676. while (loc3 >= 0)
  7677. {
  7678. loc2 = (loc1 * loc2 + a[loc3]) % arg1;
  7679. --loc3;
  7680. }
  7681. }
  7682. else
  7683. {
  7684. loc2 = a[0] % arg1;
  7685. }
  7686. }
  7687. return loc2;
  7688. }
  7689.  
  7690. protected function chunkSize(arg1:Number):int
  7691. {
  7692. return Math.floor(Math.LN2 * DB / Math.log(arg1));
  7693. }
  7694.  
  7695. public function gcd(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7696. {
  7697. var loc5:*=null;
  7698. var loc1:*=s < 0 ? negate() : clone();
  7699. var loc2:*=arg1.s < 0 ? arg1.negate() : arg1.clone();
  7700. if (loc1.compareTo(loc2) < 0)
  7701. {
  7702. loc5 = loc1;
  7703. loc1 = loc2;
  7704. loc2 = loc5;
  7705. }
  7706. var loc3:*=loc1.getLowestSetBit();
  7707. var loc4:*;
  7708. if ((loc4 = loc2.getLowestSetBit()) < 0)
  7709. {
  7710. return loc1;
  7711. }
  7712. if (loc3 < loc4)
  7713. {
  7714. loc4 = loc3;
  7715. }
  7716. if (loc4 > 0)
  7717. {
  7718. loc1.rShiftTo(loc4, loc1);
  7719. loc2.rShiftTo(loc4, loc2);
  7720. }
  7721. while (loc1.sigNum() > 0)
  7722. {
  7723. var loc6:*;
  7724. loc3 = loc6 = loc1.getLowestSetBit();
  7725. if (loc6 > 0)
  7726. {
  7727. loc1.rShiftTo(loc3, loc1);
  7728. }
  7729. loc3 = loc6 = loc2.getLowestSetBit();
  7730. if (loc6 > 0)
  7731. {
  7732. loc2.rShiftTo(loc3, loc2);
  7733. }
  7734. if (loc1.compareTo(loc2) >= 0)
  7735. {
  7736. loc1.subTo(loc2, loc1);
  7737. loc1.rShiftTo(1, loc1);
  7738. continue;
  7739. }
  7740. loc2.subTo(loc1, loc2);
  7741. loc2.rShiftTo(1, loc2);
  7742. }
  7743. if (loc4 > 0)
  7744. {
  7745. loc2.lShiftTo(loc4, loc2);
  7746. }
  7747. return loc2;
  7748. }
  7749.  
  7750. bi_internal function dAddOffset(arg1:int, arg2:int):void
  7751. {
  7752. while (t <= arg2)
  7753. {
  7754. var loc2:*;
  7755. var loc1:*=t++;
  7756. a[loc1] = 0;
  7757. }
  7758. a[arg2] = a[arg2] + arg1;
  7759. while (a[arg2] >= DV)
  7760. {
  7761. a[arg2] = a[arg2] - DV;
  7762. if (++arg2 >= t)
  7763. {
  7764. loc1 = t++;
  7765. a[loc1] = 0;
  7766. }
  7767. loc3 = ((loc1 = a)[loc2 = arg2] + 1);
  7768. loc1[loc2] = loc3;
  7769. }
  7770. return;
  7771. }
  7772.  
  7773. bi_internal function lShiftTo(arg1:int, arg2:com.hurlant.math.BigInteger):void
  7774. {
  7775. var loc6:*=0;
  7776. var loc1:*=arg1 % DB;
  7777. var loc2:*=DB - loc1;
  7778. var loc3:*=(1 << loc2 - 1);
  7779. var loc4:*=arg1 / DB;
  7780. var loc5:*=s << loc1 & DM;
  7781. loc6 = (t - 1);
  7782. while (loc6 >= 0)
  7783. {
  7784. arg2.a[loc6 + loc4 + 1] = a[loc6] >> loc2 | loc5;
  7785. loc5 = (a[loc6] & loc3) << loc1;
  7786. --loc6;
  7787. }
  7788. --loc6;
  7789. while (loc6 >= 0)
  7790. {
  7791. arg2.a[loc6] = 0;
  7792. --loc6;
  7793. }
  7794. arg2.a[loc4] = loc5;
  7795. arg2.t = t + loc4 + 1;
  7796. arg2.s = s;
  7797. arg2.clamp();
  7798. return;
  7799. }
  7800.  
  7801. public function getLowestSetBit():int
  7802. {
  7803. var loc1:*=0;
  7804. while (loc1 < t)
  7805. {
  7806. if (a[loc1] != 0)
  7807. {
  7808. return loc1 * DB + lbit(a[loc1]);
  7809. }
  7810. ++loc1;
  7811. }
  7812. if (s < 0)
  7813. {
  7814. return t * DB;
  7815. }
  7816. return -1;
  7817. }
  7818.  
  7819. public function subtract(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7820. {
  7821. var loc1:*=new BigInteger();
  7822. subTo(arg1, loc1);
  7823. return loc1;
  7824. }
  7825.  
  7826. public function primify(arg1:int, arg2:int):void
  7827. {
  7828. if (!testBit((arg1 - 1)))
  7829. {
  7830. bitwiseTo(BigInteger.ONE.shiftLeft((arg1 - 1)), op_or, this);
  7831. }
  7832. if (isEven())
  7833. {
  7834. dAddOffset(1, 0);
  7835. }
  7836. while (!isProbablePrime(arg2))
  7837. {
  7838. dAddOffset(2, 0);
  7839. while (bitLength() > arg1)
  7840. {
  7841. subTo(BigInteger.ONE.shiftLeft((arg1 - 1)), this);
  7842. }
  7843. }
  7844. return;
  7845. }
  7846.  
  7847. bi_internal function multiplyLowerTo(arg1:com.hurlant.math.BigInteger, arg2:int, arg3:com.hurlant.math.BigInteger):void
  7848. {
  7849. var loc2:*=0;
  7850. var loc1:*=Math.min(t + arg1.t, arg2);
  7851. arg3.s = 0;
  7852. arg3.t = loc1;
  7853. while (loc1 > 0)
  7854. {
  7855. var loc3:*;
  7856. arg3.a[loc3 = --loc1] = 0;
  7857. }
  7858. loc2 = arg3.t - t;
  7859. while (loc1 < loc2)
  7860. {
  7861. arg3.a[loc1 + t] = am(0, arg1.a[loc1], arg3, loc1, 0, t);
  7862. ++loc1;
  7863. }
  7864. loc2 = Math.min(arg1.t, arg2);
  7865. while (loc1 < loc2)
  7866. {
  7867. am(0, arg1.a[loc1], arg3, loc1, 0, arg2 - loc1);
  7868. ++loc1;
  7869. }
  7870. arg3.clamp();
  7871. return;
  7872. }
  7873.  
  7874. public function modPowInt(arg1:int, arg2:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  7875. {
  7876. var loc1:*=null;
  7877. if (arg1 < 256 || arg2.isEven())
  7878. {
  7879. loc1 = new ClassicReduction(arg2);
  7880. }
  7881. else
  7882. {
  7883. loc1 = new MontgomeryReduction(arg2);
  7884. }
  7885. return exp(arg1, loc1);
  7886. }
  7887.  
  7888. bi_internal function intAt(arg1:String, arg2:int):int
  7889. {
  7890. return parseInt(arg1.charAt(arg2), 36);
  7891. }
  7892.  
  7893. public function testBit(arg1:int):Boolean
  7894. {
  7895. var loc1:*=Math.floor(arg1 / DB);
  7896. if (loc1 >= t)
  7897. {
  7898. return !(s == 0);
  7899. }
  7900. return !((a[loc1] & 1 << arg1 % DB) == 0);
  7901. }
  7902.  
  7903. bi_internal function exp(arg1:int, arg2:IReduction):com.hurlant.math.BigInteger
  7904. {
  7905. var loc5:*=null;
  7906. if (arg1 > 4294967295 || arg1 < 1)
  7907. {
  7908. return ONE;
  7909. }
  7910. var loc1:*=nbi();
  7911. var loc2:*=nbi();
  7912. var loc3:*=arg2.convert(this);
  7913. var loc4:*=(nbits(arg1) - 1);
  7914. loc3.copyTo(loc1);
  7915. while (--loc4 >= 0)
  7916. {
  7917. arg2.sqrTo(loc1, loc2);
  7918. if ((arg1 & 1 << loc4) > 0)
  7919. {
  7920. arg2.mulTo(loc2, loc3, loc1);
  7921. continue;
  7922. }
  7923. loc5 = loc1;
  7924. loc1 = loc2;
  7925. loc2 = loc5;
  7926. }
  7927. return arg2.revert(loc1);
  7928. }
  7929.  
  7930. public function toArray(arg1:flash.utils.ByteArray):uint
  7931. {
  7932. var loc1:*=8;
  7933. var loc2:*=(1 << 8 - 1);
  7934. var loc3:*=0;
  7935. var loc4:*=t;
  7936. var loc5:*=DB - loc4 * DB % loc1;
  7937. var loc6:*=false;
  7938. var loc7:*=0;
  7939. if (loc4-- > 0)
  7940. {
  7941. if (loc5 < DB)
  7942. {
  7943. loc5 < DB;
  7944. var loc8:*;
  7945. loc3 = loc8 = a[loc4] >> loc5;
  7946. }
  7947. if (loc5 < DB)
  7948. {
  7949. loc6 = true;
  7950. arg1.writeByte(loc3);
  7951. ++loc7;
  7952. }
  7953. while (loc4 >= 0)
  7954. {
  7955. if (loc5 < loc1)
  7956. {
  7957. loc5 = loc8 = loc5 + (DB - loc1);
  7958. loc3 = (loc3 = (a[loc4] & (1 << loc5 - 1)) << loc1 - loc5) | a[--loc4] >> loc8;
  7959. }
  7960. else
  7961. {
  7962. loc5 = loc8 = loc5 - loc1;
  7963. loc3 = a[loc4] >> loc8 & loc2;
  7964. if (loc5 <= 0)
  7965. {
  7966. loc5 = loc5 + DB;
  7967. --loc4;
  7968. }
  7969. }
  7970. if (loc3 > 0)
  7971. {
  7972. loc6 = true;
  7973. }
  7974. if (!loc6)
  7975. {
  7976. continue;
  7977. }
  7978. arg1.writeByte(loc3);
  7979. ++loc7;
  7980. }
  7981. }
  7982. return loc7;
  7983. }
  7984.  
  7985. public function dispose():void
  7986. {
  7987. var loc1:*=new Random();
  7988. var loc2:*=0;
  7989. while (loc2 < a.length)
  7990. {
  7991. a[loc2] = loc1.nextByte();
  7992. delete a[loc2];
  7993. ++loc2;
  7994. }
  7995. a = null;
  7996. t = 0;
  7997. s = 0;
  7998. Memory.gc();
  7999. return;
  8000. }
  8001.  
  8002. internal function lbit(arg1:int):int
  8003. {
  8004. if (arg1 == 0)
  8005. {
  8006. return -1;
  8007. }
  8008. var loc1:*=0;
  8009. if ((arg1 & 65535) == 0)
  8010. {
  8011. arg1 = arg1 >> 16;
  8012. loc1 = loc1 + 16;
  8013. }
  8014. if ((arg1 & 255) == 0)
  8015. {
  8016. arg1 = arg1 >> 8;
  8017. loc1 = loc1 + 8;
  8018. }
  8019. if ((arg1 & 15) == 0)
  8020. {
  8021. arg1 = arg1 >> 4;
  8022. loc1 = loc1 + 4;
  8023. }
  8024. if ((arg1 & 3) == 0)
  8025. {
  8026. arg1 = arg1 >> 2;
  8027. loc1 = loc1 + 2;
  8028. }
  8029. if ((arg1 & 1) == 0)
  8030. {
  8031. ++loc1;
  8032. }
  8033. return loc1;
  8034. }
  8035.  
  8036. bi_internal function divRemTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger=null, arg3:com.hurlant.math.BigInteger=null):void
  8037. {
  8038. var y:com.hurlant.math.BigInteger;
  8039. var nsh:int;
  8040. var pt:com.hurlant.math.BigInteger;
  8041. var d1:Number;
  8042. var d2:Number;
  8043. var qd:int;
  8044. var y0:int;
  8045. var yt:Number;
  8046. var ys:int;
  8047. var e:Number;
  8048. var ms:int;
  8049. var j:int;
  8050. var m:com.hurlant.math.BigInteger;
  8051. var i:int;
  8052. var q:com.hurlant.math.BigInteger=null;
  8053. var r:com.hurlant.math.BigInteger=null;
  8054. var t:com.hurlant.math.BigInteger;
  8055. var pm:com.hurlant.math.BigInteger;
  8056. var ts:int;
  8057.  
  8058. var loc1:*;
  8059. qd = 0;
  8060. m = arg1;
  8061. q = arg2;
  8062. r = arg3;
  8063. pm = m.abs();
  8064. if (pm.t <= 0)
  8065. {
  8066. return;
  8067. }
  8068. pt = abs();
  8069. if (pt.t < pm.t)
  8070. {
  8071. if (q != null)
  8072. {
  8073. q.fromInt(0);
  8074. }
  8075. if (r != null)
  8076. {
  8077. copyTo(r);
  8078. }
  8079. return;
  8080. }
  8081. if (r == null)
  8082. {
  8083. r = nbi();
  8084. }
  8085. y = nbi();
  8086. ts = s;
  8087. ms = m.s;
  8088. nsh = DB - nbits(pm.a[(pm.t - 1)]);
  8089. if (nsh > 0)
  8090. {
  8091. pm.lShiftTo(nsh, y);
  8092. pt.lShiftTo(nsh, r);
  8093. }
  8094. else
  8095. {
  8096. pm.copyTo(y);
  8097. pt.copyTo(r);
  8098. }
  8099. ys = y.t;
  8100. y0 = y.a[(ys - 1)];
  8101. if (y0 == 0)
  8102. {
  8103. return;
  8104. }
  8105. yt = y0 * (1 << F1) + (ys > 1 ? y.a[ys - 2] >> F2 : 0);
  8106. d1 = FV / yt;
  8107. d2 = (1 << F1) / yt;
  8108. e = 1 << F2;
  8109. i = r.t;
  8110. j = i - ys;
  8111. t = q != null ? q : nbi();
  8112. y.dlShiftTo(j, t);
  8113. if (r.compareTo(t) >= 0)
  8114. {
  8115. var loc3:*;
  8116. var loc4:*=((loc3 = r).t + 1);
  8117. loc3.t = loc4;
  8118. var loc2:*;
  8119. r.a[loc2 = (loc3 = r).t] = 1;
  8120. r.subTo(t, r);
  8121. }
  8122. ONE.dlShiftTo(ys, t);
  8123. t.subTo(y, y);
  8124. while (y.t < ys)
  8125. {
  8126. loc3 = 0;
  8127. loc4 = y;
  8128. loc2 = new XMLList("");
  8129. for each (var loc5:* in loc4)
  8130. {
  8131. var loc6:*;
  8132. with (loc6 = loc5)
  8133. {
  8134. var loc7:*;
  8135. var loc8:*=((loc7 = y).t + 1);
  8136. loc7.t = loc8;
  8137. if (0)
  8138. {
  8139. loc2[loc3] = loc5;
  8140. }
  8141. }
  8142. }
  8143. }
  8144. while ((j = (j - 1)) >= 0)
  8145. {
  8146. qd = r.a[i = (i - 1)] != y0 ? Number(r.a[i]) * d1 + (Number(r.a[(i - 1)]) + e) * d2 : DM;
  8147. r.a[i] = loc2 = r.a[i] + y.am(0, qd, r, j, 0, ys);
  8148. if (!(loc2 < qd))
  8149. {
  8150. continue;
  8151. }
  8152. y.dlShiftTo(j, t);
  8153. r.subTo(t, r);
  8154. while (r.a[i] < (qd = (qd - 1)))
  8155. {
  8156. r.subTo(t, r);
  8157. }
  8158. }
  8159. if (q != null)
  8160. {
  8161. r.drShiftTo(ys, q);
  8162. if (ts != ms)
  8163. {
  8164. ZERO.subTo(q, q);
  8165. }
  8166. }
  8167. r.t = ys;
  8168. r.clamp();
  8169. if (nsh > 0)
  8170. {
  8171. r.rShiftTo(nsh, r);
  8172. }
  8173. if (ts < 0)
  8174. {
  8175. ZERO.subTo(r, r);
  8176. }
  8177. return;
  8178. }
  8179.  
  8180. public function remainder(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8181. {
  8182. var loc1:*=new BigInteger();
  8183. divRemTo(arg1, null, loc1);
  8184. return loc1;
  8185. }
  8186.  
  8187. bi_internal function multiplyUpperTo(arg1:com.hurlant.math.BigInteger, arg2:int, arg3:com.hurlant.math.BigInteger):void
  8188. {
  8189. --arg2;
  8190. var loc2:*;
  8191. arg3.t = loc2 = t + arg1.t - arg2;
  8192. var loc1:*=loc2;
  8193. arg3.s = 0;
  8194. while (--loc1 >= 0)
  8195. {
  8196. arg3.a[loc1] = 0;
  8197. }
  8198. loc1 = Math.max(arg2 - t, 0);
  8199. while (loc1 < arg1.t)
  8200. {
  8201. arg3.a[t + loc1 - arg2] = am(arg2 - loc1, arg1.a[loc1], arg3, 0, 0, t + loc1 - arg2);
  8202. ++loc1;
  8203. }
  8204. arg3.clamp();
  8205. arg3.drShiftTo(1, arg3);
  8206. return;
  8207. }
  8208.  
  8209. public function divideAndRemainder(arg1:com.hurlant.math.BigInteger):Array
  8210. {
  8211. var loc1:*=new BigInteger();
  8212. var loc2:*=new BigInteger();
  8213. divRemTo(arg1, loc1, loc2);
  8214. return [loc1, loc2];
  8215. }
  8216.  
  8217. public function valueOf():Number
  8218. {
  8219. var loc1:*=1;
  8220. var loc2:*=0;
  8221. var loc3:*=0;
  8222. while (loc3 < t)
  8223. {
  8224. loc2 = loc2 + a[loc3] * loc1;
  8225. loc1 = loc1 * DV;
  8226. ++loc3;
  8227. }
  8228. return loc2;
  8229. }
  8230.  
  8231. public function shiftLeft(arg1:int):com.hurlant.math.BigInteger
  8232. {
  8233. var loc1:*=new BigInteger();
  8234. if (arg1 < 0)
  8235. {
  8236. rShiftTo(-arg1, loc1);
  8237. }
  8238. else
  8239. {
  8240. lShiftTo(arg1, loc1);
  8241. }
  8242. return loc1;
  8243. }
  8244.  
  8245. public function multiply(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8246. {
  8247. var loc1:*=new BigInteger();
  8248. multiplyTo(arg1, loc1);
  8249. return loc1;
  8250. }
  8251.  
  8252. bi_internal function am(arg1:int, arg2:int, arg3:com.hurlant.math.BigInteger, arg4:int, arg5:int, arg6:int):int
  8253. {
  8254. var loc3:*=0;
  8255. var loc4:*=0;
  8256. var loc5:*=0;
  8257. var loc1:*=arg2 & 32767;
  8258. var loc2:*=arg2 >> 15;
  8259. while (--arg6 >= 0)
  8260. {
  8261. loc3 = a[arg1] & 32767;
  8262. loc4 = a[arg1++] >> 15;
  8263. loc5 = loc2 * loc3 + loc4 * loc1;
  8264. arg5 = ((loc3 = loc1 * loc3 + ((loc5 & 32767) << 15) + arg3.a[arg4] + (arg5 & 1073741823)) >>> 30) + (loc5 >>> 15) + loc2 * loc4 + (arg5 >>> 30);
  8265. var loc6:*;
  8266. arg3.a[loc6 = arg4++] = loc3 & 1073741823;
  8267. }
  8268. return arg5;
  8269. }
  8270.  
  8271. bi_internal function drShiftTo(arg1:int, arg2:com.hurlant.math.BigInteger):void
  8272. {
  8273. var loc1:*=0;
  8274. loc1 = arg1;
  8275. while (loc1 < t)
  8276. {
  8277. arg2.a[loc1 - arg1] = a[loc1];
  8278. ++loc1;
  8279. }
  8280. arg2.t = Math.max(t - arg1, 0);
  8281. arg2.s = s;
  8282. return;
  8283. }
  8284.  
  8285. public function add(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8286. {
  8287. var loc1:*=new BigInteger();
  8288. addTo(arg1, loc1);
  8289. return loc1;
  8290. }
  8291.  
  8292. protected function nbi():*
  8293. {
  8294. return new BigInteger();
  8295. }
  8296.  
  8297. protected function millerRabin(arg1:int):Boolean
  8298. {
  8299. var loc6:*=null;
  8300. var loc7:*=0;
  8301. var loc1:*=subtract(BigInteger.ONE);
  8302. var loc2:*=loc1.getLowestSetBit();
  8303. if (loc2 <= 0)
  8304. {
  8305. return false;
  8306. }
  8307. var loc3:*=loc1.shiftRight(loc2);
  8308. arg1 = arg1 + 1 >> 1;
  8309. if (arg1 > lowprimes.length)
  8310. {
  8311. arg1 = lowprimes.length;
  8312. }
  8313. var loc4:*=new BigInteger();
  8314. var loc5:*=0;
  8315. while (loc5 < arg1)
  8316. {
  8317. loc4.fromInt(lowprimes[loc5]);
  8318. if (!((loc6 = loc4.modPow(loc3, this)).compareTo(BigInteger.ONE) == 0) && !(loc6.compareTo(loc1) == 0))
  8319. {
  8320. loc7 = 1;
  8321. while (loc7++ < loc2 && !(loc6.compareTo(loc1) == 0))
  8322. {
  8323. if ((loc6 = loc6.modPowInt(2, this)).compareTo(BigInteger.ONE) != 0)
  8324. {
  8325. continue;
  8326. }
  8327. return false;
  8328. }
  8329. if (loc6.compareTo(loc1) != 0)
  8330. {
  8331. return false;
  8332. }
  8333. }
  8334. ++loc5;
  8335. }
  8336. return true;
  8337. }
  8338.  
  8339. bi_internal function dMultiply(arg1:int):void
  8340. {
  8341. a[t] = am(0, (arg1 - 1), this, 0, 0, t);
  8342. var loc1:*;
  8343. t++;
  8344. clamp();
  8345. return;
  8346. }
  8347.  
  8348. internal function op_andnot(arg1:int, arg2:int):int
  8349. {
  8350. return arg1 & ~arg2;
  8351. }
  8352.  
  8353. bi_internal function clamp():void
  8354. {
  8355. var loc1:*=s & DM;
  8356. while (t > 0 && a[(t - 1)] == loc1)
  8357. {
  8358. var loc2:*;
  8359. t--;
  8360. }
  8361. return;
  8362. }
  8363.  
  8364. bi_internal function invDigit():int
  8365. {
  8366. if (t < 1)
  8367. {
  8368. return 0;
  8369. }
  8370. var loc1:*=a[0];
  8371. if ((loc1 & 1) == 0)
  8372. {
  8373. return 0;
  8374. }
  8375. var loc2:*=loc1 & 3;
  8376. loc2 = loc2 * (2 - (loc1 & 15) * loc2) & 15;
  8377. loc2 = loc2 * (2 - (loc1 & 255) * loc2) & 255;
  8378. loc2 = loc2 * (2 - ((loc1 & 65535) * loc2 & 65535)) & 65535;
  8379. loc2 = loc2 * (2 - loc1 * loc2 % DV) % DV;
  8380. return loc2 > 0 ? DV - loc2 : -loc2;
  8381. }
  8382.  
  8383. protected function changeBit(arg1:int, arg2:Function):com.hurlant.math.BigInteger
  8384. {
  8385. var loc1:*=BigInteger.ONE.shiftLeft(arg1);
  8386. bitwiseTo(loc1, arg2, loc1);
  8387. return loc1;
  8388. }
  8389.  
  8390. public function equals(arg1:com.hurlant.math.BigInteger):Boolean
  8391. {
  8392. return compareTo(arg1) == 0;
  8393. }
  8394.  
  8395. public function compareTo(arg1:com.hurlant.math.BigInteger):int
  8396. {
  8397. var loc1:*=s - arg1.s;
  8398. if (loc1 != 0)
  8399. {
  8400. return loc1;
  8401. }
  8402. var loc2:*=t;
  8403. loc1 = loc2 - arg1.t;
  8404. if (loc1 != 0)
  8405. {
  8406. return loc1;
  8407. }
  8408. while (--loc2 >= 0)
  8409. {
  8410. loc1 = a[loc2] - arg1.a[loc2];
  8411. if (loc1 == 0)
  8412. {
  8413. continue;
  8414. }
  8415. return loc1;
  8416. }
  8417. return 0;
  8418. }
  8419.  
  8420. public function shiftRight(arg1:int):com.hurlant.math.BigInteger
  8421. {
  8422. var loc1:*=new BigInteger();
  8423. if (arg1 < 0)
  8424. {
  8425. lShiftTo(-arg1, loc1);
  8426. }
  8427. else
  8428. {
  8429. rShiftTo(arg1, loc1);
  8430. }
  8431. return loc1;
  8432. }
  8433.  
  8434. bi_internal function multiplyTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  8435. {
  8436. var loc1:*=abs();
  8437. var loc2:*=arg1.abs();
  8438. var loc3:*=loc1.t;
  8439. arg2.t = loc3 + loc2.t;
  8440. while (--loc3 >= 0)
  8441. {
  8442. arg2.a[loc3] = 0;
  8443. }
  8444. loc3 = 0;
  8445. while (loc3 < loc2.t)
  8446. {
  8447. arg2.a[loc3 + loc1.t] = loc1.am(0, loc2.a[loc3], arg2, loc3, 0, loc1.t);
  8448. ++loc3;
  8449. }
  8450. arg2.s = 0;
  8451. arg2.clamp();
  8452. if (s != arg1.s)
  8453. {
  8454. ZERO.subTo(arg2, arg2);
  8455. }
  8456. return;
  8457. }
  8458.  
  8459. public function bitCount():int
  8460. {
  8461. var loc1:*=0;
  8462. var loc2:*=s & DM;
  8463. var loc3:*=0;
  8464. while (loc3 < t)
  8465. {
  8466. loc1 = loc1 + cbit(a[loc3] ^ loc2);
  8467. ++loc3;
  8468. }
  8469. return loc1;
  8470. }
  8471.  
  8472. protected function toRadix(arg1:uint=10):String
  8473. {
  8474. if (sigNum() == 0 || arg1 < 2 || arg1 > 32)
  8475. {
  8476. return "0";
  8477. }
  8478. var loc1:*=chunkSize(arg1);
  8479. var loc2:*=Math.pow(arg1, loc1);
  8480. var loc3:*=nbv(loc2);
  8481. var loc4:*=nbi();
  8482. var loc5:*=nbi();
  8483. var loc6:*="";
  8484. divRemTo(loc3, loc4, loc5);
  8485. while (loc4.sigNum() > 0)
  8486. {
  8487. loc6 = (loc2 + loc5.intValue()).toString(arg1).substr(1) + loc6;
  8488. loc4.divRemTo(loc3, loc4, loc5);
  8489. }
  8490. return loc5.intValue().toString(arg1) + loc6;
  8491. }
  8492.  
  8493. internal function cbit(arg1:int):int
  8494. {
  8495. var loc1:*=0;
  8496. while (arg1 != 0)
  8497. {
  8498. arg1 = arg1 & (arg1 - 1);
  8499. ++loc1;
  8500. }
  8501. return loc1;
  8502. }
  8503.  
  8504. bi_internal function rShiftTo(arg1:int, arg2:com.hurlant.math.BigInteger):void
  8505. {
  8506. var loc5:*=0;
  8507. arg2.s = s;
  8508. var loc1:*=arg1 / DB;
  8509. if (loc1 >= t)
  8510. {
  8511. arg2.t = 0;
  8512. return;
  8513. }
  8514. var loc2:*=arg1 % DB;
  8515. var loc3:*=DB - loc2;
  8516. var loc4:*=(1 << loc2 - 1);
  8517. arg2.a[0] = a[loc1] >> loc2;
  8518. loc5 = loc1 + 1;
  8519. while (loc5 < t)
  8520. {
  8521. arg2.a[(loc5 - loc1 - 1)] = arg2.a[(loc5 - loc1 - 1)] | (a[loc5] & loc4) << loc3;
  8522. arg2.a[loc5 - loc1] = a[loc5] >> loc2;
  8523. ++loc5;
  8524. }
  8525. if (loc2 > 0)
  8526. {
  8527. arg2.a[(t - loc1 - 1)] = arg2.a[(t - loc1 - 1)] | (s & loc4) << loc3;
  8528. }
  8529. arg2.t = t - loc1;
  8530. arg2.clamp();
  8531. return;
  8532. }
  8533.  
  8534. public function modInverse(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8535. {
  8536. var loc1:*=arg1.isEven();
  8537. if (isEven() && loc1 || arg1.sigNum() == 0)
  8538. {
  8539. return BigInteger.ZERO;
  8540. }
  8541. var loc2:*=arg1.clone();
  8542. var loc3:*=clone();
  8543. var loc4:*=nbv(1);
  8544. var loc5:*=nbv(0);
  8545. var loc6:*=nbv(0);
  8546. var loc7:*=nbv(1);
  8547. while (loc2.sigNum() != 0)
  8548. {
  8549. while (loc2.isEven())
  8550. {
  8551. loc2.rShiftTo(1, loc2);
  8552. if (loc1)
  8553. {
  8554. if (!loc4.isEven() || !loc5.isEven())
  8555. {
  8556. loc4.addTo(this, loc4);
  8557. loc5.subTo(arg1, loc5);
  8558. }
  8559. loc4.rShiftTo(1, loc4);
  8560. }
  8561. else if (!loc5.isEven())
  8562. {
  8563. loc5.subTo(arg1, loc5);
  8564. }
  8565. loc5.rShiftTo(1, loc5);
  8566. }
  8567. while (loc3.isEven())
  8568. {
  8569. loc3.rShiftTo(1, loc3);
  8570. if (loc1)
  8571. {
  8572. if (!loc6.isEven() || !loc7.isEven())
  8573. {
  8574. loc6.addTo(this, loc6);
  8575. loc7.subTo(arg1, loc7);
  8576. }
  8577. loc6.rShiftTo(1, loc6);
  8578. }
  8579. else if (!loc7.isEven())
  8580. {
  8581. loc7.subTo(arg1, loc7);
  8582. }
  8583. loc7.rShiftTo(1, loc7);
  8584. }
  8585. if (loc2.compareTo(loc3) >= 0)
  8586. {
  8587. loc2.subTo(loc3, loc2);
  8588. if (loc1)
  8589. {
  8590. loc4.subTo(loc6, loc4);
  8591. }
  8592. loc5.subTo(loc7, loc5);
  8593. continue;
  8594. }
  8595. loc3.subTo(loc2, loc3);
  8596. if (loc1)
  8597. {
  8598. loc6.subTo(loc4, loc6);
  8599. }
  8600. loc7.subTo(loc5, loc7);
  8601. }
  8602. if (loc3.compareTo(BigInteger.ONE) != 0)
  8603. {
  8604. return BigInteger.ZERO;
  8605. }
  8606. if (loc7.compareTo(arg1) >= 0)
  8607. {
  8608. return loc7.subtract(arg1);
  8609. }
  8610. if (loc7.sigNum() < 0)
  8611. {
  8612. loc7.addTo(arg1, loc7);
  8613. }
  8614. else
  8615. {
  8616. return loc7;
  8617. }
  8618. if (loc7.sigNum() < 0)
  8619. {
  8620. return loc7.add(arg1);
  8621. }
  8622. return loc7;
  8623. }
  8624.  
  8625. bi_internal function fromArray(arg1:flash.utils.ByteArray, arg2:int):void
  8626. {
  8627. var loc5:*=0;
  8628. var loc1:*=arg1.position;
  8629. var loc2:*=loc1 + arg2;
  8630. var loc3:*=0;
  8631. var loc4:*=8;
  8632. t = 0;
  8633. s = 0;
  8634. while (--loc2 >= loc1)
  8635. {
  8636. loc5 = loc2 < arg1.length ? arg1[loc2] : 0;
  8637. if (loc3 != 0)
  8638. {
  8639. if (loc3 + loc4 > DB)
  8640. {
  8641. a[(t - 1)] = a[(t - 1)] | (loc5 & (1 << DB - loc3 - 1)) << loc3;
  8642. a[loc6 = t++] = loc5 >> DB - loc3;
  8643. }
  8644. else
  8645. {
  8646. a[(t - 1)] = a[(t - 1)] | loc5 << loc3;
  8647. }
  8648. }
  8649. else
  8650. {
  8651. var loc7:*;
  8652. var loc6:*;
  8653. a[loc6 = t++] = loc5;
  8654. }
  8655. if (!((loc3 = loc3 + loc4) >= DB))
  8656. {
  8657. continue;
  8658. }
  8659. loc3 = loc3 - DB;
  8660. }
  8661. clamp();
  8662. arg1.position = Math.min(loc1 + arg2, arg1.length);
  8663. return;
  8664. }
  8665.  
  8666. bi_internal function copyTo(arg1:com.hurlant.math.BigInteger):void
  8667. {
  8668. var loc1:*=(t - 1);
  8669. while (loc1 >= 0)
  8670. {
  8671. arg1.a[loc1] = a[loc1];
  8672. --loc1;
  8673. }
  8674. arg1.t = t;
  8675. arg1.s = s;
  8676. return;
  8677. }
  8678.  
  8679. public function intValue():int
  8680. {
  8681. if (s < 0)
  8682. {
  8683. if (t == 1)
  8684. {
  8685. return a[0] - DV;
  8686. }
  8687. if (t == 0)
  8688. {
  8689. return -1;
  8690. }
  8691. }
  8692. else
  8693. {
  8694. if (t == 1)
  8695. {
  8696. return a[0];
  8697. }
  8698. if (t == 0)
  8699. {
  8700. return 0;
  8701. }
  8702. }
  8703. return (a[1] & (1 << 32 - DB - 1)) << DB | a[0];
  8704. }
  8705.  
  8706. public function min(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8707. {
  8708. return compareTo(arg1) < 0 ? this : arg1;
  8709. }
  8710.  
  8711. public function bitLength():int
  8712. {
  8713. if (t <= 0)
  8714. {
  8715. return 0;
  8716. }
  8717. return DB * (t - 1) + nbits(a[(t - 1)] ^ s & DM);
  8718. }
  8719.  
  8720. public function shortValue():int
  8721. {
  8722. return t != 0 ? a[0] << 16 >> 16 : s;
  8723. }
  8724.  
  8725. public function and(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8726. {
  8727. var loc1:*=new BigInteger();
  8728. bitwiseTo(arg1, op_and, loc1);
  8729. return loc1;
  8730. }
  8731.  
  8732. public function byteValue():int
  8733. {
  8734. return t != 0 ? a[0] << 24 >> 24 : s;
  8735. }
  8736.  
  8737. public function not():com.hurlant.math.BigInteger
  8738. {
  8739. var loc1:*=new BigInteger();
  8740. var loc2:*=0;
  8741. while (loc2 < t)
  8742. {
  8743. loc1[loc2] = DM & ~a[loc2];
  8744. ++loc2;
  8745. }
  8746. loc1.t = t;
  8747. loc1.s = ~s;
  8748. return loc1;
  8749. }
  8750.  
  8751. bi_internal function subTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  8752. {
  8753. var loc1:*=0;
  8754. var loc2:*=0;
  8755. var loc3:*=Math.min(arg1.t, t);
  8756. while (loc1 < loc3)
  8757. {
  8758. loc2 = loc2 + (a[loc1] - arg1.a[loc1]);
  8759. var loc4:*;
  8760. arg2.a[loc4 = loc1++] = loc2 & DM;
  8761. loc2 = loc2 >> DB;
  8762. }
  8763. if (arg1.t < t)
  8764. {
  8765. loc2 = loc2 - arg1.s;
  8766. while (loc1 < t)
  8767. {
  8768. loc2 = loc2 + a[loc1];
  8769. arg2.a[loc4 = loc1++] = loc2 & DM;
  8770. loc2 = loc2 >> DB;
  8771. }
  8772. loc2 = loc2 + s;
  8773. }
  8774. else
  8775. {
  8776. loc2 = loc2 + s;
  8777. while (loc1 < arg1.t)
  8778. {
  8779. loc2 = loc2 - arg1.a[loc1];
  8780. arg2.a[loc4 = loc1++] = loc2 & DM;
  8781. loc2 = loc2 >> DB;
  8782. }
  8783. loc2 = loc2 - arg1.s;
  8784. }
  8785. arg2.s = loc2 < 0 ? -1 : 0;
  8786. if (loc2 < -1)
  8787. {
  8788. arg2.a[loc4 = loc1++] = DV + loc2;
  8789. }
  8790. else if (loc2 > 0)
  8791. {
  8792. arg2.a[loc4 = loc1++] = loc2;
  8793. }
  8794. arg2.t = loc1;
  8795. arg2.clamp();
  8796. return;
  8797. }
  8798.  
  8799. public function clone():com.hurlant.math.BigInteger
  8800. {
  8801. var loc1:*=new BigInteger();
  8802. this.copyTo(loc1);
  8803. return loc1;
  8804. }
  8805.  
  8806. public function pow(arg1:int):com.hurlant.math.BigInteger
  8807. {
  8808. return exp(arg1, new NullReduction());
  8809. }
  8810.  
  8811. public function flipBit(arg1:int):com.hurlant.math.BigInteger
  8812. {
  8813. return changeBit(arg1, op_xor);
  8814. }
  8815.  
  8816. public function xor(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8817. {
  8818. var loc1:*=new BigInteger();
  8819. bitwiseTo(arg1, op_xor, loc1);
  8820. return loc1;
  8821. }
  8822.  
  8823. public function or(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8824. {
  8825. var loc1:*=new BigInteger();
  8826. bitwiseTo(arg1, op_or, loc1);
  8827. return loc1;
  8828. }
  8829.  
  8830. public function max(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  8831. {
  8832. return compareTo(arg1) > 0 ? this : arg1;
  8833. }
  8834.  
  8835. bi_internal function fromInt(arg1:int):void
  8836. {
  8837. t = 1;
  8838. s = arg1 < 0 ? -1 : 0;
  8839. if (arg1 > 0)
  8840. {
  8841. a[0] = arg1;
  8842. }
  8843. else if (arg1 < -1)
  8844. {
  8845. a[0] = arg1 + DV;
  8846. }
  8847. else
  8848. {
  8849. t = 0;
  8850. }
  8851. return;
  8852. }
  8853.  
  8854. bi_internal function isEven():Boolean
  8855. {
  8856. return (t > 0 ? a[0] & 1 : s) == 0;
  8857. }
  8858.  
  8859. public function toString(arg1:Number=16):String
  8860. {
  8861. var loc1:*=0;
  8862. if (s < 0)
  8863. {
  8864. return "-" + negate().toString(arg1);
  8865. }
  8866. var loc8:*=arg1;
  8867. switch (loc8)
  8868. {
  8869. case 2:
  8870. {
  8871. loc1 = 1;
  8872. break;
  8873. }
  8874. case 4:
  8875. {
  8876. loc1 = 2;
  8877. break;
  8878. }
  8879. case 8:
  8880. {
  8881. loc1 = 3;
  8882. break;
  8883. }
  8884. case 16:
  8885. {
  8886. loc1 = 4;
  8887. break;
  8888. }
  8889. case 32:
  8890. {
  8891. loc1 = 5;
  8892. break;
  8893. }
  8894. }
  8895. var loc2:*=(1 << loc1 - 1);
  8896. var loc3:*=0;
  8897. var loc4:*=false;
  8898. var loc5:*="";
  8899. var loc6:*=t;
  8900. var loc7:*=DB - loc6 * DB % loc1;
  8901. if (loc6-- > 0)
  8902. {
  8903. if (loc7 < DB)
  8904. {
  8905. loc7 < DB;
  8906. loc3 = loc8 = a[loc6] >> loc7;
  8907. }
  8908. if (loc7 < DB)
  8909. {
  8910. loc4 = true;
  8911. loc5 = loc3.toString(36);
  8912. }
  8913. while (loc6 >= 0)
  8914. {
  8915. if (loc7 < loc1)
  8916. {
  8917. loc7 = loc8 = loc7 + (DB - loc1);
  8918. loc3 = (loc3 = (a[loc6] & (1 << loc7 - 1)) << loc1 - loc7) | a[--loc6] >> loc8;
  8919. }
  8920. else
  8921. {
  8922. loc7 = loc8 = loc7 - loc1;
  8923. loc3 = a[loc6] >> loc8 & loc2;
  8924. if (loc7 <= 0)
  8925. {
  8926. loc7 = loc7 + DB;
  8927. --loc6;
  8928. }
  8929. }
  8930. if (loc3 > 0)
  8931. {
  8932. loc4 = true;
  8933. }
  8934. if (!loc4)
  8935. {
  8936. continue;
  8937. }
  8938. loc5 = loc5 + loc3.toString(36);
  8939. }
  8940. }
  8941. return loc4 ? loc5 : "0";
  8942. }
  8943.  
  8944. public function setBit(arg1:int):com.hurlant.math.BigInteger
  8945. {
  8946. return changeBit(arg1, op_or);
  8947. }
  8948.  
  8949. public function abs():com.hurlant.math.BigInteger
  8950. {
  8951. return s < 0 ? negate() : this;
  8952. }
  8953.  
  8954. bi_internal function nbits(arg1:int):int
  8955. {
  8956. var loc2:*=0;
  8957. var loc1:*=1;
  8958. var loc3:*;
  8959. loc2 = loc3 = arg1 >>> 16;
  8960. if (loc3 != 0)
  8961. {
  8962. arg1 = loc2;
  8963. loc1 = loc1 + 16;
  8964. }
  8965. loc2 = loc3 = arg1 >> 8;
  8966. if (loc3 != 0)
  8967. {
  8968. arg1 = loc2;
  8969. loc1 = loc1 + 8;
  8970. }
  8971. loc2 = loc3 = arg1 >> 4;
  8972. if (loc3 != 0)
  8973. {
  8974. arg1 = loc2;
  8975. loc1 = loc1 + 4;
  8976. }
  8977. loc2 = loc3 = arg1 >> 2;
  8978. if (loc3 != 0)
  8979. {
  8980. arg1 = loc2;
  8981. loc1 = loc1 + 2;
  8982. }
  8983. loc2 = loc3 = arg1 >> 1;
  8984. if (loc3 != 0)
  8985. {
  8986. arg1 = loc2;
  8987. loc1 = loc1 + 1;
  8988. }
  8989. return loc1;
  8990. }
  8991.  
  8992. public function sigNum():int
  8993. {
  8994. if (s < 0)
  8995. {
  8996. return -1;
  8997. }
  8998. if (t <= 0 || t == 1 && a[0] <= 0)
  8999. {
  9000. return 0;
  9001. }
  9002. return 1;
  9003. }
  9004.  
  9005. public function toByteArray():flash.utils.ByteArray
  9006. {
  9007. var loc4:*=0;
  9008. var loc1:*=t;
  9009. var loc2:*=new ByteArray();
  9010. loc2[0] = s;
  9011. var loc3:*=DB - loc1 * DB % 8;
  9012. var loc5:*=0;
  9013. if (loc1-- > 0)
  9014. {
  9015. if (loc3 < DB)
  9016. {
  9017. loc3 < DB;
  9018. var loc6:*;
  9019. loc4 = loc6 = a[loc1] >> loc3;
  9020. }
  9021. if (loc3 < DB)
  9022. {
  9023. loc2[loc6 = loc5++] = loc4 | s << DB - loc3;
  9024. }
  9025. while (loc1 >= 0)
  9026. {
  9027. if (loc3 < 8)
  9028. {
  9029. loc3 = loc6 = loc3 + (DB - 8);
  9030. loc4 = (loc4 = (a[loc1] & (1 << loc3 - 1)) << 8 - loc3) | a[--loc1] >> loc6;
  9031. }
  9032. else
  9033. {
  9034. loc3 = loc6 = loc3 - 8;
  9035. loc4 = a[loc1] >> loc6 & 255;
  9036. if (loc3 <= 0)
  9037. {
  9038. loc3 = loc3 + DB;
  9039. --loc1;
  9040. }
  9041. }
  9042. if ((loc4 & 128) != 0)
  9043. {
  9044. loc4 = loc4 | -256;
  9045. }
  9046. if (loc5 == 0 && !((s & 128) == (loc4 & 128)))
  9047. {
  9048. ++loc5;
  9049. }
  9050. if (!(loc5 > 0 || !(loc4 == s)))
  9051. {
  9052. continue;
  9053. }
  9054. loc2[loc6 = loc5++] = loc4;
  9055. }
  9056. }
  9057. return loc2;
  9058. }
  9059.  
  9060. bi_internal function squareTo(arg1:com.hurlant.math.BigInteger):void
  9061. {
  9062. var loc3:*=0;
  9063. var loc1:*=abs();
  9064. var loc4:*;
  9065. arg1.t = loc4 = 2 * loc1.t;
  9066. var loc2:*=loc4;
  9067. while (--loc2 >= 0)
  9068. {
  9069. arg1.a[loc2] = 0;
  9070. }
  9071. loc2 = 0;
  9072. while (loc2 < (loc1.t - 1))
  9073. {
  9074. loc3 = loc1.am(loc2, loc1.a[loc2], arg1, 2 * loc2, 0, 1);
  9075. arg1.a[loc2 + loc1.t] = loc4 = arg1.a[loc2 + loc1.t] + loc1.am(loc2 + 1, 2 * loc1.a[loc2], arg1, 2 * loc2 + 1, loc3, (loc1.t - loc2 - 1));
  9076. if (loc4 >= DV)
  9077. {
  9078. arg1.a[loc2 + loc1.t] = arg1.a[loc2 + loc1.t] - DV;
  9079. arg1.a[loc2 + loc1.t + 1] = 1;
  9080. }
  9081. ++loc2;
  9082. }
  9083. if (arg1.t > 0)
  9084. {
  9085. arg1.a[(arg1.t - 1)] = arg1.a[(arg1.t - 1)] + loc1.am(loc2, loc1.a[loc2], arg1, 2 * loc2, 0, 1);
  9086. }
  9087. arg1.s = 0;
  9088. arg1.clamp();
  9089. return;
  9090. }
  9091.  
  9092. internal function op_and(arg1:int, arg2:int):int
  9093. {
  9094. return arg1 & arg2;
  9095. }
  9096.  
  9097. protected function fromRadix(arg1:String, arg2:int=10):void
  9098. {
  9099. var loc7:*=0;
  9100. fromInt(0);
  9101. var loc1:*=chunkSize(arg2);
  9102. var loc2:*=Math.pow(arg2, loc1);
  9103. var loc3:*=false;
  9104. var loc4:*=0;
  9105. var loc5:*=0;
  9106. var loc6:*=0;
  9107. while (loc6 < arg1.length)
  9108. {
  9109. if ((loc7 = intAt(arg1, loc6)) < 0)
  9110. {
  9111. if (arg1.charAt(loc6) == "-" && sigNum() == 0)
  9112. {
  9113. loc3 = true;
  9114. }
  9115. }
  9116. else
  9117. {
  9118. loc5 = arg2 * loc5 + loc7;
  9119. if (++loc4 >= loc1)
  9120. {
  9121. dMultiply(loc2);
  9122. dAddOffset(loc5, 0);
  9123. loc4 = 0;
  9124. loc5 = 0;
  9125. }
  9126. }
  9127. ++loc6;
  9128. }
  9129. if (loc4 > 0)
  9130. {
  9131. dMultiply(Math.pow(arg2, loc4));
  9132. dAddOffset(loc5, 0);
  9133. }
  9134. if (loc3)
  9135. {
  9136. BigInteger.ZERO.subTo(this, this);
  9137. }
  9138. return;
  9139. }
  9140.  
  9141. bi_internal function dlShiftTo(arg1:int, arg2:com.hurlant.math.BigInteger):void
  9142. {
  9143. var loc1:*=0;
  9144. loc1 = (t - 1);
  9145. while (loc1 >= 0)
  9146. {
  9147. arg2.a[loc1 + arg1] = a[loc1];
  9148. --loc1;
  9149. }
  9150. --loc1;
  9151. while (loc1 >= 0)
  9152. {
  9153. arg2.a[loc1] = 0;
  9154. --loc1;
  9155. }
  9156. arg2.t = t + arg1;
  9157. arg2.s = s;
  9158. return;
  9159. }
  9160.  
  9161. internal function op_xor(arg1:int, arg2:int):int
  9162. {
  9163. return arg1 ^ arg2;
  9164. }
  9165.  
  9166. public static function nbv(arg1:int):com.hurlant.math.BigInteger
  9167. {
  9168. var loc1:*=new BigInteger();
  9169. loc1.fromInt(arg1);
  9170. return loc1;
  9171. }
  9172.  
  9173. public static const ONE:com.hurlant.math.BigInteger=nbv(1);
  9174.  
  9175. public static const ZERO:com.hurlant.math.BigInteger=nbv(0);
  9176.  
  9177. public static const DM:int=(DV - 1);
  9178.  
  9179. public static const F1:int=BI_FP - DB;
  9180.  
  9181. public static const F2:int=2 * DB - BI_FP;
  9182.  
  9183. public static const lplim:int=(1 << 26) / lowprimes[(lowprimes.length - 1)];
  9184.  
  9185. public static const lowprimes:Array=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509];
  9186.  
  9187. public static const FV:Number=Math.pow(2, BI_FP);
  9188.  
  9189. public static const BI_FP:int=52;
  9190.  
  9191. public static const DV:int=1 << DB;
  9192.  
  9193. public static const DB:int=30;
  9194.  
  9195. bi_internal var a:Array;
  9196.  
  9197. bi_internal var s:int;
  9198.  
  9199. public var t:int;
  9200. }
  9201. }
  9202.  
  9203. use namespace bi_internal;
  9204.  
  9205.  
  9206. // class ClassicReduction
  9207. package com.hurlant.math
  9208. {
  9209. use namespace bi_internal;
  9210.  
  9211. internal class ClassicReduction extends Object implements IReduction
  9212. {
  9213. public function ClassicReduction(arg1:com.hurlant.math.BigInteger)
  9214. {
  9215. super();
  9216. this.m = arg1;
  9217. return;
  9218. }
  9219.  
  9220. public function revert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9221. {
  9222. return arg1;
  9223. }
  9224.  
  9225. public function reduce(arg1:com.hurlant.math.BigInteger):void
  9226. {
  9227. arg1.divRemTo(m, null, arg1);
  9228. return;
  9229. }
  9230.  
  9231. public function mulTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger, arg3:com.hurlant.math.BigInteger):void
  9232. {
  9233. arg1.multiplyTo(arg2, arg3);
  9234. reduce(arg3);
  9235. return;
  9236. }
  9237.  
  9238. public function sqrTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  9239. {
  9240. arg1.squareTo(arg2);
  9241. reduce(arg2);
  9242. return;
  9243. }
  9244.  
  9245. public function convert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9246. {
  9247. if (arg1.s < 0 || arg1.compareTo(m) >= 0)
  9248. {
  9249. return arg1.mod(m);
  9250. }
  9251. return arg1;
  9252. }
  9253.  
  9254. internal var m:com.hurlant.math.BigInteger;
  9255. }
  9256. }
  9257.  
  9258. use namespace bi_internal;
  9259.  
  9260.  
  9261. // class IReduction
  9262. package com.hurlant.math
  9263. {
  9264. internal interface IReduction
  9265. {
  9266. function revert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger;
  9267.  
  9268. function reduce(arg1:com.hurlant.math.BigInteger):void;
  9269.  
  9270. function convert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger;
  9271.  
  9272. function mulTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger, arg3:com.hurlant.math.BigInteger):void;
  9273.  
  9274. function sqrTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void;
  9275. }
  9276. }
  9277.  
  9278.  
  9279. // class MontgomeryReduction
  9280. package com.hurlant.math
  9281. {
  9282. use namespace bi_internal;
  9283.  
  9284. internal class MontgomeryReduction extends Object implements IReduction
  9285. {
  9286. public function MontgomeryReduction(arg1:com.hurlant.math.BigInteger)
  9287. {
  9288. super();
  9289. this.m = arg1;
  9290. mp = arg1.invDigit();
  9291. mpl = mp & 32767;
  9292. mph = mp >> 15;
  9293. um = (1 << BigInteger.DB - 15 - 1);
  9294. mt2 = 2 * arg1.t;
  9295. return;
  9296. }
  9297.  
  9298. public function convert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9299. {
  9300. var loc1:*=new BigInteger();
  9301. arg1.abs().dlShiftTo(m.t, loc1);
  9302. loc1.divRemTo(m, null, loc1);
  9303. if (arg1.s < 0 && loc1.compareTo(BigInteger.ZERO) > 0)
  9304. {
  9305. m.subTo(loc1, loc1);
  9306. }
  9307. return loc1;
  9308. }
  9309.  
  9310. public function revert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9311. {
  9312. var loc1:*=new BigInteger();
  9313. arg1.copyTo(loc1);
  9314. reduce(loc1);
  9315. return loc1;
  9316. }
  9317.  
  9318. public function sqrTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  9319. {
  9320. arg1.squareTo(arg2);
  9321. reduce(arg2);
  9322. return;
  9323. }
  9324.  
  9325. public function reduce(arg1:com.hurlant.math.BigInteger):void
  9326. {
  9327. var loc2:*=0;
  9328. var loc3:*=0;
  9329. while (arg1.t <= mt2)
  9330. {
  9331. var loc5:*;
  9332. var loc6:*=((loc5 = arg1).t + 1);
  9333. loc5.t = loc6;
  9334. var loc4:*;
  9335. arg1.a[loc4 = (loc5 = arg1).t] = 0;
  9336. }
  9337. var loc1:*=0;
  9338. while (loc1 < m.t)
  9339. {
  9340. loc2 = arg1.a[loc1] & 32767;
  9341. loc3 = loc2 * mpl + ((loc2 * mph + (arg1.a[loc1] >> 15) * mpl & um) << 15) & BigInteger.DM;
  9342. loc2 = loc1 + m.t;
  9343. arg1.a[loc2] = arg1.a[loc2] + m.am(0, loc3, arg1, loc1, 0, m.t);
  9344. while (arg1.a[loc2] >= BigInteger.DV)
  9345. {
  9346. arg1.a[loc2] = arg1.a[loc2] - BigInteger.DV;
  9347. loc6 = ((loc4 = arg1.a)[loc5 = ++loc2] + 1);
  9348. loc4[loc5] = loc6;
  9349. }
  9350. ++loc1;
  9351. }
  9352. arg1.clamp();
  9353. arg1.drShiftTo(m.t, arg1);
  9354. if (arg1.compareTo(m) >= 0)
  9355. {
  9356. arg1.subTo(m, arg1);
  9357. }
  9358. return;
  9359. }
  9360.  
  9361. public function mulTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger, arg3:com.hurlant.math.BigInteger):void
  9362. {
  9363. arg1.multiplyTo(arg2, arg3);
  9364. reduce(arg3);
  9365. return;
  9366. }
  9367.  
  9368. internal var mp:int;
  9369.  
  9370. internal var mph:int;
  9371.  
  9372. internal var mpl:int;
  9373.  
  9374. internal var mt2:int;
  9375.  
  9376. internal var m:com.hurlant.math.BigInteger;
  9377.  
  9378. internal var um:int;
  9379. }
  9380. }
  9381.  
  9382. use namespace bi_internal;
  9383.  
  9384.  
  9385. // class NullReduction
  9386. package com.hurlant.math
  9387. {
  9388. use namespace bi_internal;
  9389.  
  9390. public class NullReduction extends Object implements IReduction
  9391. {
  9392. public function NullReduction()
  9393. {
  9394. super();
  9395. return;
  9396. }
  9397.  
  9398. public function convert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9399. {
  9400. return arg1;
  9401. }
  9402.  
  9403. public function sqrTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger):void
  9404. {
  9405. arg1.squareTo(arg2);
  9406. return;
  9407. }
  9408.  
  9409. public function mulTo(arg1:com.hurlant.math.BigInteger, arg2:com.hurlant.math.BigInteger, arg3:com.hurlant.math.BigInteger):void
  9410. {
  9411. arg1.multiplyTo(arg2, arg3);
  9412. return;
  9413. }
  9414.  
  9415. public function revert(arg1:com.hurlant.math.BigInteger):com.hurlant.math.BigInteger
  9416. {
  9417. return arg1;
  9418. }
  9419.  
  9420. public function reduce(arg1:com.hurlant.math.BigInteger):void
  9421. {
  9422. return;
  9423. }
  9424. }
  9425. }
  9426.  
  9427. use namespace bi_internal;
  9428.  
  9429.  
  9430. // namespace bi_internal
  9431. package com.hurlant.math
  9432. {
  9433. public namespace bi_internal="http://crypto.hurlant.com/BigInteger";
  9434. }
  9435.  
  9436.  
  9437. // package util
  9438. // class Base64
  9439. package com.hurlant.util
  9440. {
  9441. import flash.utils.*;
  9442.  
  9443. public class Base64 extends Object
  9444. {
  9445. public function Base64()
  9446. {
  9447. super();
  9448. throw new Error("Base64 class is static container only");
  9449. }
  9450.  
  9451. public static function encode(arg1:String):String
  9452. {
  9453. var loc1:*=new ByteArray();
  9454. loc1.writeUTFBytes(arg1);
  9455. return encodeByteArray(loc1);
  9456. }
  9457.  
  9458. public static function encodeByteArray(arg1:flash.utils.ByteArray):String
  9459. {
  9460. var loc2:*=null;
  9461. var loc4:*=0;
  9462. var loc5:*=0;
  9463. var loc6:*=0;
  9464. var loc1:*="";
  9465. var loc3:*=new Array(4);
  9466. arg1.position = 0;
  9467. while (arg1.bytesAvailable > 0)
  9468. {
  9469. loc2 = new Array();
  9470. loc4 = 0;
  9471. while (loc4 < 3 && arg1.bytesAvailable > 0)
  9472. {
  9473. loc2[loc4] = arg1.readUnsignedByte();
  9474. ++loc4;
  9475. }
  9476. loc3[0] = (loc2[0] & 252) >> 2;
  9477. loc3[1] = (loc2[0] & 3) << 4 | loc2[1] >> 4;
  9478. loc3[2] = (loc2[1] & 15) << 2 | loc2[2] >> 6;
  9479. loc3[3] = loc2[2] & 63;
  9480. loc5 = loc2.length;
  9481. while (loc5 < 3)
  9482. {
  9483. loc3[loc5 + 1] = 64;
  9484. ++loc5;
  9485. }
  9486. loc6 = 0;
  9487. while (loc6 < loc3.length)
  9488. {
  9489. loc1 = loc1 + BASE64_CHARS.charAt(loc3[loc6]);
  9490. ++loc6;
  9491. }
  9492. }
  9493. return loc1;
  9494. }
  9495.  
  9496. public static function decode(arg1:String):String
  9497. {
  9498. var loc1:*=decodeToByteArray(arg1);
  9499. return loc1.readUTFBytes(loc1.length);
  9500. }
  9501.  
  9502. public static function decodeToByteArray(arg1:String):flash.utils.ByteArray
  9503. {
  9504. var loc5:*=0;
  9505. var loc6:*=0;
  9506. var loc1:*=new ByteArray();
  9507. var loc2:*=new Array(4);
  9508. var loc3:*=new Array(3);
  9509. var loc4:*=0;
  9510. while (loc4 < arg1.length)
  9511. {
  9512. loc5 = 0;
  9513. while (loc5 < 4 && loc4 + loc5 < arg1.length)
  9514. {
  9515. loc2[loc5] = BASE64_CHARS.indexOf(arg1.charAt(loc4 + loc5));
  9516. ++loc5;
  9517. }
  9518. loc3[0] = (loc2[0] << 2) + ((loc2[1] & 48) >> 4);
  9519. loc3[1] = ((loc2[1] & 15) << 4) + ((loc2[2] & 60) >> 2);
  9520. loc3[2] = ((loc2[2] & 3) << 6) + loc2[3];
  9521. loc6 = 0;
  9522. while (loc6 < loc3.length)
  9523. {
  9524. if (loc2[loc6 + 1] == 64)
  9525. {
  9526. break;
  9527. }
  9528. loc1.writeByte(loc3[loc6]);
  9529. ++loc6;
  9530. }
  9531. loc4 = loc4 + 4;
  9532. }
  9533. loc1.position = 0;
  9534. return loc1;
  9535. }
  9536.  
  9537. public static const version:String="1.0.0";
  9538.  
  9539. internal static const BASE64_CHARS:String="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  9540. }
  9541. }
  9542.  
  9543.  
  9544. // class Hex
  9545. package com.hurlant.util
  9546. {
  9547. import flash.utils.*;
  9548.  
  9549. public class Hex extends Object
  9550. {
  9551. public function Hex()
  9552. {
  9553. super();
  9554. return;
  9555. }
  9556.  
  9557. public static function fromString(arg1:String, arg2:Boolean=false):String
  9558. {
  9559. var loc1:*=new ByteArray();
  9560. loc1.writeUTFBytes(arg1);
  9561. return fromArray(loc1, arg2);
  9562. }
  9563.  
  9564. public static function toString(arg1:String):String
  9565. {
  9566. var loc1:*=toArray(arg1);
  9567. return loc1.readUTFBytes(loc1.length);
  9568. }
  9569.  
  9570. public static function toArray(arg1:String):flash.utils.ByteArray
  9571. {
  9572. arg1 = arg1.replace(new RegExp("\\s|:", "gm"), "");
  9573. var loc1:*=new ByteArray();
  9574. if (arg1.length & 1 == 1)
  9575. {
  9576. arg1 = "0" + arg1;
  9577. }
  9578. var loc2:*=0;
  9579. while (loc2 < arg1.length)
  9580. {
  9581. loc1[loc2 / 2] = parseInt(arg1.substr(loc2, 2), 16);
  9582. loc2 = loc2 + 2;
  9583. }
  9584. return loc1;
  9585. }
  9586.  
  9587. public static function fromArray(arg1:flash.utils.ByteArray, arg2:Boolean=false):String
  9588. {
  9589. var loc1:*="";
  9590. var loc2:*=0;
  9591. while (loc2 < arg1.length)
  9592. {
  9593. loc1 = loc1 + ("0" + arg1[loc2].toString(16)).substr(-2, 2);
  9594. if (arg2)
  9595. {
  9596. if (loc2 < (arg1.length - 1))
  9597. {
  9598. loc1 = loc1 + ":";
  9599. }
  9600. }
  9601. ++loc2;
  9602. }
  9603. return loc1;
  9604. }
  9605. }
  9606. }
  9607.  
  9608.  
  9609. // class Memory
  9610. package com.hurlant.util
  9611. {
  9612. import flash.net.*;
  9613. import flash.system.*;
  9614.  
  9615. public class Memory extends Object
  9616. {
  9617. public function Memory()
  9618. {
  9619. super();
  9620. return;
  9621. }
  9622.  
  9623. public static function gc():void
  9624. {
  9625. var loc1:*;
  9626. try
  9627. {
  9628. new LocalConnection().connect("foo");
  9629. new LocalConnection().connect("foo");
  9630. }
  9631. catch (e:*)
  9632. {
  9633. };
  9634. return;
  9635. }
  9636.  
  9637. public static function get used():uint
  9638. {
  9639. return System.totalMemory;
  9640. }
  9641. }
  9642. }
  9643.  
  9644.  
  9645. // package definition
  9646. // class AbstractButton
  9647. package definition
  9648. {
  9649. import flash.display.*;
  9650. import flash.events.*;
  9651.  
  9652. public class AbstractButton extends flash.display.MovieClip implements IDestroyable
  9653. {
  9654. public function AbstractButton()
  9655. {
  9656. super();
  9657. createButton();
  9658. return;
  9659. }
  9660.  
  9661. protected function onButtonRollOut(arg1:flash.events.MouseEvent):void
  9662. {
  9663. if (background)
  9664. {
  9665. background.gotoAndPlay("RollOut");
  9666. }
  9667. return;
  9668. }
  9669.  
  9670. public function destroy():void
  9671. {
  9672. removeEventListener(MouseEvent.ROLL_OVER, onButtonRollOver);
  9673. removeEventListener(MouseEvent.ROLL_OUT, onButtonRollOut);
  9674. destroyBackground();
  9675. return;
  9676. }
  9677.  
  9678. protected function onButtonRollOver(arg1:flash.events.MouseEvent):void
  9679. {
  9680. if (background)
  9681. {
  9682. background.gotoAndPlay("RollOver");
  9683. }
  9684. return;
  9685. }
  9686.  
  9687. protected function destroyBackground():void
  9688. {
  9689. if (background)
  9690. {
  9691. removeChild(background);
  9692. background = null;
  9693. }
  9694. return;
  9695. }
  9696.  
  9697. protected function createBackground():void
  9698. {
  9699. return;
  9700. }
  9701.  
  9702. public function getEnabled():Boolean
  9703. {
  9704. return enabled;
  9705. }
  9706.  
  9707. protected function createButton():void
  9708. {
  9709. addEventListener(MouseEvent.ROLL_OVER, onButtonRollOver, false, 0, true);
  9710. addEventListener(MouseEvent.ROLL_OUT, onButtonRollOut, false, 0, true);
  9711. createBackground();
  9712. return;
  9713. }
  9714.  
  9715. public function getId():String
  9716. {
  9717. return id;
  9718. }
  9719.  
  9720. public function setId(arg1:String):void
  9721. {
  9722. id = arg1;
  9723. return;
  9724. }
  9725.  
  9726. public function setEnabled(arg1:Boolean):void
  9727. {
  9728. enabled = arg1;
  9729. mouseEnabled = arg1;
  9730. mouseChildren = arg1;
  9731. return;
  9732. }
  9733.  
  9734. protected var background:flash.display.MovieClip;
  9735.  
  9736. protected var id:String;
  9737. }
  9738. }
  9739.  
  9740.  
  9741. // class ButtonDefinition
  9742. package definition
  9743. {
  9744. import flash.display.*;
  9745. import flash.events.*;
  9746. import flash.text.*;
  9747.  
  9748. public class ButtonDefinition extends definition.AbstractButton
  9749. {
  9750. public function ButtonDefinition()
  9751. {
  9752. super();
  9753. return;
  9754. }
  9755.  
  9756. protected override function onButtonRollOver(arg1:flash.events.MouseEvent):void
  9757. {
  9758. if (labels.length > 1)
  9759. {
  9760. displayPanel(true);
  9761. }
  9762. super.onButtonRollOver(arg1);
  9763. return;
  9764. }
  9765.  
  9766. public function get selectionLabel():String
  9767. {
  9768. return _selectionLabel;
  9769. }
  9770.  
  9771. protected override function createBackground():void
  9772. {
  9773. background = new ControlBarButtonDefinition();
  9774. background.x = 0;
  9775. background.y = 0;
  9776. background.buttonMode = true;
  9777. addChild(background);
  9778. return;
  9779. }
  9780.  
  9781. protected function destroyPanelTop():void
  9782. {
  9783. if (panelTop)
  9784. {
  9785. removeChild(panelTop);
  9786. panelTop = null;
  9787. }
  9788. return;
  9789. }
  9790.  
  9791. protected function createPanelTop():void
  9792. {
  9793. panelTop = new ControlBarPanelTop();
  9794. panelTop.x = 1;
  9795. panelTop.y = panelCenter.y - panelTop.height;
  9796. addChild(panelTop);
  9797. panelTop.visible = false;
  9798. return;
  9799. }
  9800.  
  9801. public function update(arg1:Array, arg2:Number):void
  9802. {
  9803. var loc2:*=null;
  9804. labels = arg1;
  9805. destroyPanelDown();
  9806. destroyPanelCenter();
  9807. destroyPanelTop();
  9808. destroyButtons();
  9809. createPanelDown();
  9810. createPanelCenter();
  9811. createPanelTop();
  9812. createButtons();
  9813. var loc1:*=0;
  9814. while (loc1 < labels.length)
  9815. {
  9816. if (loc1 == arg2)
  9817. {
  9818. (loc2 = new TextFormat()).color = 5723991;
  9819. loc2.bold = true;
  9820. background.label.defaultTextFormat = loc2;
  9821. background.label.text = labels[loc1];
  9822. _selectionLabel = labels[loc1];
  9823. }
  9824. ++loc1;
  9825. }
  9826. return;
  9827. }
  9828.  
  9829. public override function destroy():void
  9830. {
  9831. super.destroy();
  9832. return;
  9833. }
  9834.  
  9835. public function updateText(arg1:String):void
  9836. {
  9837. var loc1:*=new TextFormat();
  9838. loc1.color = 5723991;
  9839. loc1.bold = true;
  9840. background.label.defaultTextFormat = loc1;
  9841. background.label.text = arg1;
  9842. return;
  9843. }
  9844.  
  9845. protected function onLabelMouseDown(arg1:flash.events.MouseEvent):void
  9846. {
  9847. dispatchEvent(new ButtonDefinitionEvent(ButtonDefinitionEvent.UPDATE, arg1.currentTarget.id));
  9848. dispatchEvent(new Event("myevent"));
  9849. update(labels, arg1.currentTarget.id);
  9850. if (this.parent)
  9851. {
  9852. if (this.parent.parent)
  9853. {
  9854. if (this.parent.parent)
  9855. {
  9856. if (this.parent.parent.parent)
  9857. {
  9858. this.parent.parent.parent.switchFormat();
  9859. }
  9860. }
  9861. }
  9862. }
  9863. return;
  9864. }
  9865.  
  9866. protected function createPanelCenter():void
  9867. {
  9868. var loc1:*=labels.length * BUTTON_HEIGHT + (labels.length - 1) * SPACING;
  9869. panelCenter = new ControlBarPanelCenter();
  9870. panelCenter.height = loc1;
  9871. panelCenter.x = 1;
  9872. panelCenter.y = panelDown.y - loc1;
  9873. addChild(panelCenter);
  9874. panelCenter.visible = false;
  9875. return;
  9876. }
  9877.  
  9878. protected function destroyPanelCenter():void
  9879. {
  9880. if (panelCenter)
  9881. {
  9882. removeChild(panelCenter);
  9883. panelCenter = null;
  9884. }
  9885. return;
  9886. }
  9887.  
  9888. protected override function onButtonRollOut(arg1:flash.events.MouseEvent):void
  9889. {
  9890. displayPanel(false);
  9891. super.onButtonRollOut(arg1);
  9892. return;
  9893. }
  9894.  
  9895. protected function createButtons():void
  9896. {
  9897. var loc3:*=null;
  9898. buttons = new Array();
  9899. var loc1:*=panelCenter.y;
  9900. var loc2:*=0;
  9901. while (loc2 < labels.length)
  9902. {
  9903. buttons.push(new ControlBarLabel());
  9904. buttons[loc2].x = 2;
  9905. buttons[loc2].y = loc1;
  9906. loc3 = new TextFormat();
  9907. loc3.color = 5723991;
  9908. background.label.defaultTextFormat = loc3;
  9909. buttons[loc2].label.text = labels[loc2];
  9910. buttons[loc2].label.mouseEnabled = false;
  9911. buttons[loc2].buttonMode = true;
  9912. buttons[loc2].addEventListener(MouseEvent.ROLL_OVER, onLabelRollOver, false, 0, true);
  9913. buttons[loc2].addEventListener(MouseEvent.ROLL_OUT, onLabelRollOut, false, 0, true);
  9914. buttons[loc2].addEventListener(MouseEvent.MOUSE_DOWN, onLabelMouseDown, false, 0, true);
  9915. buttons[loc2].visible = false;
  9916. buttons[loc2].id = loc2;
  9917. addChild(buttons[loc2]);
  9918. loc1 = loc1 + BUTTON_HEIGHT + SPACING;
  9919. ++loc2;
  9920. }
  9921. return;
  9922. }
  9923.  
  9924. protected function onLabelRollOver(arg1:flash.events.MouseEvent):void
  9925. {
  9926. arg1.currentTarget.gotoAndPlay("RollOver");
  9927. var loc1:*=new TextFormat();
  9928. loc1.color = 7522304;
  9929. arg1.currentTarget.label.defaultTextFormat = loc1;
  9930. arg1.currentTarget.label.text = arg1.currentTarget.label.text;
  9931. return;
  9932. }
  9933.  
  9934. protected function displayPanel(arg1:Boolean):void
  9935. {
  9936. if (panelTop)
  9937. {
  9938. panelTop.visible = arg1;
  9939. }
  9940. if (panelCenter)
  9941. {
  9942. panelCenter.visible = arg1;
  9943. }
  9944. if (panelDown)
  9945. {
  9946. panelDown.visible = arg1;
  9947. }
  9948. var loc1:*=0;
  9949. while (loc1 < buttons.length)
  9950. {
  9951. buttons[loc1].visible = arg1;
  9952. ++loc1;
  9953. }
  9954. return;
  9955. }
  9956.  
  9957. protected function createPanelDown():void
  9958. {
  9959. panelDown = new ControlBarPanelDown();
  9960. panelDown.x = 1;
  9961. panelDown.y = -8;
  9962. addChild(panelDown);
  9963. panelDown.visible = false;
  9964. return;
  9965. }
  9966.  
  9967. protected function destroyButtons():void
  9968. {
  9969. var loc1:*=NaN;
  9970. var loc2:*=null;
  9971. if (buttons)
  9972. {
  9973. loc1 = 0;
  9974. while (loc1 < buttons.length)
  9975. {
  9976. loc2 = buttons[loc1];
  9977. removeChild(loc2);
  9978. ++loc1;
  9979. }
  9980. buttons = null;
  9981. }
  9982. return;
  9983. }
  9984.  
  9985. protected function destroyPanelDown():void
  9986. {
  9987. if (panelDown)
  9988. {
  9989. removeChild(panelDown);
  9990. panelDown = null;
  9991. }
  9992. return;
  9993. }
  9994.  
  9995. protected function onLabelRollOut(arg1:flash.events.MouseEvent):void
  9996. {
  9997. arg1.currentTarget.gotoAndPlay("RollOut");
  9998. var loc1:*=new TextFormat();
  9999. loc1.color = 5723991;
  10000. arg1.currentTarget.label.defaultTextFormat = loc1;
  10001. arg1.currentTarget.label.text = arg1.currentTarget.label.text;
  10002. return;
  10003. }
  10004.  
  10005. public static const SPACING:Number=1;
  10006.  
  10007. public static const BUTTON_HEIGHT:Number=13;
  10008.  
  10009. public static const BUTTON_WIDTH:Number=28;
  10010.  
  10011. protected var buttons:Array;
  10012.  
  10013. protected var panelDown:flash.display.MovieClip;
  10014.  
  10015. protected var _selectionLabel:String;
  10016.  
  10017. protected var panelTop:flash.display.MovieClip;
  10018.  
  10019. protected var vodeoPlayer:VodeoPlayer;
  10020.  
  10021. protected var panelCenter:flash.display.MovieClip;
  10022.  
  10023. protected var labels:Array;
  10024. }
  10025. }
  10026.  
  10027.  
  10028. // class ButtonDefinitionEvent
  10029. package definition
  10030. {
  10031. import flash.events.*;
  10032.  
  10033. public class ButtonDefinitionEvent extends flash.events.Event
  10034. {
  10035. public function ButtonDefinitionEvent(arg1:String, arg2:Number)
  10036. {
  10037. super(arg1);
  10038. selectionId = arg2;
  10039. return;
  10040. }
  10041.  
  10042. public function getSelectionId():Number
  10043. {
  10044. return selectionId;
  10045. }
  10046.  
  10047. public function setSelectionId(arg1:Number):void
  10048. {
  10049. selectionId = arg1;
  10050. return;
  10051. }
  10052.  
  10053. public static const UPDATE:String="update";
  10054.  
  10055. protected var selectionId:Number;
  10056. }
  10057. }
  10058.  
  10059.  
  10060. // class IDestroyable
  10061. package definition
  10062. {
  10063. public interface IDestroyable
  10064. {
  10065. function destroy():void;
  10066. }
  10067. }
  10068.  
  10069.  
  10070. // package gs
  10071. // package easing
  10072. // class Linear
  10073. package gs.easing
  10074. {
  10075. public class Linear extends Object
  10076. {
  10077. public function Linear()
  10078. {
  10079. super();
  10080. return;
  10081. }
  10082.  
  10083. public static function easeOut(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  10084. {
  10085. return arg3 * arg1 / arg4 + arg2;
  10086. }
  10087.  
  10088. public static function easeIn(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  10089. {
  10090. return arg3 * arg1 / arg4 + arg2;
  10091. }
  10092.  
  10093. public static function easeInOut(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  10094. {
  10095. return arg3 * arg1 / arg4 + arg2;
  10096. }
  10097.  
  10098. public static function easeNone(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  10099. {
  10100. return arg3 * arg1 / arg4 + arg2;
  10101. }
  10102. }
  10103. }
  10104.  
  10105.  
  10106. // package plugins
  10107. // class AutoAlphaPlugin
  10108. package gs.plugins
  10109. {
  10110. import flash.display.*;
  10111. import gs.*;
  10112.  
  10113. public class AutoAlphaPlugin extends gs.plugins.TweenPlugin
  10114. {
  10115. public function AutoAlphaPlugin()
  10116. {
  10117. super();
  10118. this.propName = "autoAlpha";
  10119. this.overwriteProps = ["alpha", "visible"];
  10120. this.onComplete = onCompleteTween;
  10121. return;
  10122. }
  10123.  
  10124. public override function killProps(arg1:Object):void
  10125. {
  10126. super.killProps(arg1);
  10127. _tweenVisible = !Boolean("visible" in arg1);
  10128. return;
  10129. }
  10130.  
  10131. public function onCompleteTween():void
  10132. {
  10133. if (_tweenVisible && !(_tween.vars.runBackwards == true) && _tween.ease == _tween.vars.ease)
  10134. {
  10135. _target.visible = _visible;
  10136. }
  10137. return;
  10138. }
  10139.  
  10140. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10141. {
  10142. _target = arg1;
  10143. _tween = arg3;
  10144. _visible = Boolean(!(arg2 == 0));
  10145. _tweenVisible = true;
  10146. addTween(arg1, "alpha", arg1.alpha, arg2, "alpha");
  10147. return true;
  10148. }
  10149.  
  10150. public override function set changeFactor(arg1:Number):void
  10151. {
  10152. updateTweens(arg1);
  10153. if (!(_target.visible == true) && _tweenVisible)
  10154. {
  10155. _target.visible = true;
  10156. }
  10157. return;
  10158. }
  10159.  
  10160. public static const VERSION:Number=1;
  10161.  
  10162. public static const API:Number=1;
  10163.  
  10164. protected var _tweenVisible:Boolean;
  10165.  
  10166. protected var _target:Object;
  10167.  
  10168. protected var _visible:Boolean;
  10169.  
  10170. protected var _tween:gs.TweenLite;
  10171. }
  10172. }
  10173.  
  10174.  
  10175. // class EndArrayPlugin
  10176. package gs.plugins
  10177. {
  10178. import flash.display.*;
  10179. import gs.*;
  10180. import gs.utils.tween.*;
  10181.  
  10182. public class EndArrayPlugin extends gs.plugins.TweenPlugin
  10183. {
  10184. public function EndArrayPlugin()
  10185. {
  10186. _info = [];
  10187. super();
  10188. this.propName = "endArray";
  10189. this.overwriteProps = ["endArray"];
  10190. return;
  10191. }
  10192.  
  10193. public function init(arg1:Array, arg2:Array):void
  10194. {
  10195. _a = arg1;
  10196. var loc1:*=(arg2.length - 1);
  10197. while (loc1 > -1)
  10198. {
  10199. if (!(arg1[loc1] == arg2[loc1]) && !(arg1[loc1] == null))
  10200. {
  10201. _info[_info.length] = new ArrayTweenInfo(loc1, _a[loc1], arg2[loc1] - _a[loc1]);
  10202. }
  10203. --loc1;
  10204. }
  10205. return;
  10206. }
  10207.  
  10208. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10209. {
  10210. if (!(arg1 is Array) || !(arg2 is Array))
  10211. {
  10212. return false;
  10213. }
  10214. init(arg1 as Array, arg2);
  10215. return true;
  10216. }
  10217.  
  10218. public override function set changeFactor(arg1:Number):void
  10219. {
  10220. var loc1:*=0;
  10221. var loc2:*=null;
  10222. var loc3:*=NaN;
  10223. var loc4:*=0;
  10224. if (this.round)
  10225. {
  10226. loc1 = (_info.length - 1);
  10227. while (loc1 > -1)
  10228. {
  10229. loc2 = _info[loc1];
  10230. loc4 = (loc3 = loc2.start + loc2.change * arg1) < 0 ? -1 : 1;
  10231. _a[loc2.index] = loc3 % 1 * loc4 > 0.5 ? int(loc3) + loc4 : int(loc3);
  10232. --loc1;
  10233. }
  10234. }
  10235. else
  10236. {
  10237. loc1 = (_info.length - 1);
  10238. while (loc1 > -1)
  10239. {
  10240. loc2 = _info[loc1];
  10241. _a[loc2.index] = loc2.start + loc2.change * arg1;
  10242. --loc1;
  10243. }
  10244. }
  10245. return;
  10246. }
  10247.  
  10248. public static const VERSION:Number=1.01;
  10249.  
  10250. public static const API:Number=1;
  10251.  
  10252. protected var _a:Array;
  10253.  
  10254. protected var _info:Array;
  10255. }
  10256. }
  10257.  
  10258.  
  10259. // class FramePlugin
  10260. package gs.plugins
  10261. {
  10262. import flash.display.*;
  10263. import gs.*;
  10264.  
  10265. public class FramePlugin extends gs.plugins.TweenPlugin
  10266. {
  10267. public function FramePlugin()
  10268. {
  10269. super();
  10270. this.propName = "frame";
  10271. this.overwriteProps = ["frame"];
  10272. this.round = true;
  10273. return;
  10274. }
  10275.  
  10276. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10277. {
  10278. if (!(arg1 is MovieClip) || isNaN(arg2))
  10279. {
  10280. return false;
  10281. }
  10282. _target = arg1 as MovieClip;
  10283. this.frame = _target.currentFrame;
  10284. addTween(this, "frame", this.frame, arg2, "frame");
  10285. return true;
  10286. }
  10287.  
  10288. public override function set changeFactor(arg1:Number):void
  10289. {
  10290. updateTweens(arg1);
  10291. _target.gotoAndStop(this.frame);
  10292. return;
  10293. }
  10294.  
  10295. public static const VERSION:Number=1.01;
  10296.  
  10297. public static const API:Number=1;
  10298.  
  10299. protected var _target:flash.display.MovieClip;
  10300.  
  10301. public var frame:int;
  10302. }
  10303. }
  10304.  
  10305.  
  10306. // class RemoveTintPlugin
  10307. package gs.plugins
  10308. {
  10309. import flash.display.*;
  10310. import gs.*;
  10311.  
  10312. public class RemoveTintPlugin extends gs.plugins.TintPlugin
  10313. {
  10314. public function RemoveTintPlugin()
  10315. {
  10316. super();
  10317. this.propName = "removeTint";
  10318. return;
  10319. }
  10320.  
  10321. public static const VERSION:Number=1.01;
  10322.  
  10323. public static const API:Number=1;
  10324. }
  10325. }
  10326.  
  10327.  
  10328. // class TintPlugin
  10329. package gs.plugins
  10330. {
  10331. import flash.display.*;
  10332. import flash.geom.*;
  10333. import gs.*;
  10334. import gs.utils.tween.*;
  10335.  
  10336. public class TintPlugin extends gs.plugins.TweenPlugin
  10337. {
  10338. public function TintPlugin()
  10339. {
  10340. super();
  10341. this.propName = "tint";
  10342. this.overwriteProps = ["tint"];
  10343. return;
  10344. }
  10345.  
  10346. public function init(arg1:flash.display.DisplayObject, arg2:flash.geom.ColorTransform):void
  10347. {
  10348. var loc1:*=0;
  10349. var loc2:*=null;
  10350. _target = arg1;
  10351. _ct = _target.transform.colorTransform;
  10352. loc1 = (_props.length - 1);
  10353. while (loc1 > -1)
  10354. {
  10355. loc2 = _props[loc1];
  10356. if (_ct[loc2] != arg2[loc2])
  10357. {
  10358. _tweens[_tweens.length] = new TweenInfo(_ct, loc2, _ct[loc2], arg2[loc2] - _ct[loc2], "tint", false);
  10359. }
  10360. --loc1;
  10361. }
  10362. return;
  10363. }
  10364.  
  10365. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10366. {
  10367. if (!(arg1 is DisplayObject))
  10368. {
  10369. return false;
  10370. }
  10371. var loc1:*=new ColorTransform();
  10372. if (!(arg2 == null) && !(arg3.exposedVars.removeTint == true))
  10373. {
  10374. loc1.color = uint(arg2);
  10375. }
  10376. _ignoreAlpha = true;
  10377. init(arg1 as DisplayObject, loc1);
  10378. return true;
  10379. }
  10380.  
  10381. public override function set changeFactor(arg1:Number):void
  10382. {
  10383. var loc1:*=null;
  10384. updateTweens(arg1);
  10385. if (_ignoreAlpha)
  10386. {
  10387. loc1 = _target.transform.colorTransform;
  10388. _ct.alphaMultiplier = loc1.alphaMultiplier;
  10389. _ct.alphaOffset = loc1.alphaOffset;
  10390. }
  10391. _target.transform.colorTransform = _ct;
  10392. return;
  10393. }
  10394.  
  10395.  
  10396. {
  10397. _props = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
  10398. }
  10399.  
  10400. public static const VERSION:Number=1.1;
  10401.  
  10402. public static const API:Number=1;
  10403.  
  10404. protected var _target:flash.display.DisplayObject;
  10405.  
  10406. protected var _ct:flash.geom.ColorTransform;
  10407.  
  10408. protected var _ignoreAlpha:Boolean;
  10409.  
  10410. protected static var _props:Array;
  10411. }
  10412. }
  10413.  
  10414.  
  10415. // class TweenPlugin
  10416. package gs.plugins
  10417. {
  10418. import gs.*;
  10419. import gs.utils.tween.*;
  10420.  
  10421. public class TweenPlugin extends Object
  10422. {
  10423. public function TweenPlugin()
  10424. {
  10425. _tweens = [];
  10426. super();
  10427. return;
  10428. }
  10429.  
  10430. protected function updateTweens(arg1:Number):void
  10431. {
  10432. var loc1:*=0;
  10433. var loc2:*=null;
  10434. var loc3:*=NaN;
  10435. var loc4:*=0;
  10436. if (this.round)
  10437. {
  10438. loc1 = (_tweens.length - 1);
  10439. while (loc1 > -1)
  10440. {
  10441. loc2 = _tweens[loc1];
  10442. loc4 = (loc3 = loc2.start + loc2.change * arg1) < 0 ? -1 : 1;
  10443. loc2.target[loc2.property] = loc3 % 1 * loc4 > 0.5 ? int(loc3) + loc4 : int(loc3);
  10444. --loc1;
  10445. }
  10446. }
  10447. else
  10448. {
  10449. loc1 = (_tweens.length - 1);
  10450. while (loc1 > -1)
  10451. {
  10452. loc2 = _tweens[loc1];
  10453. loc2.target[loc2.property] = loc2.start + loc2.change * arg1;
  10454. --loc1;
  10455. }
  10456. }
  10457. return;
  10458. }
  10459.  
  10460. public function set changeFactor(arg1:Number):void
  10461. {
  10462. updateTweens(arg1);
  10463. _changeFactor = arg1;
  10464. return;
  10465. }
  10466.  
  10467. protected function addTween(arg1:Object, arg2:String, arg3:Number, arg4:*, arg5:String=null):void
  10468. {
  10469. var loc1:*=NaN;
  10470. if (arg4 != null)
  10471. {
  10472. if ((loc1 = typeof arg4 != "number" ? Number(arg4) : arg4 - arg3) != 0)
  10473. {
  10474. _tweens[_tweens.length] = new TweenInfo(arg1, arg2, arg3, loc1, arg5 || arg2, false);
  10475. }
  10476. }
  10477. return;
  10478. }
  10479.  
  10480. public function killProps(arg1:Object):void
  10481. {
  10482. var loc1:*=0;
  10483. loc1 = (this.overwriteProps.length - 1);
  10484. while (loc1 > -1)
  10485. {
  10486. if (this.overwriteProps[loc1] in arg1)
  10487. {
  10488. this.overwriteProps.splice(loc1, 1);
  10489. }
  10490. --loc1;
  10491. }
  10492. loc1 = (_tweens.length - 1);
  10493. while (loc1 > -1)
  10494. {
  10495. if (_tweens[loc1].name in arg1)
  10496. {
  10497. _tweens.splice(loc1, 1);
  10498. }
  10499. --loc1;
  10500. }
  10501. return;
  10502. }
  10503.  
  10504. public function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10505. {
  10506. addTween(arg1, this.propName, arg1[this.propName], arg2, this.propName);
  10507. return true;
  10508. }
  10509.  
  10510. public function get changeFactor():Number
  10511. {
  10512. return _changeFactor;
  10513. }
  10514.  
  10515. public static function activate(arg1:Array):Boolean
  10516. {
  10517. var loc1:*=0;
  10518. var loc2:*=null;
  10519. loc1 = (arg1.length - 1);
  10520. while (loc1 > -1)
  10521. {
  10522. loc2 = new arg1[loc1]();
  10523. TweenLite.plugins[loc2.propName] = arg1[loc1];
  10524. --loc1;
  10525. }
  10526. return true;
  10527. }
  10528.  
  10529. public static const VERSION:Number=1.03;
  10530.  
  10531. public static const API:Number=1;
  10532.  
  10533. public var overwriteProps:Array;
  10534.  
  10535. protected var _tweens:Array;
  10536.  
  10537. public var propName:String;
  10538.  
  10539. public var onComplete:Function;
  10540.  
  10541. public var round:Boolean;
  10542.  
  10543. protected var _changeFactor:Number=0;
  10544. }
  10545. }
  10546.  
  10547.  
  10548. // class VisiblePlugin
  10549. package gs.plugins
  10550. {
  10551. import flash.display.*;
  10552. import gs.*;
  10553.  
  10554. public class VisiblePlugin extends gs.plugins.TweenPlugin
  10555. {
  10556. public function VisiblePlugin()
  10557. {
  10558. super();
  10559. this.propName = "visible";
  10560. this.overwriteProps = ["visible"];
  10561. this.onComplete = onCompleteTween;
  10562. return;
  10563. }
  10564.  
  10565. public function onCompleteTween():void
  10566. {
  10567. if (!(_tween.vars.runBackwards == true) && _tween.ease == _tween.vars.ease)
  10568. {
  10569. _target.visible = _visible;
  10570. }
  10571. return;
  10572. }
  10573.  
  10574. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10575. {
  10576. _target = arg1;
  10577. _tween = arg3;
  10578. _visible = Boolean(arg2);
  10579. return true;
  10580. }
  10581.  
  10582. public override function set changeFactor(arg1:Number):void
  10583. {
  10584. if (_target.visible != true)
  10585. {
  10586. _target.visible = true;
  10587. }
  10588. return;
  10589. }
  10590.  
  10591. public static const VERSION:Number=1;
  10592.  
  10593. public static const API:Number=1;
  10594.  
  10595. protected var _target:Object;
  10596.  
  10597. protected var _visible:Boolean;
  10598.  
  10599. protected var _tween:gs.TweenLite;
  10600. }
  10601. }
  10602.  
  10603.  
  10604. // class VolumePlugin
  10605. package gs.plugins
  10606. {
  10607. import flash.display.*;
  10608. import flash.media.*;
  10609. import gs.*;
  10610.  
  10611. public class VolumePlugin extends gs.plugins.TweenPlugin
  10612. {
  10613. public function VolumePlugin()
  10614. {
  10615. super();
  10616. this.propName = "volume";
  10617. this.overwriteProps = ["volume"];
  10618. return;
  10619. }
  10620.  
  10621. public override function onInitTween(arg1:Object, arg2:*, arg3:gs.TweenLite):Boolean
  10622. {
  10623. if (isNaN(arg2) || !arg1.hasOwnProperty("soundTransform"))
  10624. {
  10625. return false;
  10626. }
  10627. _target = arg1;
  10628. _st = _target.soundTransform;
  10629. addTween(_st, "volume", _st.volume, arg2, "volume");
  10630. return true;
  10631. }
  10632.  
  10633. public override function set changeFactor(arg1:Number):void
  10634. {
  10635. updateTweens(arg1);
  10636. _target.soundTransform = _st;
  10637. return;
  10638. }
  10639.  
  10640. public static const VERSION:Number=1.01;
  10641.  
  10642. public static const API:Number=1;
  10643.  
  10644. protected var _target:Object;
  10645.  
  10646. protected var _st:flash.media.SoundTransform;
  10647. }
  10648. }
  10649.  
  10650.  
  10651. // package utils
  10652. // package tween
  10653. // class ArrayTweenInfo
  10654. package gs.utils.tween
  10655. {
  10656. public class ArrayTweenInfo extends Object
  10657. {
  10658. public function ArrayTweenInfo(arg1:uint, arg2:Number, arg3:Number)
  10659. {
  10660. super();
  10661. this.index = arg1;
  10662. this.start = arg2;
  10663. this.change = arg3;
  10664. return;
  10665. }
  10666.  
  10667. public var change:Number;
  10668.  
  10669. public var start:Number;
  10670.  
  10671. public var index:uint;
  10672. }
  10673. }
  10674.  
  10675.  
  10676. // class TweenInfo
  10677. package gs.utils.tween
  10678. {
  10679. public class TweenInfo extends Object
  10680. {
  10681. public function TweenInfo(arg1:Object, arg2:String, arg3:Number, arg4:Number, arg5:String, arg6:Boolean)
  10682. {
  10683. super();
  10684. this.target = arg1;
  10685. this.property = arg2;
  10686. this.start = arg3;
  10687. this.change = arg4;
  10688. this.name = arg5;
  10689. this.isPlugin = arg6;
  10690. return;
  10691. }
  10692.  
  10693. public var start:Number;
  10694.  
  10695. public var name:String;
  10696.  
  10697. public var change:Number;
  10698.  
  10699. public var target:Object;
  10700.  
  10701. public var property:String;
  10702.  
  10703. public var isPlugin:Boolean;
  10704. }
  10705. }
  10706.  
  10707.  
  10708. // class TweenLite
  10709. package gs
  10710. {
  10711. import flash.display.*;
  10712. import flash.events.*;
  10713. import flash.utils.*;
  10714. import gs.plugins.*;
  10715. import gs.utils.tween.*;
  10716.  
  10717. public class TweenLite extends Object
  10718. {
  10719. public function TweenLite(arg1:Object, arg2:Number, arg3:Object)
  10720. {
  10721. super();
  10722. if (arg1 == null)
  10723. {
  10724. return;
  10725. }
  10726. if (!_tlInitted)
  10727. {
  10728. TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
  10729. currentTime = getTimer();
  10730. timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
  10731. if (overwriteManager == null)
  10732. {
  10733. overwriteManager = {"mode":1, "enabled":false};
  10734. }
  10735. _timer.addEventListener("timer", killGarbage, false, 0, true);
  10736. _timer.start();
  10737. _tlInitted = true;
  10738. }
  10739. this.vars = arg3;
  10740. this.duration = arg2 || 0.001;
  10741. this.delay = arg3.delay || 0;
  10742. this.combinedTimeScale = arg3.timeScale || 1;
  10743. this.active = Boolean(arg2 == 0 && this.delay == 0);
  10744. this.target = arg1;
  10745. if (typeof this.vars.ease != "function")
  10746. {
  10747. this.vars.ease = defaultEase;
  10748. }
  10749. if (this.vars.easeParams != null)
  10750. {
  10751. this.vars.proxiedEase = this.vars.ease;
  10752. this.vars.ease = easeProxy;
  10753. }
  10754. this.ease = this.vars.ease;
  10755. this.exposedVars = this.vars.isTV != true ? this.vars : this.vars.exposedVars;
  10756. this.tweens = [];
  10757. this.initTime = currentTime;
  10758. this.startTime = this.initTime + this.delay * 1000;
  10759. var loc1:*=arg3.overwrite == undefined || !overwriteManager.enabled && arg3.overwrite > 1 ? overwriteManager.mode : int(arg3.overwrite);
  10760. if (!(arg1 in masterList) || loc1 == 1)
  10761. {
  10762. masterList[arg1] = [this];
  10763. }
  10764. else
  10765. {
  10766. masterList[arg1].push(this);
  10767. }
  10768. if (this.vars.runBackwards == true && !(this.vars.renderOnStart == true) || this.active)
  10769. {
  10770. initTweenVals();
  10771. if (this.active)
  10772. {
  10773. render(this.startTime + 1);
  10774. }
  10775. else
  10776. {
  10777. render(this.startTime);
  10778. }
  10779. if (!(this.exposedVars.visible == null) && this.vars.runBackwards == true && this.target is DisplayObject)
  10780. {
  10781. this.target.visible = this.exposedVars.visible;
  10782. }
  10783. }
  10784. return;
  10785. }
  10786.  
  10787. public function killVars(arg1:Object):void
  10788. {
  10789. if (overwriteManager.enabled)
  10790. {
  10791. overwriteManager.killVars(arg1, this.exposedVars, this.tweens);
  10792. }
  10793. return;
  10794. }
  10795.  
  10796. protected static function killGarbage(arg1:flash.events.TimerEvent):void
  10797. {
  10798. var loc2:*=null;
  10799. var loc1:*=masterList;
  10800. var loc3:*=0;
  10801. var loc4:*=loc1;
  10802. for (loc2 in loc4)
  10803. {
  10804. if (loc1[loc2].length != 0)
  10805. {
  10806. continue;
  10807. }
  10808. delete loc1[loc2];
  10809. }
  10810. return;
  10811. }
  10812.  
  10813. public static function delayedCall(arg1:Number, arg2:Function, arg3:Array=null):gs.TweenLite
  10814. {
  10815. return new TweenLite(arg2, 0, {"delay":arg1, "onComplete":arg2, "onCompleteParams":arg3, "overwrite":0});
  10816. }
  10817.  
  10818. public static function to(arg1:Object, arg2:Number, arg3:Object):gs.TweenLite
  10819. {
  10820. return new TweenLite(arg1, arg2, arg3);
  10821. }
  10822.  
  10823. public function get enabled():Boolean
  10824. {
  10825. return this.gc ? false : true;
  10826. }
  10827.  
  10828. public function set enabled(arg1:Boolean):void
  10829. {
  10830. var loc1:*=null;
  10831. var loc2:*=false;
  10832. var loc3:*=0;
  10833. if (arg1)
  10834. {
  10835. if (this.target in masterList)
  10836. {
  10837. loc1 = masterList[this.target];
  10838. loc3 = (loc1.length - 1);
  10839. while (loc3 > -1)
  10840. {
  10841. if (loc1[loc3] == this)
  10842. {
  10843. loc2 = true;
  10844. break;
  10845. }
  10846. --loc3;
  10847. }
  10848. if (!loc2)
  10849. {
  10850. loc1[loc1.length] = this;
  10851. }
  10852. }
  10853. else
  10854. {
  10855. masterList[this.target] = [this];
  10856. }
  10857. }
  10858. this.gc = arg1 ? false : true;
  10859. if (this.gc)
  10860. {
  10861. this.active = false;
  10862. }
  10863. else
  10864. {
  10865. this.active = this.started;
  10866. }
  10867. return;
  10868. }
  10869.  
  10870. public static function removeTween(arg1:gs.TweenLite, arg2:Boolean=true):void
  10871. {
  10872. if (arg1 != null)
  10873. {
  10874. if (arg2)
  10875. {
  10876. arg1.clear();
  10877. }
  10878. arg1.enabled = false;
  10879. }
  10880. return;
  10881. }
  10882.  
  10883. public static function updateAll(arg1:flash.events.Event=null):void
  10884. {
  10885. var loc3:*=null;
  10886. var loc4:*=0;
  10887. var loc5:*=null;
  10888. var loc6:*;
  10889. currentTime = loc6 = getTimer();
  10890. var loc1:*=loc6;
  10891. var loc2:*=masterList;
  10892. loc6 = 0;
  10893. var loc7:*=loc2;
  10894. for each (loc3 in loc7)
  10895. {
  10896. loc4 = (loc3.length - 1);
  10897. while (loc4 > -1)
  10898. {
  10899. if ((loc5 = loc3[loc4]).active)
  10900. {
  10901. loc5.render(loc1);
  10902. }
  10903. else if (loc5.gc)
  10904. {
  10905. loc3.splice(loc4, 1);
  10906. }
  10907. else if (loc1 >= loc5.startTime)
  10908. {
  10909. loc5.activate();
  10910. loc5.render(loc1);
  10911. }
  10912. --loc4;
  10913. }
  10914. }
  10915. return;
  10916. }
  10917.  
  10918. public static function killTweensOf(arg1:Object=null, arg2:Boolean=false):void
  10919. {
  10920. var loc1:*=null;
  10921. var loc2:*=0;
  10922. var loc3:*=null;
  10923. if (!(arg1 == null) && arg1 in masterList)
  10924. {
  10925. loc1 = masterList[arg1];
  10926. loc2 = (loc1.length - 1);
  10927. while (loc2 > -1)
  10928. {
  10929. loc3 = loc1[loc2];
  10930. if (arg2 && !loc3.gc)
  10931. {
  10932. loc3.complete(false);
  10933. }
  10934. loc3.clear();
  10935. --loc2;
  10936. }
  10937. delete masterList[arg1];
  10938. }
  10939. return;
  10940. }
  10941.  
  10942.  
  10943. {
  10944. plugins = {};
  10945. killDelayedCallsTo = TweenLite.killTweensOf;
  10946. defaultEase = TweenLite.easeOut;
  10947. masterList = new Dictionary(false);
  10948. timingSprite = new Sprite();
  10949. _timer = new Timer(2000);
  10950. _reservedProps = {"ease":1, "delay":1, "overwrite":1, "onComplete":1, "onCompleteParams":1, "runBackwards":1, "startAt":1, "onUpdate":1, "onUpdateParams":1, "roundProps":1, "onStart":1, "onStartParams":1, "persist":1, "renderOnStart":1, "proxiedEase":1, "easeParams":1, "yoyo":1, "loop":1, "onCompleteListener":1, "onUpdateListener":1, "onStartListener":1, "orientToBezier":1, "timeScale":1};
  10951. }
  10952.  
  10953. public function clear():void
  10954. {
  10955. this.tweens = [];
  10956. var loc1:*;
  10957. this.exposedVars = loc1 = {"ease":this.vars.ease};
  10958. this.vars = loc1;
  10959. _hasUpdate = false;
  10960. return;
  10961. }
  10962.  
  10963. public static function from(arg1:Object, arg2:Number, arg3:Object):gs.TweenLite
  10964. {
  10965. arg3.runBackwards = true;
  10966. return new TweenLite(arg1, arg2, arg3);
  10967. }
  10968.  
  10969. public function render(arg1:uint):void
  10970. {
  10971. var loc2:*=NaN;
  10972. var loc3:*=null;
  10973. var loc4:*=0;
  10974. var loc1:*=(arg1 - this.startTime) * 0.001;
  10975. if (loc1 >= this.duration)
  10976. {
  10977. loc1 = this.duration;
  10978. loc2 = this.ease == this.vars.ease || this.duration == 0.001 ? 1 : 0;
  10979. }
  10980. else
  10981. {
  10982. loc2 = this.ease(loc1, 0, 1, this.duration);
  10983. }
  10984. loc4 = (this.tweens.length - 1);
  10985. while (loc4 > -1)
  10986. {
  10987. (loc3 = this.tweens[loc4]).target[loc3.property] = loc3.start + loc2 * loc3.change;
  10988. --loc4;
  10989. }
  10990. if (_hasUpdate)
  10991. {
  10992. this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
  10993. }
  10994. if (loc1 == this.duration)
  10995. {
  10996. complete(true);
  10997. }
  10998. return;
  10999. }
  11000.  
  11001. public static function easeOut(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  11002. {
  11003. var loc1:*;
  11004. arg1 = loc1 = arg1 / arg4;
  11005. return (-arg3) * loc1 * (arg1 - 2) + arg2;
  11006. }
  11007.  
  11008. public function activate():void
  11009. {
  11010. var loc1:*;
  11011. this.active = loc1 = true;
  11012. this.started = loc1;
  11013. if (!this.initted)
  11014. {
  11015. initTweenVals();
  11016. }
  11017. if (this.vars.onStart != null)
  11018. {
  11019. this.vars.onStart.apply(null, this.vars.onStartParams);
  11020. }
  11021. if (this.duration == 0.001)
  11022. {
  11023. --this.startTime;
  11024. }
  11025. return;
  11026. }
  11027.  
  11028. public function initTweenVals():void
  11029. {
  11030. var loc1:*=null;
  11031. var loc2:*=0;
  11032. var loc3:*=undefined;
  11033. var loc4:*=null;
  11034. if (!(this.exposedVars.timeScale == undefined) && this.target.hasOwnProperty("timeScale"))
  11035. {
  11036. this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, this.exposedVars.timeScale - this.target.timeScale, "timeScale", false);
  11037. }
  11038. var loc5:*=0;
  11039. var loc6:*=this.exposedVars;
  11040. for (loc1 in loc6)
  11041. {
  11042. if (loc1 in _reservedProps)
  11043. {
  11044. continue;
  11045. }
  11046. if (loc1 in plugins)
  11047. {
  11048. loc3 = new plugins[loc1]();
  11049. if (loc3.onInitTween(this.target, this.exposedVars[loc1], this) != false)
  11050. {
  11051. this.tweens[this.tweens.length] = new TweenInfo(loc3, "changeFactor", 0, 1, loc3.overwriteProps.length != 1 ? "_MULTIPLE_" : loc3.overwriteProps[0], true);
  11052. _hasPlugins = true;
  11053. }
  11054. else
  11055. {
  11056. this.tweens[this.tweens.length] = new TweenInfo(this.target, loc1, this.target[loc1], typeof this.exposedVars[loc1] != "number" ? Number(this.exposedVars[loc1]) : this.exposedVars[loc1] - this.target[loc1], loc1, false);
  11057. }
  11058. continue;
  11059. }
  11060. this.tweens[this.tweens.length] = new TweenInfo(this.target, loc1, this.target[loc1], typeof this.exposedVars[loc1] != "number" ? Number(this.exposedVars[loc1]) : this.exposedVars[loc1] - this.target[loc1], loc1, false);
  11061. }
  11062. if (this.vars.runBackwards == true)
  11063. {
  11064. loc2 = (this.tweens.length - 1);
  11065. while (loc2 > -1)
  11066. {
  11067. loc4 = this.tweens[loc2];
  11068. loc4.start = loc4.start + loc4.change;
  11069. loc4.change = -loc4.change;
  11070. --loc2;
  11071. }
  11072. }
  11073. if (this.vars.onUpdate != null)
  11074. {
  11075. _hasUpdate = true;
  11076. }
  11077. if (TweenLite.overwriteManager.enabled && this.target in masterList)
  11078. {
  11079. overwriteManager.manageOverwrites(this, masterList[this.target]);
  11080. }
  11081. this.initted = true;
  11082. return;
  11083. }
  11084.  
  11085. protected function easeProxy(arg1:Number, arg2:Number, arg3:Number, arg4:Number):Number
  11086. {
  11087. return this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams));
  11088. }
  11089.  
  11090. public function complete(arg1:Boolean=false):void
  11091. {
  11092. var loc1:*=0;
  11093. if (!arg1)
  11094. {
  11095. if (!this.initted)
  11096. {
  11097. initTweenVals();
  11098. }
  11099. this.startTime = currentTime - this.duration * 1000 / this.combinedTimeScale;
  11100. render(currentTime);
  11101. return;
  11102. }
  11103. if (_hasPlugins)
  11104. {
  11105. loc1 = (this.tweens.length - 1);
  11106. while (loc1 > -1)
  11107. {
  11108. if (this.tweens[loc1].isPlugin && !(this.tweens[loc1].target.onComplete == null))
  11109. {
  11110. this.tweens[loc1].target.onComplete();
  11111. }
  11112. --loc1;
  11113. }
  11114. }
  11115. if (this.vars.persist != true)
  11116. {
  11117. this.enabled = false;
  11118. }
  11119. if (this.vars.onComplete != null)
  11120. {
  11121. this.vars.onComplete.apply(null, this.vars.onCompleteParams);
  11122. }
  11123. return;
  11124. }
  11125.  
  11126. public static const version:Number=10.092;
  11127.  
  11128. public var started:Boolean;
  11129.  
  11130. public var delay:Number;
  11131.  
  11132. protected var _hasUpdate:Boolean;
  11133.  
  11134. protected var _hasPlugins:Boolean;
  11135.  
  11136. public var initted:Boolean;
  11137.  
  11138. public var active:Boolean;
  11139.  
  11140. public var startTime:Number;
  11141.  
  11142. public var target:Object;
  11143.  
  11144. public var duration:Number;
  11145.  
  11146. public var gc:Boolean;
  11147.  
  11148. public var vars:Object;
  11149.  
  11150. public var ease:Function;
  11151.  
  11152. public var exposedVars:Object;
  11153.  
  11154. public static var plugins:Object;
  11155.  
  11156. public static var currentTime:uint;
  11157.  
  11158. public static var masterList:flash.utils.Dictionary;
  11159.  
  11160. public var initTime:Number;
  11161.  
  11162. internal static var _timer:flash.utils.Timer;
  11163.  
  11164. public static var killDelayedCallsTo:Function;
  11165.  
  11166. public var tweens:Array;
  11167.  
  11168. public static var timingSprite:flash.display.Sprite;
  11169.  
  11170. protected static var _reservedProps:Object;
  11171.  
  11172. internal static var _tlInitted:Boolean;
  11173.  
  11174. public static var defaultEase:Function;
  11175.  
  11176. public var combinedTimeScale:Number;
  11177.  
  11178. public static var overwriteManager:Object;
  11179. }
  11180. }
  11181.  
  11182.  
  11183. // package metabast
  11184. // package display
  11185. // class CreateGraphic
  11186. package metabast.display
  11187. {
  11188. import flash.display.*;
  11189.  
  11190. public class CreateGraphic extends Object
  11191. {
  11192. public function CreateGraphic()
  11193. {
  11194. super();
  11195. return;
  11196. }
  11197.  
  11198. public static function to(arg1:flash.display.DisplayObjectContainer, arg2:Object=undefined):flash.display.Sprite
  11199. {
  11200. var loc2:*=null;
  11201. var loc1:*=new Object();
  11202. if (arg2)
  11203. {
  11204. loc1 = arg2;
  11205. }
  11206. if (loc1.x == undefined)
  11207. {
  11208. loc1.x = 0;
  11209. }
  11210. if (loc1.y == undefined)
  11211. {
  11212. loc1.y = 0;
  11213. }
  11214. if (loc1.alpha == undefined)
  11215. {
  11216. loc1.alpha = 1;
  11217. }
  11218. if (loc1.blendMode == undefined)
  11219. {
  11220. loc1.blendMode = "normal";
  11221. }
  11222. if (loc1.cacheAsBitmap == undefined)
  11223. {
  11224. loc1.cacheAsBitmap = false;
  11225. }
  11226. if (loc1.rotation == undefined)
  11227. {
  11228. loc1.rotation = 0;
  11229. }
  11230. if (loc1.scaleX == undefined)
  11231. {
  11232. loc1.scaleX = 1;
  11233. }
  11234. if (loc1.scaleY == undefined)
  11235. {
  11236. loc1.scaleY = 1;
  11237. }
  11238. if (loc1.visible == undefined)
  11239. {
  11240. loc1.visible = true;
  11241. }
  11242. if (loc1.buttonMode == undefined)
  11243. {
  11244. loc1.buttonMode = false;
  11245. }
  11246. if (loc1.mouseEnabled == undefined)
  11247. {
  11248. loc1.mouseEnabled = true;
  11249. }
  11250. if (loc1.color == undefined)
  11251. {
  11252. loc1.color = 0;
  11253. }
  11254. if (loc1.width == undefined)
  11255. {
  11256. loc1.width = 100;
  11257. }
  11258. if (loc1.height == undefined)
  11259. {
  11260. loc1.height = 25;
  11261. }
  11262. if (loc1.x2 == undefined)
  11263. {
  11264. loc1.x2 = 0;
  11265. }
  11266. if (loc1.y2 == undefined)
  11267. {
  11268. loc1.y2 = 0;
  11269. }
  11270. if (loc1.alpha2 == undefined)
  11271. {
  11272. loc1.alpha2 = 1;
  11273. }
  11274. if (loc1.type == undefined)
  11275. {
  11276. loc1.type = "drawRect";
  11277. }
  11278. if (loc1.ellipseWidth == undefined)
  11279. {
  11280. loc1.ellipseWidth = 5;
  11281. }
  11282. if (loc1.ellipseHeight == undefined)
  11283. {
  11284. loc1.ellipseHeight = loc1.ellipseWidth;
  11285. }
  11286. if (loc1.radius == undefined)
  11287. {
  11288. loc1.radius = 0;
  11289. }
  11290. if (loc1.justLine == undefined)
  11291. {
  11292. loc1.justLine = false;
  11293. }
  11294. if (loc1.line == undefined)
  11295. {
  11296. loc1.line = false;
  11297. }
  11298. if (loc1.justLine)
  11299. {
  11300. loc1.line = true;
  11301. }
  11302. if (loc1.lineColor == undefined)
  11303. {
  11304. loc1.lineColor = 0;
  11305. }
  11306. if (loc1.lineThickness == undefined)
  11307. {
  11308. loc1.lineThickness = 1;
  11309. }
  11310. if (loc1.lineAlpha == undefined)
  11311. {
  11312. loc1.lineAlpha = 1;
  11313. }
  11314. if (loc1.listeners)
  11315. {
  11316. loc2 = new metabast.display.MetaSprite(loc1.listeners);
  11317. }
  11318. if (!loc1.listeners)
  11319. {
  11320. loc2 = new flash.display.Sprite();
  11321. }
  11322. if (!loc1.justLine)
  11323. {
  11324. loc2.graphics.beginFill(loc1.color, loc1.alpha2);
  11325. }
  11326. if (loc1.line)
  11327. {
  11328. loc2.graphics.lineStyle(loc1.lineThickness, loc1.lineColor, loc1.lineAlpha, false, "none");
  11329. }
  11330. if (loc1.type == metabast.display.CreateGraphic.DRAW_RECT)
  11331. {
  11332. loc2.graphics.drawRect(loc1.x2, loc1.y2, loc1.width, loc1.height);
  11333. }
  11334. if (loc1.type == metabast.display.CreateGraphic.DRAW_ROUND_RECT)
  11335. {
  11336. loc2.graphics.drawRoundRect(loc1.x2, loc1.y2, loc1.width, loc1.height, loc1.ellipseWidth, loc1.ellipseHeight);
  11337. }
  11338. if (loc1.type == metabast.display.CreateGraphic.DRAW_CIRCLE)
  11339. {
  11340. loc2.graphics.drawCircle(loc1.x2, loc1.y2, loc1.radius);
  11341. }
  11342. if (loc1.type == metabast.display.CreateGraphic.DRAW_ELLIPSE)
  11343. {
  11344. loc2.graphics.drawEllipse(loc1.x2, loc1.y2, loc1.width, loc1.width);
  11345. }
  11346. loc2.graphics.endFill();
  11347. if (loc1.name)
  11348. {
  11349. loc2.name = loc1.name;
  11350. }
  11351. else
  11352. {
  11353. loc2.name = loc2.name + "_CreateGraphic";
  11354. }
  11355. loc2.x = loc1.x;
  11356. loc2.y = loc1.y;
  11357. loc2.alpha = loc1.alpha;
  11358. loc2.blendMode = loc1.blendMode;
  11359. loc2.cacheAsBitmap = loc1.cacheAsBitmap;
  11360. loc2.rotation = loc1.rotation;
  11361. loc2.scaleX = loc1.scaleX;
  11362. loc2.scaleY = loc1.scaleY;
  11363. loc2.visible = loc1.visible;
  11364. loc2.mouseEnabled = loc1.mouseEnabled;
  11365. loc2.buttonMode = loc1.buttonMode;
  11366. if (arg1)
  11367. {
  11368. arg1.addChild(loc2);
  11369. }
  11370. if (loc1.masked)
  11371. {
  11372. loc1.masked.mask = loc2;
  11373. }
  11374. return loc2;
  11375. }
  11376.  
  11377. public static const DRAW_ROUND_RECT:String="drawRoundRect";
  11378.  
  11379. public static const DRAW_ELLIPSE:String="drawEllipse";
  11380.  
  11381. public static const DRAW_CIRCLE:String="drawCircle";
  11382.  
  11383. public static const DRAW_RECT:String="drawRect";
  11384. }
  11385. }
  11386.  
  11387.  
  11388. // class CreateText
  11389. package metabast.display
  11390. {
  11391. import flash.display.*;
  11392. import flash.text.*;
  11393.  
  11394. public class CreateText extends Object
  11395. {
  11396. public function CreateText()
  11397. {
  11398. super();
  11399. return;
  11400. }
  11401.  
  11402. public static function to(arg1:flash.display.DisplayObjectContainer, arg2:Object=null):flash.text.TextField
  11403. {
  11404. var loc1:*=null;
  11405. if (!arg2)
  11406. {
  11407. arg2 = {};
  11408. }
  11409. loc1 = arg2;
  11410. if (!loc1.align)
  11411. {
  11412. loc1.align = "left";
  11413. }
  11414. if (!loc1.blockIndent)
  11415. {
  11416. loc1.blockIndent = 0;
  11417. }
  11418. if (loc1.bold == undefined)
  11419. {
  11420. loc1.bold = false;
  11421. }
  11422. if (!loc1.color)
  11423. {
  11424. loc1.color = 0;
  11425. }
  11426. if (!loc1.font)
  11427. {
  11428. loc1.font = defaultFont;
  11429. }
  11430. if (loc1.indent == undefined)
  11431. {
  11432. loc1.indent = null;
  11433. }
  11434. if (loc1.kerning == undefined)
  11435. {
  11436. loc1.kerning = null;
  11437. }
  11438. if (loc1.leading == undefined)
  11439. {
  11440. loc1.leading = null;
  11441. }
  11442. if (loc1.letterSpacing == undefined)
  11443. {
  11444. loc1.letterSpacing = null;
  11445. }
  11446. if (!loc1.size)
  11447. {
  11448. loc1.size = 11;
  11449. }
  11450. if (!loc1.leftMargin)
  11451. {
  11452. loc1.leftMargin = 0;
  11453. }
  11454. if (!loc1.rightMargin)
  11455. {
  11456. loc1.rightMargin = 0;
  11457. }
  11458. if (loc1.underline == undefined)
  11459. {
  11460. loc1.underline = false;
  11461. }
  11462. if (!loc1.antiAliasType)
  11463. {
  11464. loc1.antiAliasType = "advanced";
  11465. }
  11466. if (!loc1.autoSize)
  11467. {
  11468. loc1.autoSize = flash.text.TextFieldAutoSize.LEFT;
  11469. }
  11470. if (loc1.background == undefined)
  11471. {
  11472. loc1.background = false;
  11473. }
  11474. if (!loc1.backgroundColor)
  11475. {
  11476. loc1.backgroundColor = 13421772;
  11477. }
  11478. if (loc1.border == undefined)
  11479. {
  11480. loc1.border = false;
  11481. }
  11482. if (!loc1.borderColor)
  11483. {
  11484. loc1.borderColor = 0;
  11485. }
  11486. if (!loc1.maxChars)
  11487. {
  11488. loc1.maxChars = 0;
  11489. }
  11490. if (loc1.multiline == undefined)
  11491. {
  11492. loc1.multiline = false;
  11493. }
  11494. if (loc1.restrict == undefined)
  11495. {
  11496. loc1.restrict = null;
  11497. }
  11498. if (loc1.selectable == undefined)
  11499. {
  11500. loc1.selectable = false;
  11501. }
  11502. if (!loc1.sharpness)
  11503. {
  11504. loc1.sharpness = 0;
  11505. }
  11506. if (!loc1.styleSheet && !(loc1.type == "input"))
  11507. {
  11508. loc1.styleSheet = CSS;
  11509. }
  11510. if (!loc1.thickness)
  11511. {
  11512. loc1.thickness = 0;
  11513. }
  11514. if (!loc1.type)
  11515. {
  11516. loc1.type = "dynamic";
  11517. }
  11518. if (loc1.wordWrap == undefined)
  11519. {
  11520. loc1.wordWrap = false;
  11521. }
  11522. var loc2:*;
  11523. (loc2 = new flash.text.TextFormat()).align = loc1.align;
  11524. loc2.blockIndent = loc1.blockIndent;
  11525. loc2.bold = loc1.bold;
  11526. loc2.color = loc1.color;
  11527. loc2.font = loc1.font;
  11528. loc2.indent = loc1.indent;
  11529. loc2.kerning = loc1.kerning;
  11530. loc2.leading = loc1.leading;
  11531. loc2.letterSpacing = loc1.letterSpacing;
  11532. loc2.size = loc1.size;
  11533. loc2.underline = loc1.underline;
  11534. loc2.leftMargin = loc1.leftMargin;
  11535. loc2.rightMargin = loc1.rightMargin;
  11536. loc2.blockIndent = loc1.blockIndent;
  11537. var loc3:*=new flash.text.TextField();
  11538. if (arg1)
  11539. {
  11540. arg1.addChild(loc3);
  11541. }
  11542. loc3.defaultTextFormat = loc2;
  11543. loc3.antiAliasType = loc1.antiAliasType;
  11544. loc3.autoSize = loc1.autoSize;
  11545. loc3.background = loc1.background;
  11546. loc3.backgroundColor = loc1.backgroundColor;
  11547. loc3.border = loc1.border;
  11548. loc3.borderColor = loc1.borderColor;
  11549. loc3.embedFonts = loc1.embedFonts;
  11550. loc3.maxChars = loc1.maxChars;
  11551. loc3.multiline = loc1.multiline;
  11552. loc3.restrict = loc1.restrict;
  11553. loc3.selectable = loc1.selectable;
  11554. loc3.sharpness = loc1.sharpness;
  11555. loc3.styleSheet = loc1.styleSheet;
  11556. if (loc1.tabIndex)
  11557. {
  11558. loc3.tabIndex = loc1.tabIndex;
  11559. }
  11560. loc3.thickness = loc1.thickness;
  11561. loc3.type = loc1.type;
  11562. loc3.wordWrap = loc1.wordWrap;
  11563. if (!loc1.htmlText)
  11564. {
  11565. loc1.htmlText = "";
  11566. }
  11567. if (!loc1.text)
  11568. {
  11569. loc1.text = "";
  11570. }
  11571. if (!loc1.x)
  11572. {
  11573. loc1.x = 0;
  11574. }
  11575. if (!loc1.y)
  11576. {
  11577. loc1.y = 0;
  11578. }
  11579. if (!loc1.alpha)
  11580. {
  11581. loc1.alpha = 1;
  11582. }
  11583. if (loc1.mouseEnabled == undefined)
  11584. {
  11585. loc1.mouseEnabled = false;
  11586. }
  11587. if (!loc1.name)
  11588. {
  11589. loc1.name = "Texte";
  11590. }
  11591. if (!loc1.rotation)
  11592. {
  11593. loc1.rotation = 0;
  11594. }
  11595. if (loc1.visible == undefined)
  11596. {
  11597. loc1.visible = true;
  11598. }
  11599. loc3.x = loc1.x;
  11600. loc3.y = loc1.y;
  11601. loc3.width = loc1.width;
  11602. loc3.height = loc1.height;
  11603. loc3.alpha = loc1.alpha;
  11604. loc3.mouseEnabled = loc1.mouseEnabled;
  11605. loc3.name = loc1.name;
  11606. loc3.rotation = loc1.rotation;
  11607. loc3.visible = loc1.visible;
  11608. if (loc1.htmlText)
  11609. {
  11610. loc3.htmlText = loc1.htmlText;
  11611. }
  11612. if (loc1.text)
  11613. {
  11614. loc3.text = loc1.text;
  11615. }
  11616. return loc3;
  11617. }
  11618.  
  11619.  
  11620. {
  11621. defaultFont = "Courier";
  11622. }
  11623.  
  11624. public static var defaultFont:String="Courier";
  11625.  
  11626. public static var CSS:flash.text.StyleSheet;
  11627. }
  11628. }
  11629.  
  11630.  
  11631. // class MetaSprite
  11632. package metabast.display
  11633. {
  11634. import flash.display.*;
  11635.  
  11636. public class MetaSprite extends flash.display.Sprite
  11637. {
  11638. public function MetaSprite(arg1:Object=null)
  11639. {
  11640. super();
  11641. if (arg1)
  11642. {
  11643. listeners = arg1;
  11644. _source_ = listeners.source;
  11645. }
  11646. return;
  11647. }
  11648.  
  11649. public override function set x(arg1:Number):void
  11650. {
  11651. super.x = arg1;
  11652. if (listeners)
  11653. {
  11654. if (listeners.onMoveX && _source_)
  11655. {
  11656. var loc1:*;
  11657. (loc1 = _source_)[listeners.onMoveX](super.x);
  11658. }
  11659. }
  11660. return;
  11661. }
  11662.  
  11663. public override function set y(arg1:Number):void
  11664. {
  11665. super.y = arg1;
  11666. if (listeners)
  11667. {
  11668. if (listeners.onMoveY && _source_)
  11669. {
  11670. var loc1:*;
  11671. (loc1 = _source_)[listeners.onMoveY](super.y);
  11672. }
  11673. }
  11674. return;
  11675. }
  11676.  
  11677. public function initListeners(arg1:Object):void
  11678. {
  11679. listeners = arg1;
  11680. _source_ = listeners.source;
  11681. return;
  11682. }
  11683.  
  11684. internal var _source_:*;
  11685.  
  11686. internal var listeners:Object;
  11687. }
  11688. }
  11689.  
  11690.  
  11691. // package utils
  11692. // class TimeConvert
  11693. package metabast.utils
  11694. {
  11695. public class TimeConvert extends Object
  11696. {
  11697. public function TimeConvert()
  11698. {
  11699. super();
  11700. return;
  11701. }
  11702.  
  11703. public static function convertMs(arg1:uint, arg2:Object=null):String
  11704. {
  11705. var loc1:*=":";
  11706. var loc2:*=MM_SS;
  11707. if (arg2)
  11708. {
  11709. if (arg2.mode)
  11710. {
  11711. loc2 = arg2.mode;
  11712. }
  11713. if (arg2.separator)
  11714. {
  11715. loc1 = arg2.sep;
  11716. }
  11717. }
  11718. var loc3:*=Math.floor(arg1 / 60);
  11719. var loc4:*=Math.floor(arg1 - loc3 * 60);
  11720. var loc5:*=String(loc3);
  11721. var loc6:*=String(loc4);
  11722. if (loc3 < 10)
  11723. {
  11724. loc5 = "0" + loc5;
  11725. }
  11726. if (loc4 < 10)
  11727. {
  11728. loc6 = "0" + loc6;
  11729. }
  11730. return loc5 + loc1 + loc6;
  11731. }
  11732.  
  11733. public static const HH_MM_SS:String="hh mm ss";
  11734.  
  11735. public static const MM_SS:String="mm ss";
  11736. }
  11737. }
  11738.  
  11739.  
  11740. // package video
  11741. // package movieplayer
  11742. // class DefaultToolBar
  11743. package metabast.video.movieplayer
  11744. {
  11745. import flash.display.*;
  11746. import flash.events.*;
  11747. import flash.text.*;
  11748. import metabast.display.*;
  11749.  
  11750. public class DefaultToolBar extends metabast.video.movieplayer.MoviePlayerToolBar implements metabast.video.movieplayer.IMoviePlayerToolBar
  11751. {
  11752. public function DefaultToolBar(arg1:metabast.video.movieplayer.MoviePlayer)
  11753. {
  11754. super(arg1);
  11755. ProgressBar = new flash.display.Sprite();
  11756. metabast.display.CreateGraphic.to(ProgressBar as flash.display.Sprite, {"width":304, "height":6, "x":-2, "color":0});
  11757. metabast.display.CreateGraphic.to(ProgressBar as flash.display.Sprite, {"width":300, "height":2, "y":2, "color":16777215});
  11758. TimeIndicator = metabast.display.CreateGraphic.to(ProgressBar as flash.display.Sprite, {"width":300, "height":2, "y":2, "color":3394815});
  11759. LoadingBar = metabast.display.CreateText.to(ProgressBar as flash.display.Sprite, {"font":"_sans", "size":8, "embedFonts":false, "text":"Buffer", "y":6, "x":150});
  11760. BufferBar = metabast.display.CreateText.to(ProgressBar as flash.display.Sprite, {"font":"_sans", "size":8, "embedFonts":false, "text":"BytesTotal", "y":6});
  11761. metabast.display.CreateGraphic.to(ProgressBar as flash.display.Sprite, {"width":300, "height":6, "y":0, "alpha":0, "name":"SeekBar", "buttonMode":true});
  11762. addChild(ProgressBar);
  11763. ProgressBar.x = 220;
  11764. BtPlay = createBt("Play");
  11765. addChild(BtPlay);
  11766. BtPause = createBt("Pause");
  11767. BtPause.x = BtPlay.x + BtPlay.width + 5;
  11768. addChild(BtPause);
  11769. BtRestart = createBt("Restart");
  11770. BtRestart.x = BtPause.x + BtPause.width + 5;
  11771. addChild(BtRestart);
  11772. BtStop = createBt("Stop");
  11773. BtStop.x = BtRestart.x + BtRestart.width + 5;
  11774. addChild(BtStop);
  11775. addEventListener(flash.events.MouseEvent.MOUSE_UP, handler_mouse);
  11776. return;
  11777. }
  11778.  
  11779. protected function handler_mouse(arg1:flash.events.MouseEvent):void
  11780. {
  11781. arg1.relatedObject = moviePlayer;
  11782. return;
  11783. }
  11784.  
  11785. public override function progressTimeIndicator(arg1:int, arg2:Object):void
  11786. {
  11787. TimeIndicator.scaleX = arg1 * 0.01;
  11788. return;
  11789. }
  11790.  
  11791. public override function progressBufferBar(arg1:int):void
  11792. {
  11793. if (arg1 > 100)
  11794. {
  11795. arg1 = 100;
  11796. }
  11797. (BufferBar as flash.text.TextField).text = "Buffer : " + arg1 + "%";
  11798. return;
  11799. }
  11800.  
  11801. public override function progressLoadingBar(arg1:int):void
  11802. {
  11803. (LoadingBar as flash.text.TextField).text = "BytesTotal : " + arg1 + "%";
  11804. return;
  11805. }
  11806.  
  11807. internal function createBt(arg1:String):flash.display.Sprite
  11808. {
  11809. var loc1:*=new flash.display.Sprite();
  11810. loc1.name = arg1;
  11811. loc1.buttonMode = true;
  11812. loc1.mouseChildren = false;
  11813. var loc2:*=metabast.display.CreateGraphic.to(loc1, {"width":2, "height":15});
  11814. var loc3:*=metabast.display.CreateGraphic.to(loc1, {"width":2, "height":13, "x":1, "y":1, "color":16777215});
  11815. var loc4:*=metabast.display.CreateText.to(loc1, {"font":"_sans", "size":8, "embedFonts":false, "text":arg1, "x":2});
  11816. loc2.width = loc4.width + 5;
  11817. loc3.width = loc2.width - 2;
  11818. return loc1;
  11819. }
  11820. }
  11821. }
  11822.  
  11823.  
  11824. // class IMoviePlayerToolBar
  11825. package metabast.video.movieplayer
  11826. {
  11827. public interface IMoviePlayerToolBar
  11828. {
  11829. function adjustSound():void;
  11830.  
  11831. function progressLoadingBar(arg1:int):void;
  11832.  
  11833. function progressTimeIndicator(arg1:int, arg2:Object):void;
  11834.  
  11835. function progressBufferBar(arg1:int):void;
  11836.  
  11837. function setPosition(arg1:int, arg2:int):void;
  11838. }
  11839. }
  11840.  
  11841.  
  11842. // class MoviePlayer
  11843. package metabast.video.movieplayer
  11844. {
  11845. import flash.display.*;
  11846. import flash.events.*;
  11847. import flash.media.*;
  11848. import flash.net.*;
  11849. import flash.utils.*;
  11850. import metabast.display.*;
  11851. import metabast.utils.*;
  11852.  
  11853. public class MoviePlayer extends flash.display.Sprite
  11854. {
  11855. public function MoviePlayer(arg1:Object=null)
  11856. {
  11857. var loc1:*=undefined;
  11858. closeParams = {"close":true, "clear":true};
  11859. super();
  11860. params = arg1;
  11861. if (arg1)
  11862. {
  11863. if (arg1.closeParams)
  11864. {
  11865. var loc2:*=0;
  11866. var loc3:*=params.closeParams;
  11867. for (loc1 in loc3)
  11868. {
  11869. closeParams[loc1] = params.closeParams[loc1];
  11870. }
  11871. }
  11872. if (arg1.scaleMode)
  11873. {
  11874. scaleMode = arg1.scaleMode;
  11875. }
  11876. }
  11877. if (params && params.toolbar)
  11878. {
  11879. if (params.toolbar != TOOLBAR_DEFAULT)
  11880. {
  11881. if (params.toolbar)
  11882. {
  11883. ToolBar = new params.toolbar(this);
  11884. ToolBar.setPosition(0, params.height + 5);
  11885. addChild(ToolBar as flash.display.Sprite);
  11886. }
  11887. }
  11888. else
  11889. {
  11890. createToolbar();
  11891. }
  11892. }
  11893. bg = metabast.display.CreateGraphic.to(this, {"width":1, "height":1, "color":0, "name":"MoviePlayer_bg"});
  11894. nc = new flash.net.NetConnection();
  11895. nc.addEventListener(flash.events.NetStatusEvent.NET_STATUS, handler_netStatus);
  11896. nc.addEventListener(flash.events.SecurityErrorEvent.SECURITY_ERROR, handler_securityError);
  11897. nc.addEventListener(flash.events.AsyncErrorEvent.ASYNC_ERROR, handler_asyncError);
  11898. nc.addEventListener(flash.events.IOErrorEvent.IO_ERROR, handler_ioError);
  11899. nc.client = this;
  11900. return;
  11901. }
  11902.  
  11903. protected function handler_asyncError(arg1:flash.events.AsyncErrorEvent):void
  11904. {
  11905. return;
  11906. }
  11907.  
  11908. public function get _extra():Object
  11909. {
  11910. return extra;
  11911. }
  11912.  
  11913. internal function setParams(arg1:Object):void
  11914. {
  11915. var loc1:*=undefined;
  11916. var loc2:*=0;
  11917. var loc3:*=arg1;
  11918. label288: for (loc1 in loc3)
  11919. {
  11920. var loc4:*=String(loc1);
  11921. switch (loc4)
  11922. {
  11923. case "x":
  11924. {
  11925. x = arg1[loc1];
  11926. continue label288;
  11927. }
  11928. case "y":
  11929. {
  11930. y = arg1[loc1];
  11931. continue label288;
  11932. }
  11933. case "width":
  11934. {
  11935. video.width = arg1[loc1];
  11936. sceneWidth = arg1[loc1];
  11937. continue label288;
  11938. }
  11939. case "height":
  11940. {
  11941. video.height = arg1[loc1];
  11942. sceneHeight = arg1[loc1];
  11943. continue label288;
  11944. }
  11945. case "smoothing":
  11946. {
  11947. video.smoothing = arg1[loc1];
  11948. continue label288;
  11949. }
  11950. case "bufferTime":
  11951. {
  11952. ns.bufferTime = arg1[loc1];
  11953. continue label288;
  11954. }
  11955. }
  11956. }
  11957. return;
  11958. }
  11959.  
  11960. public function get _extraBox():flash.display.Sprite
  11961. {
  11962. return extraBox;
  11963. }
  11964.  
  11965. public function soundControl(arg1:Number=1):void
  11966. {
  11967. var loc1:*=ns.soundTransform;
  11968. loc1.volume = arg1;
  11969. if (arg1 > 1)
  11970. {
  11971. arg1 = 1;
  11972. }
  11973. ns.soundTransform = loc1;
  11974. return;
  11975. }
  11976.  
  11977. internal function createToolbar():void
  11978. {
  11979. ToolBar = new metabast.video.movieplayer.DefaultToolBar(this);
  11980. ToolBar.setPosition(0, video.y + video.height + 5);
  11981. return;
  11982. }
  11983.  
  11984. public function getVideo():flash.display.DisplayObject
  11985. {
  11986. return video;
  11987. }
  11988.  
  11989. internal function onMetaDataHandler(arg1:Object):void
  11990. {
  11991. var loc1:*=undefined;
  11992. if (!metaData)
  11993. {
  11994. metaData = arg1;
  11995. var loc2:*=0;
  11996. var loc3:*=arg1;
  11997. label139: for (loc1 in loc3)
  11998. {
  11999. var loc4:*=loc1;
  12000. switch (loc4)
  12001. {
  12002. case "duration":
  12003. {
  12004. duration = arg1[loc1];
  12005. continue label139;
  12006. }
  12007. case "framerate":
  12008. {
  12009. framerate = arg1[loc1];
  12010. continue label139;
  12011. }
  12012. }
  12013. }
  12014. if (duration && framerate)
  12015. {
  12016. totalframes = framerate * duration;
  12017. }
  12018. adjustVideo(sceneWidth, sceneHeight);
  12019. dispatchEvent(new metabast.video.movieplayer.MoviePlayerEvent(metabast.video.movieplayer.MoviePlayerEvent.METADATA_COMPLETE, false, false, metaData));
  12020. }
  12021. return;
  12022. }
  12023.  
  12024. public function get _bg():flash.display.Sprite
  12025. {
  12026. return bg;
  12027. }
  12028.  
  12029. internal function timerHandler(arg1:flash.events.TimerEvent):void
  12030. {
  12031. var loc1:*=Math.round(ns.bytesLoaded / ns.bytesTotal * 100);
  12032. var loc2:*=Math.round(ns.time / duration * 100);
  12033. var loc3:*={"progress":metabast.utils.TimeConvert.convertMs(ns.time), "duration":metabast.utils.TimeConvert.convertMs(duration)};
  12034. var loc4:*=ns.bufferLength / ns.bufferTime * 100;
  12035. if (ToolBar)
  12036. {
  12037. ToolBar.progressLoadingBar(loc1);
  12038. ToolBar.progressTimeIndicator(loc2, loc3);
  12039. ToolBar.progressBufferBar(loc4);
  12040. }
  12041. return;
  12042. }
  12043.  
  12044. public function onBWDone():void
  12045. {
  12046. return;
  12047. }
  12048.  
  12049. protected function connectStream():void
  12050. {
  12051. client = new Object();
  12052. client.onMetaData = onMetaDataHandler;
  12053. ns = new flash.net.NetStream(nc);
  12054. ns.client = client;
  12055. video = new flash.media.Video();
  12056. video.attachNetStream(ns);
  12057. addChild(video);
  12058. videoSkin = new flash.display.Sprite();
  12059. videoSkin.name = "MoviePlayer_videoSkin";
  12060. addChild(videoSkin);
  12061. timer = new flash.utils.Timer(70);
  12062. extraBox = new flash.display.Sprite();
  12063. addChild(extraBox);
  12064. setParams(params);
  12065. return;
  12066. }
  12067.  
  12068. protected function handler_securityError(arg1:flash.events.SecurityErrorEvent):void
  12069. {
  12070. return;
  12071. }
  12072.  
  12073. public function addVideoSkin(arg1:flash.display.DisplayObject):void
  12074. {
  12075. if (arg1)
  12076. {
  12077. videoSkin.addChild(arg1);
  12078. }
  12079. return;
  12080. }
  12081.  
  12082. public function get _ns():flash.net.NetStream
  12083. {
  12084. return ns;
  12085. }
  12086.  
  12087. public function close():void
  12088. {
  12089. status = STOP;
  12090. if (closeParams.close)
  12091. {
  12092. ns.close();
  12093. }
  12094. if (closeParams.clear)
  12095. {
  12096. video.clear();
  12097. }
  12098. timer.removeEventListener(flash.events.TimerEvent.TIMER, timerHandler);
  12099. ns.removeEventListener(flash.events.NetStatusEvent.NET_STATUS, handler_netStatus);
  12100. isOpen = false;
  12101. dispatchEvent(new metabast.video.movieplayer.MoviePlayerEvent(metabast.video.movieplayer.MoviePlayerEvent.CLOSE));
  12102. return;
  12103. }
  12104.  
  12105. public function getToolBar():metabast.video.movieplayer.MoviePlayerToolBar
  12106. {
  12107. if (ToolBar)
  12108. {
  12109. return ToolBar;
  12110. }
  12111. return null;
  12112. }
  12113.  
  12114. public function get _metaData():Object
  12115. {
  12116. return metaData;
  12117. }
  12118.  
  12119. public function set _status(arg1:String):void
  12120. {
  12121. this.status = arg1;
  12122. return;
  12123. }
  12124.  
  12125. public function connect():void
  12126. {
  12127. if (params.netConnection)
  12128. {
  12129. nc.connect(params.netConnection);
  12130. }
  12131. else
  12132. {
  12133. nc.connect(null);
  12134. dispatchEvent(new metabast.video.movieplayer.MoviePlayerEvent(metabast.video.movieplayer.MoviePlayerEvent.NC_CONNECTED));
  12135. }
  12136. return;
  12137. }
  12138.  
  12139. public function play(arg1:String=null, arg2:Object=null):void
  12140. {
  12141. if (arg1)
  12142. {
  12143. flux = arg1;
  12144. }
  12145. if (!isOpen)
  12146. {
  12147. timer.addEventListener(flash.events.TimerEvent.TIMER, timerHandler);
  12148. ns.addEventListener(flash.events.NetStatusEvent.NET_STATUS, handler_netStatus);
  12149. timer.reset();
  12150. timer.start();
  12151. isOpen = true;
  12152. metaData = null;
  12153. action(PLAY, arg2);
  12154. }
  12155. return;
  12156. }
  12157.  
  12158. public function get _duration():Number
  12159. {
  12160. return duration;
  12161. }
  12162.  
  12163. public function get _sceneWidth():uint
  12164. {
  12165. return sceneWidth;
  12166. }
  12167.  
  12168. protected function handler_netStatus(arg1:flash.events.NetStatusEvent):void
  12169. {
  12170. var loc1:*=arg1.info.code;
  12171. switch (loc1)
  12172. {
  12173. case "NetStream.Buffer.Empty":
  12174. {
  12175. if (videoFinished)
  12176. {
  12177. videoFinished = false;
  12178. action(STOP);
  12179. }
  12180. break;
  12181. }
  12182. case "NetStream.Buffer.Full":
  12183. {
  12184. break;
  12185. }
  12186. case "NetStream.Buffer.Flush":
  12187. {
  12188. break;
  12189. }
  12190. case "NetStream.Failed":
  12191. {
  12192. break;
  12193. }
  12194. case "NetStream.Play.Stop":
  12195. {
  12196. if (!(nc.uri == "null") && String(Math.floor(ns.time) < Math.floor(duration)))
  12197. {
  12198. videoFinished = true;
  12199. }
  12200. else
  12201. {
  12202. action(STOP);
  12203. }
  12204. break;
  12205. }
  12206. case "NetStream.Play.Start":
  12207. {
  12208. video.clear();
  12209. soundControl(0.5);
  12210. if (ToolBar)
  12211. {
  12212. ToolBar.adjustSound();
  12213. }
  12214. videoFinished = false;
  12215. break;
  12216. }
  12217. case "NetConnection.Connect.Success":
  12218. {
  12219. connectStream();
  12220. break;
  12221. }
  12222. case "NetStream.Play.StreamNotFound":
  12223. {
  12224. break;
  12225. }
  12226. }
  12227. dispatchEvent(arg1);
  12228. return;
  12229. }
  12230.  
  12231. public function action(arg1:String, arg2:Object=null):void
  12232. {
  12233. var loc2:*=0;
  12234. var loc1:*=0;
  12235. var loc3:*=arg1;
  12236. switch (loc3)
  12237. {
  12238. case PLAY:
  12239. {
  12240. if (arg2 && arg2.start)
  12241. {
  12242. loc1 = arg2.start;
  12243. }
  12244. ns.play(flux, loc1);
  12245. status = PLAY;
  12246. break;
  12247. }
  12248. case RESUME:
  12249. {
  12250. ns.resume();
  12251. status = PLAY;
  12252. break;
  12253. }
  12254. case PAUSE:
  12255. {
  12256. ns.pause();
  12257. status = PAUSE;
  12258. break;
  12259. }
  12260. case RESTART:
  12261. {
  12262. ns.seek(0);
  12263. status = PLAY;
  12264. break;
  12265. }
  12266. case STOP:
  12267. {
  12268. status = STOP;
  12269. close();
  12270. break;
  12271. }
  12272. case SEEK:
  12273. {
  12274. loc2 = duration * arg2.percent;
  12275. ns.seek(loc2);
  12276. break;
  12277. }
  12278. }
  12279. if (willTrigger(metabast.video.movieplayer.MoviePlayerEvent.ACTION_CHANGE))
  12280. {
  12281. dispatchEvent(new metabast.video.movieplayer.MoviePlayerEvent(metabast.video.movieplayer.MoviePlayerEvent.ACTION_CHANGE, false, false, {"status":status}));
  12282. }
  12283. return;
  12284. }
  12285.  
  12286. public function get _status():String
  12287. {
  12288. return status;
  12289. }
  12290.  
  12291. public function get _sceneHeight():uint
  12292. {
  12293. return sceneHeight;
  12294. }
  12295.  
  12296. public function get _video():flash.media.Video
  12297. {
  12298. return video;
  12299. }
  12300.  
  12301. public function resize(arg1:flash.events.FullScreenEvent):void
  12302. {
  12303. return;
  12304. }
  12305.  
  12306. public function adjustVideo(arg1:uint, arg2:uint):void
  12307. {
  12308. var loc2:*=NaN;
  12309. var loc1:*=arg1 / arg2;
  12310. loc2 = metaData["width"] / metaData["height"];
  12311. bg.width = arg1;
  12312. bg.height = arg2;
  12313. video.width = metaData["width"];
  12314. video.height = metaData["height"];
  12315. var loc3:*;
  12316. video.y = loc3 = 0;
  12317. video.x = loc3;
  12318. if (loc1 >= loc2)
  12319. {
  12320. video.height = arg2;
  12321. video.width = video.width * video.height / metaData["height"];
  12322. video.x = arg1 * 0.5 - video.width * 0.5;
  12323. if (scaleMode == flash.display.StageScaleMode.NO_BORDER)
  12324. {
  12325. video.width = arg1;
  12326. video.scaleY = video.scaleX;
  12327. video.y = -(video.height - arg2) * 0.5;
  12328. video.x = 0;
  12329. }
  12330. }
  12331. if (loc1 < loc2)
  12332. {
  12333. video.width = arg1;
  12334. video.height = video.height * video.width / video.videoWidth;
  12335. video.y = arg2 * 0.5 - video.height * 0.5;
  12336. if (scaleMode == flash.display.StageScaleMode.NO_BORDER)
  12337. {
  12338. video.height = arg2;
  12339. video.scaleX = video.scaleY;
  12340. video.x = -(video.width - arg1) * 0.5;
  12341. video.y = 0;
  12342. }
  12343. }
  12344. return;
  12345. }
  12346.  
  12347. public function set _video(arg1:flash.media.Video):void
  12348. {
  12349. this.video = arg1;
  12350. return;
  12351. }
  12352.  
  12353. protected function handler_ioError(arg1:flash.events.IOErrorEvent):void
  12354. {
  12355. return;
  12356. }
  12357.  
  12358. public function mouse(arg1:flash.events.MouseEvent):void
  12359. {
  12360. var loc1:*=NaN;
  12361. var loc2:*=0;
  12362. if (arg1.type == flash.events.MouseEvent.MOUSE_UP)
  12363. {
  12364. var loc3:*=arg1.target.name;
  12365. switch (loc3)
  12366. {
  12367. case "Play":
  12368. {
  12369. action(PLAY);
  12370. break;
  12371. }
  12372. case "Pause":
  12373. {
  12374. action(PAUSE);
  12375. break;
  12376. }
  12377. case "Restart":
  12378. {
  12379. action(RESTART);
  12380. break;
  12381. }
  12382. case "Stop":
  12383. {
  12384. close();
  12385. break;
  12386. }
  12387. case "SeekBar":
  12388. {
  12389. if (totalframes)
  12390. {
  12391. loc1 = arg1.target.mouseX / arg1.target.width;
  12392. loc2 = duration * loc1;
  12393. ns.seek(loc2);
  12394. }
  12395. break;
  12396. }
  12397. }
  12398. }
  12399. return;
  12400. }
  12401.  
  12402. public static const TOOLBAR_DEFAULT:String="toolbar_default";
  12403.  
  12404. public static const STOP:String="stop";
  12405.  
  12406. public static const RESUME:String="resume";
  12407.  
  12408. public static const RESTART:String="restart";
  12409.  
  12410. public static const PLAY:String="play";
  12411.  
  12412. public static const PAUSE:String="pause";
  12413.  
  12414. public static const SEEK:String="seek";
  12415.  
  12416. internal var params:Object;
  12417.  
  12418. internal var scaleMode:String=null;
  12419.  
  12420. internal var extra:Object;
  12421.  
  12422. internal var isOpen:Boolean=false;
  12423.  
  12424. internal var extraBox:flash.display.Sprite;
  12425.  
  12426. internal var videoFinished:Boolean;
  12427.  
  12428. internal var duration:Number;
  12429.  
  12430. internal var closeParams:Object;
  12431.  
  12432. internal var videoSkin:flash.display.Sprite;
  12433.  
  12434. internal var sceneWidth:uint;
  12435.  
  12436. protected var nc:flash.net.NetConnection;
  12437.  
  12438. internal var ToolBar:metabast.video.movieplayer.MoviePlayerToolBar;
  12439.  
  12440. internal var ns:flash.net.NetStream;
  12441.  
  12442. internal var metaData:Object;
  12443.  
  12444. internal var sceneHeight:uint;
  12445.  
  12446. internal var bg:flash.display.Sprite;
  12447.  
  12448. internal var timer:flash.utils.Timer;
  12449.  
  12450. internal var framerate:uint;
  12451.  
  12452. internal var flux:String;
  12453.  
  12454. internal var video:flash.media.Video;
  12455.  
  12456. internal var client:Object;
  12457.  
  12458. internal var totalframes:uint;
  12459.  
  12460. internal var status:String="stop";
  12461. }
  12462. }
  12463.  
  12464.  
  12465. // class MoviePlayerEvent
  12466. package metabast.video.movieplayer
  12467. {
  12468. import flash.events.*;
  12469.  
  12470. public class MoviePlayerEvent extends flash.events.Event
  12471. {
  12472. public function MoviePlayerEvent(arg1:String, arg2:Boolean=false, arg3:Boolean=false, arg4:Object=null)
  12473. {
  12474. super(arg1, arg2, arg3);
  12475. _data = arg4;
  12476. return;
  12477. }
  12478.  
  12479. public function get data():Object
  12480. {
  12481. return _data;
  12482. }
  12483.  
  12484. public override function toString():String
  12485. {
  12486. return "[MoviePlayerEvent type=\"" + type + "\" bubbles=" + bubbles + " cancelable=" + cancelable + "]";
  12487. }
  12488.  
  12489. public override function clone():flash.events.Event
  12490. {
  12491. return new metabast.video.movieplayer.MoviePlayerEvent(type, bubbles, cancelable);
  12492. }
  12493.  
  12494. public static const CLOSE:String="MoviePlayerEvent_close";
  12495.  
  12496. public static const ACTION_CHANGE:String="MoviePlayerEvent_action_change";
  12497.  
  12498. public static const METADATA_COMPLETE:String="METADATA_COMPLETE";
  12499.  
  12500. public static const NC_CONNECTED:String="MoviePlayerEvent_NC_connection_Success";
  12501.  
  12502. internal var _data:Object;
  12503. }
  12504. }
  12505.  
  12506.  
  12507. // class MoviePlayerToolBar
  12508. package metabast.video.movieplayer
  12509. {
  12510. import flash.display.*;
  12511.  
  12512. public class MoviePlayerToolBar extends flash.display.Sprite implements metabast.video.movieplayer.IMoviePlayerToolBar
  12513. {
  12514. public function MoviePlayerToolBar(arg1:metabast.video.movieplayer.MoviePlayer)
  12515. {
  12516. super();
  12517. moviePlayer = arg1;
  12518. return;
  12519. }
  12520.  
  12521. public function adjustSound():void
  12522. {
  12523. return;
  12524. }
  12525.  
  12526. public function progressTimeIndicator(arg1:int, arg2:Object):void
  12527. {
  12528. return;
  12529. }
  12530.  
  12531. public function progressBufferBar(arg1:int):void
  12532. {
  12533. return;
  12534. }
  12535.  
  12536. public function setPosition(arg1:int, arg2:int):void
  12537. {
  12538. x = arg1;
  12539. y = arg2;
  12540. return;
  12541. }
  12542.  
  12543. public function progressLoadingBar(arg1:int):void
  12544. {
  12545. return;
  12546. }
  12547.  
  12548. protected var BtPlay:flash.display.Sprite;
  12549.  
  12550. protected var ProgressBar:flash.display.DisplayObject;
  12551.  
  12552. protected var BufferBar:flash.display.DisplayObject;
  12553.  
  12554. protected var BtStop:flash.display.Sprite;
  12555.  
  12556. protected var LoadingBar:flash.display.DisplayObject;
  12557.  
  12558. protected var BtRestart:flash.display.Sprite;
  12559.  
  12560. protected var TimeIndicator:flash.display.DisplayObject;
  12561.  
  12562. protected var BtPause:flash.display.Sprite;
  12563.  
  12564. protected var moviePlayer:metabast.video.movieplayer.MoviePlayer;
  12565. }
  12566. }
  12567.  
  12568.  
  12569. // package security
  12570. // class Decrypt
  12571. package security
  12572. {
  12573. import com.hurlant.crypto.*;
  12574. import com.hurlant.crypto.symmetric.*;
  12575. import com.hurlant.util.*;
  12576. import flash.utils.*;
  12577.  
  12578. public class Decrypt extends Object
  12579. {
  12580. public function Decrypt()
  12581. {
  12582. super();
  12583. return;
  12584. }
  12585.  
  12586. public static function to(arg1:String):String
  12587. {
  12588. var data:flash.utils.ByteArray;
  12589. var cipher:com.hurlant.crypto.symmetric.ICipher;
  12590. var $data:String;
  12591. var ivmode:com.hurlant.crypto.symmetric.IVMode;
  12592. var pad:com.hurlant.crypto.symmetric.IPad;
  12593. var timestamp:String;
  12594. var key:flash.utils.ByteArray;
  12595.  
  12596. var loc1:*;
  12597. $data = arg1;
  12598. timestamp = Hex.fromString(RandomKey._randMD5);
  12599. key = Hex.toArray(timestamp);
  12600. pad = new PKCS5(8);
  12601. cipher = Crypto.getCipher("blowfish-cbc", key, pad);
  12602. pad.setBlockSize(cipher.getBlockSize());
  12603. ivmode = cipher as IVMode;
  12604. ivmode.IV = Hex.toArray(Hex.fromString("vodeo.tv"));
  12605. data = new ByteArray();
  12606. data = Hex.toArray($data);
  12607. try
  12608. {
  12609. cipher.decrypt(data);
  12610. }
  12611. catch (e:Error)
  12612. {
  12613. return "";
  12614. }
  12615. return String(data);
  12616. }
  12617. }
  12618. }
  12619.  
  12620.  
  12621. // class RandomKey
  12622. package security
  12623. {
  12624. import com.adobe.crypto.*;
  12625.  
  12626. public class RandomKey extends Object
  12627. {
  12628. public function RandomKey()
  12629. {
  12630. super();
  12631. return;
  12632. }
  12633.  
  12634. public static function generate(arg1:uint=10):String
  12635. {
  12636. randStr = "";
  12637. var loc1:*=0;
  12638. while (loc1 < arg1)
  12639. {
  12640. randStr = randStr + String(Math.round(Math.random() * 9));
  12641. ++loc1;
  12642. }
  12643. randMD5 = MD5.hash(randStr);
  12644. return randStr;
  12645. }
  12646.  
  12647. public static function get _randMD5():String
  12648. {
  12649. return randMD5;
  12650. }
  12651.  
  12652. public static function get _randStr():String
  12653. {
  12654. return randStr;
  12655. }
  12656.  
  12657. internal static var randMD5:String;
  12658.  
  12659. internal static var randStr:String;
  12660. }
  12661. }
  12662.  
  12663.  
  12664. // package standalone
  12665. // class SlideShow
  12666. package standalone
  12667. {
  12668. import VO.*;
  12669. import flash.display.*;
  12670. import flash.events.*;
  12671. import flash.utils.*;
  12672. import gs.*;
  12673. import gs.easing.*;
  12674. import metabast.display.*;
  12675.  
  12676. public class SlideShow extends flash.display.Sprite
  12677. {
  12678. public function SlideShow(arg1:Array)
  12679. {
  12680. var loc3:*=null;
  12681. var loc4:*=null;
  12682. super();
  12683. params = {"delay":4, "duration":0.5};
  12684. var loc1:*=MovieVO.getChildAt(0).slideShowParams;
  12685. if (loc1.delay && !(loc1.delay == ""))
  12686. {
  12687. params.delay = Number(loc1.delay);
  12688. }
  12689. if (loc1.duration && !(loc1.duration == ""))
  12690. {
  12691. params.duration = Number(loc1.duration);
  12692. }
  12693. img = new Array();
  12694. var loc2:*=0;
  12695. while (loc2 < arg1.length)
  12696. {
  12697. (loc3 = new Bitmap(DataVO.getBmpData(arg1[loc2]))).smoothing = true;
  12698. loc4 = new Sprite();
  12699. CreateGraphic.to(loc4, {"width":442, "height":228, "color":0});
  12700. if (loc3.width < 442)
  12701. {
  12702. loc3.x = uint((442 - loc3.width) * 0.5);
  12703. }
  12704. if (loc3.height < 228)
  12705. {
  12706. loc3.y = uint((228 - loc3.height) * 0.5);
  12707. }
  12708. loc4.addChild(loc3);
  12709. img.push(loc4);
  12710. loc4.alpha = 0;
  12711. if (loc2 == 0)
  12712. {
  12713. addChild(loc4);
  12714. }
  12715. ++loc2;
  12716. }
  12717. timer = new Timer(params.delay * 1000, 1);
  12718. tweenParams = {"alpha":1, "onComplete":handler_go, "ease":Linear.easeInOut};
  12719. start();
  12720. return;
  12721. }
  12722.  
  12723. public function start():void
  12724. {
  12725. status = true;
  12726. timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler_timer);
  12727. TweenLite.to(img[0], params.duration, tweenParams);
  12728. return;
  12729. }
  12730.  
  12731. internal function handler_timer(arg1:flash.events.TimerEvent):void
  12732. {
  12733. img.push(img.shift());
  12734. timer.reset();
  12735. img[0].alpha = 0;
  12736. addChild(img[0]);
  12737. TweenLite.to(img[0], params.duration, tweenParams);
  12738. return;
  12739. }
  12740.  
  12741. public function stop():void
  12742. {
  12743. timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler_timer);
  12744. status = false;
  12745. return;
  12746. }
  12747.  
  12748. internal function handler_go():void
  12749. {
  12750. if (status)
  12751. {
  12752. if (numChildren > 1)
  12753. {
  12754. removeChildAt(0);
  12755. }
  12756. timer.start();
  12757. }
  12758. return;
  12759. }
  12760.  
  12761. internal var img:Array;
  12762.  
  12763. internal var timer:flash.utils.Timer;
  12764.  
  12765. internal var params:Object;
  12766.  
  12767. internal var tweenParams:Object;
  12768.  
  12769. internal var status:Boolean;
  12770. }
  12771. }
  12772.  
  12773.  
  12774. // class AeonPlayerToolbar
  12775. package
  12776. {
  12777. import VO.*;
  12778. import definition.*;
  12779. import flash.display.*;
  12780. import flash.events.*;
  12781. import flash.geom.*;
  12782. import flash.text.*;
  12783. import metabast.video.movieplayer.*;
  12784.  
  12785. public class AeonPlayerToolbar extends metabast.video.movieplayer.MoviePlayerToolBar implements IMoviePlayerToolBar
  12786. {
  12787. public function AeonPlayerToolbar(arg1:metabast.video.movieplayer.MoviePlayer)
  12788. {
  12789. super(arg1);
  12790. init();
  12791. return;
  12792. }
  12793.  
  12794. public function destroy():void
  12795. {
  12796. destroyButtonDefinition();
  12797. return;
  12798. }
  12799.  
  12800. internal function init2d():void
  12801. {
  12802. if (ConfigVO.playerType != ConfigVO.PLAYER_XS)
  12803. {
  12804. toolbar = new Toolbar();
  12805. }
  12806. else
  12807. {
  12808. toolbar = new ToolbarXS();
  12809. }
  12810. if (MovieVO.getChildAt(0).formats.length > 0)
  12811. {
  12812. formats = MovieVO.getChildAt(0).formats;
  12813. }
  12814. toolbar.name = "toolbar";
  12815. addChild(toolbar);
  12816. toolbarBg = toolbar.getChildByName("toolbarBg") as Sprite;
  12817. actionBoxSP = toolbar.getChildByName("actionBox") as Sprite;
  12818. actionBoxSP.buttonMode = true;
  12819. actionHitBox = actionBoxSP.getChildByName("actionHitBox") as Sprite;
  12820. btPlay = actionBoxSP.getChildByName("btPlay") as Sprite;
  12821. btPause = actionBoxSP.getChildByName("btPause") as Sprite;
  12822. BtStop = actionBoxSP.getChildByName("btStop") as Sprite;
  12823. BtStop.visible = false;
  12824. progressBarBox = toolbar.getChildByName("progressBarBox") as Sprite;
  12825. progressBarBG = progressBarBox.getChildByName("progressBarBG") as Sprite;
  12826. progressBar = progressBarBox.getChildByName("progressBar") as Sprite;
  12827. progressBar.scaleX = 0;
  12828. tracker = progressBarBox.getChildByName("tracker") as Sprite;
  12829. tracker.x = 0;
  12830. progressBarHitBox = progressBarBox.getChildByName("hitBox") as Sprite;
  12831. progressBarHitBox.buttonMode = true;
  12832. soundBox = toolbar.getChildByName("soundBox") as Sprite;
  12833. soundBox.buttonMode = true;
  12834. btSound = soundBox.getChildByName("btSound") as Sprite;
  12835. soundHitBox = soundBox.getChildByName("soundHitBox") as Sprite;
  12836. volumeBox = soundBox.getChildByName("volumeBox") as Sprite;
  12837. volumeBox.visible = false;
  12838. volumeBar = volumeBox.getChildByName("volumeBar") as Sprite;
  12839. volumeBarProgress = volumeBox.getChildByName("volumeBarProgress") as Sprite;
  12840. volumeBarProgress.scaleY = 0.75;
  12841. volumeBarProgress.mouseEnabled = false;
  12842. volumeTracker = volumeBox.getChildByName("volumeTracker") as Sprite;
  12843. volumeTracker.y = volumeBarProgress.height;
  12844. volumeTracker.mouseEnabled = false;
  12845. fsBox = toolbar.getChildByName("FsBox") as Sprite;
  12846. fsBox.buttonMode = true;
  12847. fsHitBox = fsBox.getChildByName("fsHitBox") as Sprite;
  12848. btFs = fsBox.getChildByName("btFs") as Sprite;
  12849. btFs2 = fsBox.getChildByName("btFs2") as Sprite;
  12850. btFs2.visible = false;
  12851. timerBg = toolbar.getChildByName("timerBg") as Sprite;
  12852. timeTxt = toolbar.getChildByName("timeTxt") as TextField;
  12853. if (MovieVO.getChildAt(0).formats.length > 0)
  12854. {
  12855. createButtonDefinition();
  12856. }
  12857. return;
  12858. }
  12859.  
  12860. internal function handler_VolumeTracker_ENTER_FRAME(arg1:flash.events.Event):void
  12861. {
  12862. soundControl();
  12863. return;
  12864. }
  12865.  
  12866. public override function progressBufferBar(arg1:int):void
  12867. {
  12868. return;
  12869. }
  12870.  
  12871. internal function seek():void
  12872. {
  12873. progressBar.width = progressBarHitBox.mouseX;
  12874. moviePlayer.action(MoviePlayer.SEEK, {"percent":progressBarHitBox.mouseX / progressBarBG.width});
  12875. return;
  12876. }
  12877.  
  12878. protected function createControlBar():void
  12879. {
  12880. createButtonDefinition();
  12881. return;
  12882. }
  12883.  
  12884. internal function init():void
  12885. {
  12886. init2d();
  12887. addEventListener(MouseEvent.MOUSE_OVER, handler_mouse);
  12888. return;
  12889. }
  12890.  
  12891. internal function handler_mouse_down(arg1:flash.events.MouseEvent):void
  12892. {
  12893. var loc1:*=null;
  12894. if (arg1.target == btPlay || arg1.target == btPause)
  12895. {
  12896. switchBtPlayPause();
  12897. }
  12898. if (arg1.target == volumeBar)
  12899. {
  12900. volumeTracker.startDrag(true, new Rectangle(2, 0, 0, volumeBar.height));
  12901. volumeTracker.addEventListener(Event.ENTER_FRAME, handler_VolumeTracker_ENTER_FRAME);
  12902. }
  12903. if (arg1.target == btSound)
  12904. {
  12905. loc1 = btSound as Object;
  12906. if (!loc1.mute)
  12907. {
  12908. loc1.mute = {"isMute":false};
  12909. }
  12910. if (loc1.mute.isMute)
  12911. {
  12912. volumeTracker.y = loc1.mute.vol;
  12913. loc1.mute.isMute = false;
  12914. }
  12915. else
  12916. {
  12917. loc1.mute.vol = volumeTracker.y;
  12918. volumeTracker.y = 0;
  12919. loc1.mute.isMute = true;
  12920. }
  12921. soundControl();
  12922. }
  12923. if (arg1.target == btFs)
  12924. {
  12925. if (stage.displayState != StageDisplayState.NORMAL)
  12926. {
  12927. stage.displayState = StageDisplayState.NORMAL;
  12928. }
  12929. else
  12930. {
  12931. stage.displayState = StageDisplayState.FULL_SCREEN;
  12932. }
  12933. }
  12934. if (arg1.target == progressBarHitBox)
  12935. {
  12936. inSeek = true;
  12937. addEventListener(MouseEvent.MOUSE_MOVE, handler_mouse);
  12938. progressBarHitBox.scaleY = 4;
  12939. tracker.startDrag(true, new Rectangle(0, 5, progressBarBG.width, 0));
  12940. }
  12941. if (arg1.target == progressBarHitBox)
  12942. {
  12943. seek();
  12944. }
  12945. return;
  12946. }
  12947.  
  12948. public function moviePlayerStatus():String
  12949. {
  12950. return moviePlayer._status;
  12951. }
  12952.  
  12953. protected function onButtonDefinitionUpdate(arg1:definition.ButtonDefinitionEvent):void
  12954. {
  12955. return;
  12956. }
  12957.  
  12958. public override function progressTimeIndicator(arg1:int, arg2:Object):void
  12959. {
  12960. if (!inSeek)
  12961. {
  12962. progressBar.scaleX = arg1 * 0.01;
  12963. tracker.x = progressBar.width;
  12964. if (!btPause.visible && moviePlayer._status == MoviePlayer.PLAY)
  12965. {
  12966. btPause.visible = true;
  12967. }
  12968. }
  12969. timeTxt.text = arg2.progress + " / " + arg2.duration;
  12970. return;
  12971. }
  12972.  
  12973. public function switchBtPlayPause():void
  12974. {
  12975. var loc1:*=moviePlayer._status;
  12976. switch (loc1)
  12977. {
  12978. case MoviePlayer.PLAY:
  12979. {
  12980. btPlay.visible = true;
  12981. btPause.visible = false;
  12982. moviePlayer.action(MoviePlayer.PAUSE);
  12983. break;
  12984. }
  12985. case MoviePlayer.PAUSE:
  12986. {
  12987. btPlay.visible = false;
  12988. btPause.visible = true;
  12989. moviePlayer.action(MoviePlayer.RESUME);
  12990. break;
  12991. }
  12992. }
  12993. return;
  12994. }
  12995.  
  12996. public function updateButtonDefinition(arg1:Array, arg2:Number):void
  12997. {
  12998. (buttonDefinition as ButtonDefinition).update(arg1, arg2);
  12999. return;
  13000. }
  13001.  
  13002. protected function createButtonDefinition():void
  13003. {
  13004. buttonDefinition = new ButtonDefinition();
  13005. buttonDefinition.x = 411;
  13006. buttonDefinition.y = 0;
  13007. buttonDefinition.buttonMode = true;
  13008. buttonDefinition.update(formats, 0);
  13009. buttonDefinition.addEventListener(ButtonDefinitionEvent.UPDATE, onButtonDefinitionUpdate, false, 0, true);
  13010. addChild(buttonDefinition);
  13011. return;
  13012. }
  13013.  
  13014. internal function handler_mouse_over(arg1:flash.events.MouseEvent):void
  13015. {
  13016. if (arg1.target.parent == soundBox || arg1.target.parent == volumeBox)
  13017. {
  13018. soundHitBox.height = soundBox.height;
  13019. volumeBox.visible = true;
  13020. }
  13021. return;
  13022. }
  13023.  
  13024. public override function progressLoadingBar(arg1:int):void
  13025. {
  13026. return;
  13027. }
  13028.  
  13029. internal function handler_mouse_move(arg1:flash.events.MouseEvent):void
  13030. {
  13031. if (arg1.target == progressBarHitBox)
  13032. {
  13033. seek();
  13034. }
  13035. return;
  13036. }
  13037.  
  13038. internal function soundControl():void
  13039. {
  13040. volumeBarProgress.height = volumeTracker.y;
  13041. var loc1:*=volumeBarProgress.height / volumeBar.height;
  13042. moviePlayer.soundControl(loc1);
  13043. return;
  13044. }
  13045.  
  13046. protected function destroyButtonDefinition():void
  13047. {
  13048. if (buttonDefinition)
  13049. {
  13050. buttonDefinition.removeEventListener(ButtonDefinitionEvent.UPDATE, onButtonDefinitionUpdate);
  13051. removeChild(buttonDefinition);
  13052. (buttonDefinition as IDestroyable).destroy();
  13053. buttonDefinition = null;
  13054. }
  13055. return;
  13056. }
  13057.  
  13058. public override function adjustSound():void
  13059. {
  13060. soundControl();
  13061. return;
  13062. }
  13063.  
  13064. internal function handler_mouse_out(arg1:flash.events.MouseEvent):void
  13065. {
  13066. if (arg1.target.parent == soundBox || arg1.target.parent == volumeBox)
  13067. {
  13068. soundHitBox.height = btSound.height;
  13069. volumeBox.visible = false;
  13070. stopDragSound();
  13071. }
  13072. if (arg1.target == progressBarHitBox)
  13073. {
  13074. inSeek = false;
  13075. progressBarHitBox.scaleY = 1;
  13076. removeEventListener(MouseEvent.MOUSE_MOVE, handler_mouse);
  13077. tracker.stopDrag();
  13078. }
  13079. return;
  13080. }
  13081.  
  13082. internal function stopDragSound():void
  13083. {
  13084. volumeTracker.stopDrag();
  13085. volumeTracker.removeEventListener(Event.ENTER_FRAME, handler_VolumeTracker_ENTER_FRAME);
  13086. return;
  13087. }
  13088.  
  13089. internal function handler_mouse_up(arg1:flash.events.MouseEvent):void
  13090. {
  13091. if (arg1.target == volumeBar)
  13092. {
  13093. stopDragSound();
  13094. }
  13095. if (arg1.target == progressBarHitBox)
  13096. {
  13097. inSeek = false;
  13098. progressBarHitBox.scaleY = 1;
  13099. removeEventListener(MouseEvent.MOUSE_MOVE, handler_mouse);
  13100. tracker.stopDrag();
  13101. }
  13102. return;
  13103. }
  13104.  
  13105. public function updateButtonDefinitionText(arg1:String):void
  13106. {
  13107. (buttonDefinition as ButtonDefinition).updateText(arg1);
  13108. return;
  13109. }
  13110.  
  13111. internal function handler_mouse(arg1:flash.events.MouseEvent):void
  13112. {
  13113. if (arg1.type == MouseEvent.MOUSE_OVER)
  13114. {
  13115. addEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  13116. addEventListener(MouseEvent.MOUSE_DOWN, handler_mouse);
  13117. handler_mouse_over(arg1);
  13118. }
  13119. if (arg1.type == MouseEvent.MOUSE_OUT)
  13120. {
  13121. removeEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  13122. removeEventListener(MouseEvent.MOUSE_DOWN, handler_mouse);
  13123. handler_mouse_out(arg1);
  13124. }
  13125. if (arg1.type == MouseEvent.MOUSE_DOWN)
  13126. {
  13127. addEventListener(MouseEvent.MOUSE_UP, handler_mouse);
  13128. handler_mouse_down(arg1);
  13129. }
  13130. if (arg1.type == MouseEvent.MOUSE_UP)
  13131. {
  13132. removeEventListener(MouseEvent.MOUSE_UP, handler_mouse);
  13133. handler_mouse_up(arg1);
  13134. }
  13135. if (arg1.type == MouseEvent.MOUSE_MOVE)
  13136. {
  13137. handler_mouse_move(arg1);
  13138. }
  13139. return;
  13140. }
  13141.  
  13142. internal var btFs:flash.display.Sprite;
  13143.  
  13144. internal var progressBarHitBox:flash.display.Sprite;
  13145.  
  13146. internal var actionHitBox:flash.display.Sprite;
  13147.  
  13148. internal var btPause:flash.display.Sprite;
  13149.  
  13150. internal var progressBarBox:flash.display.Sprite;
  13151.  
  13152. internal var volumeBar:flash.display.Sprite;
  13153.  
  13154. internal var volumeTracker:flash.display.Sprite;
  13155.  
  13156. internal var toolbarBg:flash.display.Sprite;
  13157.  
  13158. internal var volumeBox:flash.display.Sprite;
  13159.  
  13160. internal var actionBoxSP:flash.display.Sprite;
  13161.  
  13162. public var buttonDefinition:flash.display.MovieClip;
  13163.  
  13164. internal var btPlay:flash.display.Sprite;
  13165.  
  13166. internal var soundHitBox:flash.display.Sprite;
  13167.  
  13168. internal var btFs2:flash.display.Sprite;
  13169.  
  13170. internal var progressBar:flash.display.Sprite;
  13171.  
  13172. internal var btSound:flash.display.Sprite;
  13173.  
  13174. internal var tracker:flash.display.Sprite;
  13175.  
  13176. internal var soundBox:flash.display.Sprite;
  13177.  
  13178. internal var timeTxt:flash.text.TextField;
  13179.  
  13180. internal var fsHitBox:flash.display.Sprite;
  13181.  
  13182. public var formats:Array;
  13183.  
  13184. internal var timerBg:flash.display.Sprite;
  13185.  
  13186. internal var progressBarBG:flash.display.Sprite;
  13187.  
  13188. internal var inSeek:Boolean;
  13189.  
  13190. internal var fsBox:flash.display.Sprite;
  13191.  
  13192. internal var toolbar:flash.display.Sprite;
  13193.  
  13194. internal var volumeBarProgress:flash.display.Sprite;
  13195. }
  13196. }
  13197.  
  13198.  
  13199. // class BtAddToMyVideo
  13200. package
  13201. {
  13202. import flash.display.*;
  13203.  
  13204. public dynamic class BtAddToMyVideo extends flash.display.Sprite
  13205. {
  13206. public function BtAddToMyVideo()
  13207. {
  13208. super();
  13209. return;
  13210. }
  13211. }
  13212. }
  13213.  
  13214.  
  13215. // class BtAddToMyVideoXS
  13216. package
  13217. {
  13218. import flash.display.*;
  13219.  
  13220. public dynamic class BtAddToMyVideoXS extends flash.display.Sprite
  13221. {
  13222. public function BtAddToMyVideoXS()
  13223. {
  13224. super();
  13225. return;
  13226. }
  13227. }
  13228. }
  13229.  
  13230.  
  13231. // class BtBuyDvd
  13232. package
  13233. {
  13234. import flash.display.*;
  13235. import flash.text.*;
  13236.  
  13237. public dynamic class BtBuyDvd extends flash.display.Sprite
  13238. {
  13239. public function BtBuyDvd()
  13240. {
  13241. super();
  13242. return;
  13243. }
  13244.  
  13245. public var prix:flash.text.TextField;
  13246. }
  13247. }
  13248.  
  13249.  
  13250. // class BtBuyUnlimited
  13251. package
  13252. {
  13253. import flash.display.*;
  13254. import flash.text.*;
  13255.  
  13256. public dynamic class BtBuyUnlimited extends flash.display.Sprite
  13257. {
  13258. public function BtBuyUnlimited()
  13259. {
  13260. super();
  13261. return;
  13262. }
  13263.  
  13264. public var prix:flash.text.TextField;
  13265. }
  13266. }
  13267.  
  13268.  
  13269. // class BtBuyUnlimitedPass
  13270. package
  13271. {
  13272. import flash.display.*;
  13273.  
  13274. public dynamic class BtBuyUnlimitedPass extends flash.display.Sprite
  13275. {
  13276. public function BtBuyUnlimitedPass()
  13277. {
  13278. super();
  13279. return;
  13280. }
  13281. }
  13282. }
  13283.  
  13284.  
  13285. // class BtLeaveComment
  13286. package
  13287. {
  13288. import flash.display.*;
  13289.  
  13290. public dynamic class BtLeaveComment extends flash.display.Sprite
  13291. {
  13292. public function BtLeaveComment()
  13293. {
  13294. super();
  13295. return;
  13296. }
  13297. }
  13298. }
  13299.  
  13300.  
  13301. // class BtLeaveCommentXS
  13302. package
  13303. {
  13304. import flash.display.*;
  13305.  
  13306. public dynamic class BtLeaveCommentXS extends flash.display.Sprite
  13307. {
  13308. public function BtLeaveCommentXS()
  13309. {
  13310. super();
  13311. return;
  13312. }
  13313. }
  13314. }
  13315.  
  13316.  
  13317. // class BtRent48h
  13318. package
  13319. {
  13320. import flash.display.*;
  13321. import flash.text.*;
  13322.  
  13323. public dynamic class BtRent48h extends flash.display.Sprite
  13324. {
  13325. public function BtRent48h()
  13326. {
  13327. super();
  13328. return;
  13329. }
  13330.  
  13331. public var prix:flash.text.TextField;
  13332. }
  13333. }
  13334.  
  13335.  
  13336. // class BtRentBuyXS
  13337. package
  13338. {
  13339. import flash.display.*;
  13340.  
  13341. public dynamic class BtRentBuyXS extends flash.display.Sprite
  13342. {
  13343. public function BtRentBuyXS()
  13344. {
  13345. super();
  13346. return;
  13347. }
  13348. }
  13349. }
  13350.  
  13351.  
  13352. // class BtSeeInMyVideos
  13353. package
  13354. {
  13355. import flash.display.*;
  13356.  
  13357. public dynamic class BtSeeInMyVideos extends flash.display.Sprite
  13358. {
  13359. public function BtSeeInMyVideos()
  13360. {
  13361. super();
  13362. return;
  13363. }
  13364. }
  13365. }
  13366.  
  13367.  
  13368. // class BtSendFriend
  13369. package
  13370. {
  13371. import flash.display.*;
  13372.  
  13373. public dynamic class BtSendFriend extends flash.display.Sprite
  13374. {
  13375. public function BtSendFriend()
  13376. {
  13377. super();
  13378. return;
  13379. }
  13380. }
  13381. }
  13382.  
  13383.  
  13384. // class BtSendFriendXS
  13385. package
  13386. {
  13387. import flash.display.*;
  13388.  
  13389. public dynamic class BtSendFriendXS extends flash.display.Sprite
  13390. {
  13391. public function BtSendFriendXS()
  13392. {
  13393. super();
  13394. return;
  13395. }
  13396. }
  13397. }
  13398.  
  13399.  
  13400. // class CallJS
  13401. package
  13402. {
  13403. import VO.*;
  13404. import flash.display.*;
  13405. import flash.external.*;
  13406.  
  13407. public class CallJS extends Object
  13408. {
  13409. public function CallJS()
  13410. {
  13411. super();
  13412. return;
  13413. }
  13414.  
  13415. public static function to(arg1:*):void
  13416. {
  13417. if (arg1 is DisplayObject)
  13418. {
  13419. if (arg1 is BtSendFriend)
  13420. {
  13421. ExternalInterface.call(ConfigVO.js_sentToFriend, MovieVO.getChildAt(MovieVO.idSelected).id);
  13422. }
  13423. if (arg1 is BtLeaveComment)
  13424. {
  13425. ExternalInterface.call(ConfigVO.js_comment, MovieVO.getChildAt(MovieVO.idSelected).id);
  13426. }
  13427. if (arg1 is BtAddToMyVideo)
  13428. {
  13429. ExternalInterface.call(ConfigVO.js_addToMyVideos, MovieVO.getChildAt(MovieVO.idSelected).id);
  13430. }
  13431. if (arg1 is BtSeeInMyVideos)
  13432. {
  13433. ExternalInterface.call(ConfigVO.js_seeInMyVideos, MovieVO.getChildAt(MovieVO.idSelected).id);
  13434. }
  13435. if (arg1 is BtBuyUnlimitedPass)
  13436. {
  13437. ExternalInterface.call(ConfigVO.js_illimitedPass, MovieVO.getChildAt(MovieVO.idSelected).id);
  13438. }
  13439. if (arg1 is BtBuyUnlimited)
  13440. {
  13441. ExternalInterface.call(ConfigVO.js_illimited, MovieVO.getChildAt(MovieVO.idSelected).id);
  13442. }
  13443. if (arg1 is BtBuyDvd)
  13444. {
  13445. ExternalInterface.call(ConfigVO.js_dvd, MovieVO.getChildAt(MovieVO.idSelected).id);
  13446. }
  13447. if (arg1 is BtRent48h)
  13448. {
  13449. ExternalInterface.call(ConfigVO.js_rent, MovieVO.getChildAt(MovieVO.idSelected).id);
  13450. }
  13451. if (arg1 is BtSendFriendXS)
  13452. {
  13453. ExternalInterface.call(ConfigVO.js_sentToFriend, MovieVO.getChildAt(MovieVO.idSelected).id);
  13454. }
  13455. if (arg1 is BtLeaveCommentXS)
  13456. {
  13457. ExternalInterface.call(ConfigVO.js_comment, MovieVO.getChildAt(MovieVO.idSelected).id);
  13458. }
  13459. if (arg1 is BtAddToMyVideoXS)
  13460. {
  13461. ExternalInterface.call(ConfigVO.js_addToMyVideos, MovieVO.getChildAt(MovieVO.idSelected).id);
  13462. }
  13463. if (arg1 is BtRentBuyXS || arg1 is UserPanelBtAcheterLouer || arg1.name == "InfoBox_btPrix")
  13464. {
  13465. ExternalInterface.call(ConfigVO.js_xsPlayerByeRent, MovieVO.getChildAt(MovieVO.idSelected).id);
  13466. }
  13467. if (arg1.name == "Tracer_BtEmpty")
  13468. {
  13469. ExternalInterface.call(ConfigVO.js_emptyCoverFlow);
  13470. }
  13471. }
  13472. if (arg1 is String)
  13473. {
  13474. ExternalInterface.call(arg1);
  13475. }
  13476. return;
  13477. }
  13478. }
  13479. }
  13480.  
  13481.  
  13482. // class ControlBarButtonDefinition
  13483. package
  13484. {
  13485. import flash.display.*;
  13486. import flash.text.*;
  13487.  
  13488. public dynamic class ControlBarButtonDefinition extends flash.display.MovieClip
  13489. {
  13490. public function ControlBarButtonDefinition()
  13491. {
  13492. super();
  13493. addFrameScript(0, frame1, 9, frame10, 19, frame20);
  13494. return;
  13495. }
  13496.  
  13497. internal function frame1():*
  13498. {
  13499. stop();
  13500. return;
  13501. }
  13502.  
  13503. internal function frame20():*
  13504. {
  13505. stop();
  13506. return;
  13507. }
  13508.  
  13509. internal function frame10():*
  13510. {
  13511. stop();
  13512. return;
  13513. }
  13514.  
  13515. public var label:flash.text.TextField;
  13516. }
  13517. }
  13518.  
  13519.  
  13520. // class ControlBarLabel
  13521. package
  13522. {
  13523. import flash.display.*;
  13524. import flash.text.*;
  13525.  
  13526. public dynamic class ControlBarLabel extends flash.display.MovieClip
  13527. {
  13528. public function ControlBarLabel()
  13529. {
  13530. super();
  13531. addFrameScript(0, frame1, 9, frame10, 19, frame20);
  13532. return;
  13533. }
  13534.  
  13535. internal function frame1():*
  13536. {
  13537. stop();
  13538. return;
  13539. }
  13540.  
  13541. internal function frame20():*
  13542. {
  13543. stop();
  13544. return;
  13545. }
  13546.  
  13547. internal function frame10():*
  13548. {
  13549. stop();
  13550. return;
  13551. }
  13552.  
  13553. public var label:flash.text.TextField;
  13554. }
  13555. }
  13556.  
  13557.  
  13558. // class ControlBarPanelCenter
  13559. package
  13560. {
  13561. import flash.display.*;
  13562.  
  13563. public dynamic class ControlBarPanelCenter extends flash.display.MovieClip
  13564. {
  13565. public function ControlBarPanelCenter()
  13566. {
  13567. super();
  13568. return;
  13569. }
  13570. }
  13571. }
  13572.  
  13573.  
  13574. // class ControlBarPanelDown
  13575. package
  13576. {
  13577. import flash.display.*;
  13578.  
  13579. public dynamic class ControlBarPanelDown extends flash.display.MovieClip
  13580. {
  13581. public function ControlBarPanelDown()
  13582. {
  13583. super();
  13584. return;
  13585. }
  13586. }
  13587. }
  13588.  
  13589.  
  13590. // class ControlBarPanelTop
  13591. package
  13592. {
  13593. import flash.display.*;
  13594.  
  13595. public dynamic class ControlBarPanelTop extends flash.display.MovieClip
  13596. {
  13597. public function ControlBarPanelTop()
  13598. {
  13599. super();
  13600. return;
  13601. }
  13602. }
  13603. }
  13604.  
  13605.  
  13606. // class CoverBtPlay
  13607. package
  13608. {
  13609. import flash.display.*;
  13610.  
  13611. public dynamic class CoverBtPlay extends flash.display.Sprite
  13612. {
  13613. public function CoverBtPlay()
  13614. {
  13615. super();
  13616. return;
  13617. }
  13618. }
  13619. }
  13620.  
  13621.  
  13622. // class CoverBtPlayExtrait
  13623. package
  13624. {
  13625. import flash.display.*;
  13626.  
  13627. public dynamic class CoverBtPlayExtrait extends flash.display.Sprite
  13628. {
  13629. public function CoverBtPlayExtrait()
  13630. {
  13631. super();
  13632. return;
  13633. }
  13634. }
  13635. }
  13636.  
  13637.  
  13638. // class DataLoader
  13639. package
  13640. {
  13641. import VO.*;
  13642. import ch.capi.net.*;
  13643. import flash.display.*;
  13644. import flash.events.*;
  13645. import flash.net.*;
  13646.  
  13647. public class DataLoader extends flash.events.EventDispatcher
  13648. {
  13649. public function DataLoader(arg1:String=null)
  13650. {
  13651. super();
  13652. if (arg1)
  13653. {
  13654. url = arg1;
  13655. }
  13656. loader = new Loader();
  13657. cml = new CompositeMassLoader();
  13658. cml.massLoader.parallelFiles = 1;
  13659. return;
  13660. }
  13661.  
  13662. public function loadSequence(arg1:Array):void
  13663. {
  13664. var loc2:*=null;
  13665. cml.clear();
  13666. var loc1:*=true;
  13667. var loc3:*=0;
  13668. var loc4:*=arg1;
  13669. for each (loc2 in loc4)
  13670. {
  13671. cml.addFile(loc2.file, loc2.type);
  13672. if (Tracer.status && Tracer.params.imgLoad)
  13673. {
  13674. Tracer.text("load : " + loc2.file);
  13675. }
  13676. if (DataVO.getBmpDataExist(loc2.file))
  13677. {
  13678. continue;
  13679. }
  13680. loc1 = false;
  13681. }
  13682. cml.massLoader.addEventListener(ProgressEvent.PROGRESS, handler_cml_progress);
  13683. cml.massLoader.addEventListener(Event.COMPLETE, handler_cml_complete);
  13684. if (loc1)
  13685. {
  13686. cml.massLoader.dispatchEvent(new Event(Event.COMPLETE));
  13687. }
  13688. else
  13689. {
  13690. cml.start();
  13691. }
  13692. return;
  13693. }
  13694.  
  13695. internal function loadXML_complete(arg1:flash.events.Event):void
  13696. {
  13697. DataVO.setData(arg1.currentTarget.data);
  13698. return;
  13699. }
  13700.  
  13701. public function init():void
  13702. {
  13703. loadXML();
  13704. return;
  13705. }
  13706.  
  13707. internal function loadXML():void
  13708. {
  13709. var loc1:*=new URLLoader();
  13710. loc1.addEventListener(Event.COMPLETE, loadXML_complete);
  13711. var loc2:*=new Date();
  13712. var loc3:*=loc2.fullYear + loc2.date + loc2.day + loc2.hours;
  13713. loc1.load(new URLRequest(url + "data/data.xml?" + loc3));
  13714. return;
  13715. }
  13716.  
  13717. internal function handler_cml_complete(arg1:flash.events.Event):void
  13718. {
  13719. var loc1:*=null;
  13720. var loc2:*=null;
  13721. var loc3:*=0;
  13722. var loc4:*=cml.getFiles();
  13723. label368: for each (loc1 in loc4)
  13724. {
  13725. var loc5:*=loc1.getType();
  13726. switch (loc5)
  13727. {
  13728. case LoadableFileType.BINARY:
  13729. {
  13730. continue label368;
  13731. }
  13732. case LoadableFileType.SWF:
  13733. {
  13734. loc2 = loc1.getData();
  13735. loc5 = loc2.contentLoaderInfo.contentType;
  13736. switch (loc5)
  13737. {
  13738. case "image/jpeg" || "image/gif" || "image/png":
  13739. {
  13740. if (Tracer.status && Tracer.params.imgLoaded)
  13741. {
  13742. Tracer.text("loaded : " + loc1);
  13743. }
  13744. DataVO.saveBmpData(String(loc1), loc2.content as Bitmap);
  13745. break;
  13746. }
  13747. case "application/x-shockwave-flash":
  13748. {
  13749. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.SWF_FINISH, false, false, loc2.contentLoaderInfo.content));
  13750. break;
  13751. }
  13752. }
  13753. continue label368;
  13754. }
  13755. case LoadableFileType.TEXT:
  13756. {
  13757. DataVO.setCSS(loc1.getData());
  13758. continue label368;
  13759. }
  13760. }
  13761. }
  13762. cml.massLoader.removeEventListener(ProgressEvent.PROGRESS, handler_cml_progress);
  13763. cml.massLoader.removeEventListener(Event.COMPLETE, handler_cml_complete);
  13764. if (willTrigger(DataLoaderEvent.FIRST_SEQUENCE_FINISH))
  13765. {
  13766. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.FIRST_SEQUENCE_FINISH, false, false, data));
  13767. }
  13768. if (willTrigger(DataLoaderEvent.SEQUENCE_COMPLETE))
  13769. {
  13770. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.SEQUENCE_COMPLETE, false, false));
  13771. }
  13772. if (willTrigger(DataLoaderEvent.SEQUENCE_FINISH_REFPROJECT))
  13773. {
  13774. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.SEQUENCE_FINISH_REFPROJECT, false, false));
  13775. }
  13776. if (willTrigger(DataLoaderEvent.IMG_FINISH))
  13777. {
  13778. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.IMG_FINISH, false, false, cml.getFileAt(0)));
  13779. }
  13780. return;
  13781. }
  13782.  
  13783. internal function handler_loadSwf_complete(arg1:flash.events.Event):void
  13784. {
  13785. DataVO.saveSwf(arg1.target as LoaderInfo);
  13786. arg1.target.removeEventListener(Event.COMPLETE, handler_loadSwf_complete);
  13787. if (willTrigger(DataLoaderEvent.SWF_FINISH))
  13788. {
  13789. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.SWF_FINISH, false, false, swfName));
  13790. }
  13791. delete arg1.target.loader;
  13792. return;
  13793. }
  13794.  
  13795. internal function handler_cml_progress(arg1:flash.events.ProgressEvent):void
  13796. {
  13797. dispatchEvent(new DataLoaderEvent(DataLoaderEvent.PROGRESS, false, false, {"percent":cml.massLoader.loadInfo.percentLoaded}));
  13798. return;
  13799. }
  13800.  
  13801. internal var cml:ch.capi.net.CompositeMassLoader;
  13802.  
  13803. internal var data:VO.DataVO;
  13804.  
  13805. internal var swfName:String;
  13806.  
  13807. internal var url:String="";
  13808.  
  13809. internal var loader:flash.display.Loader;
  13810. }
  13811. }
  13812.  
  13813.  
  13814. // class DataLoaderEvent
  13815. package
  13816. {
  13817. import flash.events.*;
  13818.  
  13819. public class DataLoaderEvent extends flash.events.Event
  13820. {
  13821. public function DataLoaderEvent(arg1:String, arg2:Boolean=false, arg3:Boolean=false, arg4:Object=null)
  13822. {
  13823. super(arg1, arg2, arg3);
  13824. _data = arg4;
  13825. return;
  13826. }
  13827.  
  13828. public function get data():Object
  13829. {
  13830. return _data;
  13831. }
  13832.  
  13833. public override function toString():String
  13834. {
  13835. return "[DataLoaderEvent type=\"" + type + "\" bubbles=" + bubbles + " cancelable=" + cancelable + "]";
  13836. }
  13837.  
  13838. public override function clone():flash.events.Event
  13839. {
  13840. return new DataLoaderEvent(type, bubbles, cancelable);
  13841. }
  13842.  
  13843. public static const FIRST_SEQUENCE_FINISH:String="DataLoaderEvent_start_sequence_finish";
  13844.  
  13845. public static const PROGRESS:String="DataLoaderEvent_progress";
  13846.  
  13847. public static const IMG_FINISH:String="DataLoaderEvent_img_finish";
  13848.  
  13849. public static const SWF_FINISH:String="DataLoaderEvent_swf_finish";
  13850.  
  13851. public static const SEQUENCE_FINISH_REFPROJECT:String="DataLoaderEvent_sequence_refproject_finish";
  13852.  
  13853. public static const SEQUENCE_COMPLETE:String="DataLoaderEvent_sequence_complete";
  13854.  
  13855. public static const FONTLOADED:String="DataLoaderEvent_fontLoaded";
  13856.  
  13857. internal var _data:Object;
  13858. }
  13859. }
  13860.  
  13861.  
  13862. // class InactivityEngine
  13863. package
  13864. {
  13865. import flash.display.*;
  13866. import flash.events.*;
  13867. import flash.utils.*;
  13868.  
  13869. public class InactivityEngine extends flash.events.EventDispatcher
  13870. {
  13871. public function InactivityEngine(arg1:String)
  13872. {
  13873. super();
  13874. instances[arg1] = this;
  13875. instancesName.push(arg1);
  13876. instanceName = arg1;
  13877. timer = new Timer(5000, 1);
  13878. return;
  13879. }
  13880.  
  13881. public function _stop():void
  13882. {
  13883. io.removeEventListener(MouseEvent.MOUSE_MOVE, handler_mouse);
  13884. timer.removeEventListener(TimerEvent.TIMER_COMPLETE, handler_timer_complete);
  13885. timer.stop();
  13886. return;
  13887. }
  13888.  
  13889. public function _start():void
  13890. {
  13891. io.addEventListener(MouseEvent.MOUSE_MOVE, handler_mouse);
  13892. timer.addEventListener(TimerEvent.TIMER_COMPLETE, handler_timer_complete);
  13893. timer.reset();
  13894. timer.start();
  13895. return;
  13896. }
  13897.  
  13898. internal function handler_timer_complete(arg1:flash.events.TimerEvent):void
  13899. {
  13900. timer.reset();
  13901. dispatchEvent(new InactivityEngineEvent(InactivityEngineEvent.INACTIVITY));
  13902. io.addEventListener(MouseEvent.MOUSE_MOVE, handler_mouse_activity);
  13903. return;
  13904. }
  13905.  
  13906. internal function handler_mouse(arg1:flash.events.MouseEvent):void
  13907. {
  13908. timer.reset();
  13909. timer.start();
  13910. return;
  13911. }
  13912.  
  13913. public function _changeIO(arg1:flash.display.InteractiveObject):void
  13914. {
  13915. io = arg1;
  13916. return;
  13917. }
  13918.  
  13919. internal function handler_mouse_activity(arg1:flash.events.MouseEvent):void
  13920. {
  13921. io.removeEventListener(MouseEvent.MOUSE_MOVE, handler_mouse_activity);
  13922. dispatchEvent(new InactivityEngineEvent(InactivityEngineEvent.ACTIVITY));
  13923. return;
  13924. }
  13925.  
  13926. public static function _instance(arg1:String):InactivityEngine
  13927. {
  13928. return instances[arg1];
  13929. }
  13930.  
  13931.  
  13932. {
  13933. instances = new Array();
  13934. instancesName = new Array();
  13935. }
  13936.  
  13937. internal var instanceName:String;
  13938.  
  13939. internal var timer:flash.utils.Timer;
  13940.  
  13941. internal var io:flash.display.InteractiveObject;
  13942.  
  13943. internal static var instancesName:Array;
  13944.  
  13945. internal static var instances:Array;
  13946. }
  13947. }
  13948.  
  13949.  
  13950. // class InactivityEngineEvent
  13951. package
  13952. {
  13953. import flash.events.*;
  13954.  
  13955. public class InactivityEngineEvent extends flash.events.Event
  13956. {
  13957. public function InactivityEngineEvent(arg1:String, arg2:Boolean=false, arg3:Boolean=false)
  13958. {
  13959. super(arg1, arg2, arg3);
  13960. return;
  13961. }
  13962.  
  13963. public static const INACTIVITY:String="INACTIVITY";
  13964.  
  13965. public static const ACTIVITY:String="ACTIVITY";
  13966. }
  13967. }
  13968.  
  13969.  
  13970. // class Loading
  13971. package
  13972. {
  13973. import flash.display.*;
  13974. import flash.text.*;
  13975.  
  13976. public dynamic class Loading extends flash.display.Sprite
  13977. {
  13978. public function Loading()
  13979. {
  13980. super();
  13981. return;
  13982. }
  13983.  
  13984. public var percent:flash.text.TextField;
  13985. }
  13986. }
  13987.  
  13988.  
  13989. // class MsgBox
  13990. package
  13991. {
  13992. import flash.display.*;
  13993. import flash.text.*;
  13994. import metabast.display.*;
  13995.  
  13996. public class MsgBox extends flash.display.Sprite
  13997. {
  13998. public function MsgBox(arg1:uint=550, arg2:uint=400)
  13999. {
  14000. super();
  14001. mouseChildren = false;
  14002. buttonMode = true;
  14003. visible = false;
  14004. bg = CreateGraphic.to(this, {"width":arg1, "height":arg2, "alpha":0.3});
  14005. msgBox = CreateGraphic.to(this, {"width":330, "height":44, "type":CreateGraphic.DRAW_ROUND_RECT, "ellipseWidth":44, "line":true, "lineColor":16777215});
  14006. msgBox.x = uint(width * 0.5) - 165;
  14007. msgBox.y = uint(height * 0.5) - 22;
  14008. txt = CreateText.to(msgBox, {"color":16777215, "font":"Arial", "size":13, "multiline":true, "wordWrap":true, "width":300, "autoSize":TextFieldAutoSize.CENTER, "align":TextFormatAlign.CENTER, "x":15, "y":5});
  14009. return;
  14010. }
  14011.  
  14012. public function hide():void
  14013. {
  14014. visible = false;
  14015. return;
  14016. }
  14017.  
  14018. public function resize(arg1:Number, arg2:Number):void
  14019. {
  14020. bg.width = arg1;
  14021. bg.height = arg2;
  14022. msgBox.x = uint(width * 0.5) - 165;
  14023. msgBox.y = uint(height * 0.5) - 22;
  14024. return;
  14025. }
  14026.  
  14027. public function _show(arg1:String="Error"):void
  14028. {
  14029. txt.htmlText = arg1;
  14030. visible = true;
  14031. return;
  14032. }
  14033.  
  14034. internal var txt:flash.text.TextField;
  14035.  
  14036. internal var bg:flash.display.Sprite;
  14037.  
  14038. internal var msgBox:flash.display.Sprite;
  14039. }
  14040. }
  14041.  
  14042.  
  14043. // class Sablier
  14044. package
  14045. {
  14046. import flash.display.*;
  14047.  
  14048. public dynamic class Sablier extends flash.display.MovieClip
  14049. {
  14050. public function Sablier()
  14051. {
  14052. super();
  14053. return;
  14054. }
  14055. }
  14056. }
  14057.  
  14058.  
  14059. // class Toolbar
  14060. package
  14061. {
  14062. import flash.display.*;
  14063. import flash.text.*;
  14064.  
  14065. public dynamic class Toolbar extends flash.display.Sprite
  14066. {
  14067. public function Toolbar()
  14068. {
  14069. super();
  14070. return;
  14071. }
  14072.  
  14073. public var ToolbarBg:flash.display.MovieClip;
  14074.  
  14075. public var timeTxt:flash.text.TextField;
  14076.  
  14077. public var progressBarBox:flash.display.MovieClip;
  14078.  
  14079. public var soundBox:flash.display.MovieClip;
  14080.  
  14081. public var timerBg:flash.display.MovieClip;
  14082.  
  14083. public var actionBox:flash.display.MovieClip;
  14084.  
  14085. public var FsBox:flash.display.MovieClip;
  14086. }
  14087. }
  14088.  
  14089.  
  14090. // class ToolbarXS
  14091. package
  14092. {
  14093. import flash.display.*;
  14094. import flash.text.*;
  14095.  
  14096. public dynamic class ToolbarXS extends flash.display.Sprite
  14097. {
  14098. public function ToolbarXS()
  14099. {
  14100. super();
  14101. return;
  14102. }
  14103.  
  14104. public var ToolbarBg:flash.display.MovieClip;
  14105.  
  14106. public var timeTxt:flash.text.TextField;
  14107.  
  14108. public var progressBarBox:flash.display.MovieClip;
  14109.  
  14110. public var soundBox:flash.display.MovieClip;
  14111.  
  14112. public var timerBg:flash.display.MovieClip;
  14113.  
  14114. public var actionBox:flash.display.MovieClip;
  14115.  
  14116. public var FsBox:flash.display.MovieClip;
  14117. }
  14118. }
  14119.  
  14120.  
  14121. // class Tracer
  14122. package
  14123. {
  14124. import flash.display.*;
  14125. import flash.events.*;
  14126. import flash.text.*;
  14127. import metabast.display.*;
  14128.  
  14129. public class Tracer extends flash.display.Sprite
  14130. {
  14131. public function Tracer(arg1:int=0, arg2:int=0, arg3:uint=100, arg4:uint=100, arg5:Object=null)
  14132. {
  14133. var loc1:*=undefined;
  14134. super();
  14135. _status = true;
  14136. _instance = this;
  14137. _params = {"x":arg1, "y":arg2, "width":arg3, "height":arg4};
  14138. if (arg5)
  14139. {
  14140. var loc2:*=0;
  14141. var loc3:*=arg5;
  14142. for (loc1 in loc3)
  14143. {
  14144. _params[loc1] = arg5[loc1];
  14145. }
  14146. }
  14147. x = arg1;
  14148. y = arg2;
  14149. box = new Sprite();
  14150. box.visible = false;
  14151. _instance.addChild(box);
  14152. CreateGraphic.to(box, {"width":arg3, "height":arg4, "alpha":0.9, "color":5925234});
  14153. Txt = CreateText.to(box, {"width":arg3, "height":arg4 - 10, "multiline":true, "size":12, "y":10, "color":16777215, "leftMargin":10, "rightMargin":10, "selectable":true, "mouseEnabled":true, "autoSize":TextFieldAutoSize.NONE, "wordWrap":true});
  14154. Txt.appendText("- Tracer created." + "\n");
  14155. BtOpen = CreateGraphic.to(this, {"width":10, "height":10, "color":16711680, "buttonMode":true});
  14156. CreateText.to(this, {"color":16777215, "size":10, "htmlText":"<b>c</b>", "y":-2});
  14157. BtId = CreateGraphic.to(this, {"width":15, "height":10, "color":255, "buttonMode":true, "x":15, "name":"BtId"});
  14158. CreateText.to(this, {"color":16777215, "size":10, "htmlText":"<b>id</b>", "y":-2, "x":15});
  14159. BtEmpty = CreateGraphic.to(this, {"width":38, "height":10, "color":5618517, "buttonMode":true, "x":40, "name":"Tracer_BtEmpty", "visible":false});
  14160. CreateText.to(BtEmpty, {"color":16777215, "size":10, "htmlText":"<b>empty</b>", "y":-2, "x":2});
  14161. BtOpen.addEventListener(MouseEvent.MOUSE_DOWN, handler_mouseDown);
  14162. return;
  14163. }
  14164.  
  14165. internal function handler_mouseDown(arg1:flash.events.MouseEvent):void
  14166. {
  14167. if (arg1.target == BtOpen)
  14168. {
  14169. if (box.visible)
  14170. {
  14171. box.visible = false;
  14172. }
  14173. else
  14174. {
  14175. box.visible = true;
  14176. }
  14177. }
  14178. if (arg1.target == BtEmpty)
  14179. {
  14180. CallJS.to(BtEmpty);
  14181. }
  14182. return;
  14183. }
  14184.  
  14185. public static function get params():Object
  14186. {
  14187. return _params;
  14188. }
  14189.  
  14190. public static function text(arg1:String):void
  14191. {
  14192. if (_instance)
  14193. {
  14194. Txt.htmlText = Txt.htmlText + ("<font color=\'#FFFFFF\'>- " + arg1 + "</font>\n");
  14195. }
  14196. if (_instance)
  14197. {
  14198. Txt.scrollV = Txt.numLines;
  14199. }
  14200. return;
  14201. }
  14202.  
  14203. public static function get status():Boolean
  14204. {
  14205. return _status;
  14206. }
  14207.  
  14208. public static function get instance():Tracer
  14209. {
  14210. return _instance;
  14211. }
  14212.  
  14213. public static function showBtEmpty():void
  14214. {
  14215. if (_instance.BtEmpty)
  14216. {
  14217. _instance.BtEmpty.visible = true;
  14218. _instance.BtEmpty.addEventListener(MouseEvent.MOUSE_DOWN, _instance.handler_mouseDown);
  14219. }
  14220. return;
  14221. }
  14222.  
  14223.  
  14224. {
  14225. _status = false;
  14226. }
  14227.  
  14228. internal var BtEmpty:flash.display.Sprite;
  14229.  
  14230. internal var box:flash.display.Sprite;
  14231.  
  14232. internal var BtOpen:flash.display.Sprite;
  14233.  
  14234. internal var BtId:flash.display.Sprite;
  14235.  
  14236. internal static var _params:Object;
  14237.  
  14238. internal static var Txt:flash.text.TextField;
  14239.  
  14240. internal static var _status:Boolean=false;
  14241.  
  14242. internal static var _instance:Tracer;
  14243. }
  14244. }
  14245.  
  14246.  
  14247. // class UserPanelBtAcheterLouer
  14248. package
  14249. {
  14250. import flash.display.*;
  14251.  
  14252. public dynamic class UserPanelBtAcheterLouer extends flash.display.Sprite
  14253. {
  14254. public function UserPanelBtAcheterLouer()
  14255. {
  14256. super();
  14257. return;
  14258. }
  14259. }
  14260. }
  14261.  
  14262.  
  14263. // class UserPanelBtPlay
  14264. package
  14265. {
  14266. import flash.display.*;
  14267.  
  14268. public dynamic class UserPanelBtPlay extends flash.display.Sprite
  14269. {
  14270. public function UserPanelBtPlay()
  14271. {
  14272. super();
  14273. return;
  14274. }
  14275. }
  14276. }
  14277.  
  14278.  
  14279. // class UserPanelBtPlayExtrait
  14280. package
  14281. {
  14282. import flash.display.*;
  14283.  
  14284. public dynamic class UserPanelBtPlayExtrait extends flash.display.Sprite
  14285. {
  14286. public function UserPanelBtPlayExtrait()
  14287. {
  14288. super();
  14289. return;
  14290. }
  14291. }
  14292. }
  14293.  
  14294.  
  14295. // class VodeoPlayer
  14296. package
  14297. {
  14298. import VO.*;
  14299. import flash.display.*;
  14300. import flash.events.*;
  14301. import flash.external.*;
  14302. import flash.ui.*;
  14303. import flash.utils.*;
  14304. import gs.*;
  14305. import metabast.display.*;
  14306. import metabast.video.movieplayer.*;
  14307.  
  14308. public class VodeoPlayer extends metabast.video.movieplayer.MoviePlayer
  14309. {
  14310. public function VodeoPlayer(arg1:Object=null)
  14311. {
  14312. super(arg1);
  14313. return;
  14314. }
  14315.  
  14316. protected override function handler_asyncError(arg1:flash.events.AsyncErrorEvent):void
  14317. {
  14318. Tracer.text(String(arg1));
  14319. return;
  14320. }
  14321.  
  14322. internal function handler_timer_toolBarOut(arg1:flash.events.TimerEvent):void
  14323. {
  14324. toolBarHitZone.visible = true;
  14325. hideToolBar();
  14326. return;
  14327. }
  14328.  
  14329. public function minPlayed():void
  14330. {
  14331. timerCounter.stop();
  14332. var loc1:*=MovieVO.getChildAt(MovieVO.idSelected);
  14333. if (!loc1.minPlayed)
  14334. {
  14335. loc1.minPlayed = true;
  14336. ExternalInterface.call(ConfigVO.js_minPlayed, loc1.id);
  14337. Tracer.text("movieId : " + loc1.id);
  14338. }
  14339. return;
  14340. }
  14341.  
  14342. public function stop():void
  14343. {
  14344. removeEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  14345. removeEventListener(MoviePlayerEvent.ACTION_CHANGE, handler_action_change);
  14346. timerCounter.stop();
  14347. stage.displayState = StageDisplayState.NORMAL;
  14348. hide();
  14349. return;
  14350. }
  14351.  
  14352. protected override function connectStream():void
  14353. {
  14354. super.connectStream();
  14355. timerCounter = new Timer(1000);
  14356. createMouseZone();
  14357. timerToolBarOut = new Timer(100, 1);
  14358. timerToolBarOut.addEventListener(TimerEvent.TIMER_COMPLETE, handler_timer_toolBarOut);
  14359. toolbar = getToolBar();
  14360. removeChild(toolbar);
  14361. addChild(toolbar);
  14362. toolbar.setPosition(_sceneWidth * 0.5 - getToolBar().width * 0.5, _sceneHeight - 25);
  14363. toolBarHitZone.addEventListener(MouseEvent.MOUSE_OVER, handler_mouse);
  14364. toolbar.addEventListener(MouseEvent.MOUSE_OVER, handler_mouse);
  14365. inactivityEngine = new InactivityEngine("MouseCursor");
  14366. inactivityEngine._changeIO(this);
  14367. return;
  14368. }
  14369.  
  14370. protected override function handler_securityError(arg1:flash.events.SecurityErrorEvent):void
  14371. {
  14372. Tracer.text(String(arg1));
  14373. return;
  14374. }
  14375.  
  14376. internal function handler_timerCounter(arg1:flash.events.TimerEvent):void
  14377. {
  14378. var loc1:*=timerCounter.currentCount / _duration;
  14379. if (loc1 > 0.33)
  14380. {
  14381. minPlayed();
  14382. }
  14383. return;
  14384. }
  14385.  
  14386. protected override function handler_ioError(arg1:flash.events.IOErrorEvent):void
  14387. {
  14388. Tracer.text(String(arg1));
  14389. return;
  14390. }
  14391.  
  14392. public function hide():void
  14393. {
  14394. var onComplete:*;
  14395.  
  14396. var loc1:*;
  14397. onComplete = undefined;
  14398. onComplete = function ():void
  14399. {
  14400. visible = false;
  14401. return;
  14402. }
  14403. mouseEnabled = false;
  14404. TweenLite.to(this, 1, {"alpha":0, "onComplete":onComplete});
  14405. return;
  14406. }
  14407.  
  14408. internal function handler_metadata_complete(arg1:metabast.video.movieplayer.MoviePlayerEvent):void
  14409. {
  14410. var onComplete:*;
  14411. var event:metabast.video.movieplayer.MoviePlayerEvent;
  14412.  
  14413. var loc1:*;
  14414. event = arg1;
  14415. removeEventListener(MoviePlayerEvent.METADATA_COMPLETE, handler_metadata_complete);
  14416. _resizeNormal();
  14417. if (FlashVars._resizable)
  14418. {
  14419. onComplete = function ():void
  14420. {
  14421. TweenLite.to(toolbar, 0.4, {"alpha":0.1, "delay":4});
  14422. return;
  14423. }
  14424. mouseEnabled = true;
  14425. visible = true;
  14426. toolbar.alpha = 1;
  14427. TweenLite.to(this, 1, {"alpha":1, "onComplete":onComplete});
  14428. }
  14429. return;
  14430. }
  14431.  
  14432. internal function createMouseZone():void
  14433. {
  14434. var loc1:*=null;
  14435. loc1 = {"width":442, "height":228 - 32};
  14436. if (ConfigVO.playerType == ConfigVO.PLAYER_XS)
  14437. {
  14438. loc1 = {"width":301, "height":155 - 32};
  14439. }
  14440. mouseZone = CreateGraphic.to(_extraBox, {"width":loc1.width, "height":loc1.height, "alpha":0, "color":16711680, "name":"VodeoPlayer_MouseZone", "buttonMode":true});
  14441. mouseZone.doubleClickEnabled = true;
  14442. toolBarHitZone = CreateGraphic.to(this, {"y":loc1.height, "width":loc1.width, "height":32, "alpha":0, "color":16711680, "name":"VodeoPlayer_MouseZoneToolBar", "buttonMode":false});
  14443. return;
  14444. }
  14445.  
  14446. public function _resizeNormal():void
  14447. {
  14448. var params:Object;
  14449.  
  14450. var loc1:*;
  14451. params = null;
  14452. params = {"width":442, "height":228};
  14453. if (ConfigVO.playerType == ConfigVO.PLAYER_XS)
  14454. {
  14455. params = {"width":301, "height":155};
  14456. }
  14457. if (FlashVars._resizable)
  14458. {
  14459. params = {"width":stage.stageWidth, "height":stage.stageHeight};
  14460. }
  14461. super.adjustVideo(params.width, params.height);
  14462. if (FlashVars._resizable)
  14463. {
  14464. toolbar.setPosition(params.width * 0.5 - getToolBar().width * 0.5, params.height - 25);
  14465. }
  14466. else
  14467. {
  14468. toolbar.setPosition(_sceneWidth * 0.5 - getToolBar().width * 0.5, _sceneHeight - 25);
  14469. }
  14470. _bg.width = params.width;
  14471. _bg.height = params.height;
  14472. mouseZone.width = params.width;
  14473. mouseZone.height = params.height - 32;
  14474. var loc2:*;
  14475. with (loc2 = toolBarHitZone)
  14476. {
  14477. width = params.width;
  14478. y = params.height - 32;
  14479. }
  14480. return;
  14481. }
  14482.  
  14483. internal function handler_action_change(arg1:metabast.video.movieplayer.MoviePlayerEvent):void
  14484. {
  14485. var loc1:*=arg1.data.status;
  14486. switch (loc1)
  14487. {
  14488. case MoviePlayer.PLAY:
  14489. {
  14490. timerCounter.start();
  14491. break;
  14492. }
  14493. case MoviePlayer.PAUSE:
  14494. {
  14495. timerCounter.stop();
  14496. break;
  14497. }
  14498. case MoviePlayer.STOP:
  14499. {
  14500. timerCounter.stop();
  14501. break;
  14502. }
  14503. }
  14504. return;
  14505. }
  14506.  
  14507. internal function handler_inactivityEngine(arg1:InactivityEngineEvent):void
  14508. {
  14509. var loc1:*=arg1.type;
  14510. switch (loc1)
  14511. {
  14512. case InactivityEngineEvent.ACTIVITY:
  14513. {
  14514. Mouse.show();
  14515. break;
  14516. }
  14517. case InactivityEngineEvent.INACTIVITY:
  14518. {
  14519. Mouse.hide();
  14520. break;
  14521. }
  14522. }
  14523. return;
  14524. }
  14525.  
  14526. public function getAeonToolbar():metabast.video.movieplayer.MoviePlayerToolBar
  14527. {
  14528. return toolbar;
  14529. }
  14530.  
  14531. public override function resize(arg1:flash.events.FullScreenEvent):void
  14532. {
  14533. var evt:flash.events.FullScreenEvent;
  14534. var params:Object;
  14535.  
  14536. var loc1:*;
  14537. params = null;
  14538. evt = arg1;
  14539. if (evt.fullScreen)
  14540. {
  14541. super.adjustVideo(stage.stageWidth, stage.stageHeight);
  14542. getToolBar().setPosition(stage.stageWidth * 0.5 - getToolBar().width * 0.5, stage.stageHeight - 25);
  14543. mouseZone.width = stage.stageWidth;
  14544. mouseZone.height = stage.stageHeight - 32;
  14545. x = 0;
  14546. y = 0;
  14547. var loc2:*;
  14548. with (loc2 = toolBarHitZone)
  14549. {
  14550. width = stage.stageWidth;
  14551. y = stage.stageHeight - 32;
  14552. }
  14553. hideToolBar();
  14554. inactivityEngine.addEventListener(InactivityEngineEvent.INACTIVITY, handler_inactivityEngine);
  14555. inactivityEngine.addEventListener(InactivityEngineEvent.ACTIVITY, handler_inactivityEngine);
  14556. inactivityEngine._start();
  14557. }
  14558. else
  14559. {
  14560. _resizeNormal();
  14561. TweenLite.to(toolbar, 0, {"alpha":0.1});
  14562. inactivityEngine._stop();
  14563. inactivityEngine.dispatchEvent(new InactivityEngineEvent(InactivityEngineEvent.ACTIVITY));
  14564. inactivityEngine.removeEventListener(InactivityEngineEvent.INACTIVITY, handler_inactivityEngine);
  14565. inactivityEngine.removeEventListener(InactivityEngineEvent.ACTIVITY, handler_inactivityEngine);
  14566. }
  14567. return;
  14568. }
  14569.  
  14570. internal function hideToolBar():void
  14571. {
  14572. var onComplete:*;
  14573.  
  14574. var loc1:*;
  14575. onComplete = undefined;
  14576. onComplete = function ():void
  14577. {
  14578. if (stage.displayState == StageDisplayState.FULL_SCREEN)
  14579. {
  14580. TweenLite.to(toolbar, 0.4, {"alpha":0, "delay":5});
  14581. }
  14582. return;
  14583. }
  14584. TweenLite.to(toolbar, 0.4, {"alpha":0.1, "onComplete":onComplete});
  14585. return;
  14586. }
  14587.  
  14588. internal function handler_vodeoPlayer_close(arg1:metabast.video.movieplayer.MoviePlayerEvent):void
  14589. {
  14590. stop();
  14591. return;
  14592. }
  14593.  
  14594. public function show(arg1:VO.MovieVO):void
  14595. {
  14596. var movie:VO.MovieVO;
  14597. var onComplete:*;
  14598.  
  14599. var loc1:*;
  14600. movie = arg1;
  14601. if (!_status || _status == STOP)
  14602. {
  14603. if (ConfigVO.page == ConfigVO.PAGE_MYVIDEOS && !movie.minPlayed && ConfigVO.playerType == ConfigVO.PLAYER_STANDALONE)
  14604. {
  14605. timerCounter.reset();
  14606. addEventListener(MoviePlayerEvent.ACTION_CHANGE, handler_action_change);
  14607. timerCounter.addEventListener(TimerEvent.TIMER, handler_timerCounter);
  14608. }
  14609. addEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  14610. if (FlashVars._resizable)
  14611. {
  14612. addEventListener(MoviePlayerEvent.METADATA_COMPLETE, handler_metadata_complete);
  14613. }
  14614. play(movie.videoPath);
  14615. if (!FlashVars._resizable)
  14616. {
  14617. onComplete = function ():void
  14618. {
  14619. TweenLite.to(toolbar, 0.4, {"alpha":0.1, "delay":4});
  14620. return;
  14621. }
  14622. mouseEnabled = true;
  14623. visible = true;
  14624. toolbar.alpha = 1;
  14625. TweenLite.to(this, 1, {"alpha":1, "onComplete":onComplete});
  14626. }
  14627. }
  14628. if (_status == PAUSE)
  14629. {
  14630. (getToolBar() as AeonPlayerToolbar).switchBtPlayPause();
  14631. }
  14632. return;
  14633. }
  14634.  
  14635. internal function handler_mouse(arg1:flash.events.MouseEvent):void
  14636. {
  14637. var loc1:*=arg1.currentTarget as Sprite;
  14638. if (arg1.type == MouseEvent.MOUSE_OVER)
  14639. {
  14640. loc1.addEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  14641. if (loc1 == toolBarHitZone || loc1 == toolbar)
  14642. {
  14643. TweenLite.to(toolbar, 0.05, {"alpha":1});
  14644. timerToolBarOut.stop();
  14645. toolBarHitZone.visible = false;
  14646. }
  14647. }
  14648. if (arg1.type == MouseEvent.MOUSE_OUT)
  14649. {
  14650. loc1.removeEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  14651. timerToolBarOut.reset();
  14652. timerToolBarOut.start();
  14653. }
  14654. return;
  14655. }
  14656.  
  14657. internal var toolBarHitZone:flash.display.Sprite;
  14658.  
  14659. internal var inactivityEngine:InactivityEngine;
  14660.  
  14661. internal var timerToolBarOut:flash.utils.Timer;
  14662.  
  14663. internal var mouseZone:flash.display.Sprite;
  14664.  
  14665. internal var timerCounter:flash.utils.Timer;
  14666.  
  14667. internal var toolbar:metabast.video.movieplayer.MoviePlayerToolBar;
  14668. }
  14669. }
  14670.  
  14671.  
  14672. // class VodeoPlayerStandalone
  14673. package
  14674. {
  14675. import VO.*;
  14676. import ch.capi.net.*;
  14677. import flash.display.*;
  14678. import flash.events.*;
  14679. import flash.external.*;
  14680. import flash.net.*;
  14681. import flash.utils.*;
  14682. import gs.*;
  14683. import gs.easing.*;
  14684. import metabast.display.*;
  14685. import metabast.video.movieplayer.*;
  14686. import security.*;
  14687. import standalone.*;
  14688.  
  14689. public class VodeoPlayerStandalone extends flash.display.Sprite
  14690. {
  14691. public function VodeoPlayerStandalone(arg1:Boolean=false)
  14692. {
  14693. super();
  14694. stage.align = StageAlign.TOP_LEFT;
  14695. stage.scaleMode = StageScaleMode.NO_SCALE;
  14696. ConfigVO.playerType = ConfigVO.PLAYER_STANDALONE;
  14697. FlashVars._init(stage.loaderInfo.parameters);
  14698. debugMode = arg1;
  14699. addEventListener(Event.ADDED, handler_added);
  14700. return;
  14701. }
  14702.  
  14703. internal function handler_netStatus(arg1:flash.events.NetStatusEvent):void
  14704. {
  14705. var loc1:*=arg1.info.code;
  14706. switch (loc1)
  14707. {
  14708. case "NetStream.Buffer.Full":
  14709. {
  14710. waiting._hide();
  14711. break;
  14712. }
  14713. case "NetStream.Play.Start":
  14714. {
  14715. waiting._show();
  14716. break;
  14717. }
  14718. case "NetConnection.Connect.Success":
  14719. {
  14720. Tracer.text("NetConnection.Connect.Success");
  14721. vodeoPlayer.removeEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  14722. waiting._hide();
  14723. break;
  14724. }
  14725. }
  14726. return;
  14727. }
  14728.  
  14729. internal function init2d():void
  14730. {
  14731. var loc1:*=null;
  14732. if (MovieVO.getChildAt(0).slideShow)
  14733. {
  14734. slideShow = new SlideShow(MovieVO.getChildAt(0).slideShow);
  14735. addChild(slideShow);
  14736. }
  14737. else
  14738. {
  14739. cover = new Sprite();
  14740. loc1 = new Bitmap(DataVO.getBmpData(MovieVO.getChildAt(0).img));
  14741. loc1.smoothing = false;
  14742. cover.addChild(loc1);
  14743. addChild(cover);
  14744. }
  14745. Bt = new Sprite();
  14746. CreateGraphic.to(Bt, {"width":442, "height":228, "alpha":0});
  14747. Bt.name = "btCoverPlay";
  14748. Bt.mouseChildren = false;
  14749. Bt.buttonMode = true;
  14750. if (MovieVO.getChildAt(0).illimited || MovieVO.getChildAt(0).rent || ConfigVO.page == ConfigVO.PAGE_MYVIDEOS)
  14751. {
  14752. btPlay = new CoverBtPlay();
  14753. }
  14754. else
  14755. {
  14756. btPlay = new CoverBtPlayExtrait();
  14757. }
  14758. btPlay.x = 221;
  14759. btPlay.y = 114;
  14760. Bt.addChild(btPlay);
  14761. addChild(Bt);
  14762. return;
  14763. }
  14764.  
  14765. internal function handler_vodeoPlayer_close(arg1:metabast.video.movieplayer.MoviePlayerEvent):void
  14766. {
  14767. vodeoPlayer.removeEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  14768. vodeoPlayer.removeEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  14769. waiting._hide();
  14770. if (slideShow)
  14771. {
  14772. slideShow.start();
  14773. }
  14774. return;
  14775. }
  14776.  
  14777. internal function actionPlay():void
  14778. {
  14779. var loc1:*=MovieVO.getChildAt(0);
  14780. if (slideShow)
  14781. {
  14782. slideShow.stop();
  14783. }
  14784. if (ConfigVO.netConnection)
  14785. {
  14786. validURL();
  14787. }
  14788. else
  14789. {
  14790. loc1.videoPath = loc1.path;
  14791. vodeoPlayer.addEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  14792. vodeoPlayer.addEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  14793. vodeoPlayer.show(MovieVO.getChildAt(0));
  14794. }
  14795. return;
  14796. }
  14797.  
  14798. internal function handler_added(arg1:flash.events.Event):void
  14799. {
  14800. var urlLoader:flash.net.URLLoader;
  14801. var ioErrorHandler:*;
  14802. var event:flash.events.Event;
  14803. var handler_urlLoader:*;
  14804.  
  14805. var loc1:*;
  14806. urlLoader = null;
  14807. handler_urlLoader = undefined;
  14808. ioErrorHandler = undefined;
  14809. event = arg1;
  14810. if (event.target == this)
  14811. {
  14812. removeEventListener(Event.ADDED, handler_added);
  14813. if (debugMode)
  14814. {
  14815. addChild(new Tracer(0, 0, 442, 228, {"imgLoad":true, "imgLoaded":true}));
  14816. Tracer.text("VodeoPlayerStandalone : 06-07-2010");
  14817. Tracer.text("flashvars : " + FlashVars._list());
  14818. }
  14819. if (stage.loaderInfo.parameters.data || stage.loaderInfo.parameters.dataUrl)
  14820. {
  14821. if (stage.loaderInfo.parameters.data)
  14822. {
  14823. init();
  14824. loadData(stage.loaderInfo.parameters.data);
  14825. }
  14826. else if (stage.loaderInfo.parameters.dataUrl)
  14827. {
  14828. handler_urlLoader = function (arg1:flash.events.Event):void
  14829. {
  14830. urlLoader.removeEventListener(Event.COMPLETE, handler_urlLoader);
  14831. urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
  14832. init();
  14833. loadData(urlLoader.data);
  14834. return;
  14835. }
  14836. ioErrorHandler = function (arg1:flash.events.IOErrorEvent):void
  14837. {
  14838. Tracer.text("ioErrorHandler: " + arg1.toString());
  14839. return;
  14840. }
  14841. urlLoader = new URLLoader();
  14842. urlLoader.addEventListener(Event.COMPLETE, handler_urlLoader);
  14843. urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
  14844. urlLoader.load(new URLRequest(stage.loaderInfo.parameters.dataUrl));
  14845. }
  14846. }
  14847. else
  14848. {
  14849. Tracer.text("flux xml manquant. Vérifier la flashvars \"data\".");
  14850. }
  14851. }
  14852. return;
  14853. }
  14854.  
  14855. internal function handler_sequenceProgress(arg1:DataLoaderEvent):void
  14856. {
  14857. var loc1:*=arg1.data.percent * 0.01;
  14858. preloaderMain.percent.text = String(uint(loc1 * 100)) + "%";
  14859. if (loc1 >= 0.95)
  14860. {
  14861. TweenLite.to(preloaderMain, 0.5, {"alpha":0, "ease":Linear.easeInOut});
  14862. }
  14863. return;
  14864. }
  14865.  
  14866. internal function handler_validURL(arg1:flash.events.Event):void
  14867. {
  14868. var loc1:*=null;
  14869. validAcces.removeEventListener(Event.COMPLETE, handler_validURL);
  14870. Tracer.text("Retour du fichier " + (MovieVO.getChildAt(0) as MovieVO).path + " : " + arg1.target.data);
  14871. if (arg1.target.data && !(arg1.target.data == "error"))
  14872. {
  14873. loc1 = Decrypt.to(arg1.target.data);
  14874. Tracer.text(loc1);
  14875. if (loc1 == "")
  14876. {
  14877. errorMsgBox._show(ConfigVO.wrongAccess);
  14878. Tracer.text("Adresse de la vidéo manquante ou érronnés");
  14879. }
  14880. else
  14881. {
  14882. MovieVO.getChildAt(0).videoPath = loc1;
  14883. if (vodeoPlayer.willTrigger(MoviePlayerEvent.CLOSE))
  14884. {
  14885. };
  14886. vodeoPlayer.addEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  14887. if (vodeoPlayer.willTrigger(NetStatusEvent.NET_STATUS))
  14888. {
  14889. };
  14890. vodeoPlayer.addEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  14891. vodeoPlayer.show(MovieVO.getChildAt(0));
  14892. Tracer.text("Decryptage du fichier " + (MovieVO.getChildAt(0) as MovieVO).path + " : " + loc1 + "\n");
  14893. }
  14894. }
  14895. return;
  14896. }
  14897.  
  14898. internal function handler_sequenceComplete(arg1:DataLoaderEvent):void
  14899. {
  14900. dataLoader.removeEventListener(DataLoaderEvent.SEQUENCE_COMPLETE, handler_sequenceComplete);
  14901. dataLoader.removeEventListener(DataLoaderEvent.PROGRESS, handler_sequenceProgress);
  14902. init2d();
  14903. initPlayer();
  14904. waiting = new Waiting(442, 228);
  14905. addChild(waiting);
  14906. errorMsgBox = new MsgBox(442, 228);
  14907. addChild(errorMsgBox);
  14908. if (debugMode)
  14909. {
  14910. removeChild(Tracer.instance);
  14911. addChild(Tracer.instance);
  14912. }
  14913. doubleClickEnabled = true;
  14914. vodeoPlayer.connect();
  14915. addEventListener(MouseEvent.MOUSE_OVER, handler_mouse);
  14916. if (FlashVars._resizable)
  14917. {
  14918. stage.addEventListener(Event.RESIZE, handler_resize);
  14919. stage.dispatchEvent(new Event(Event.RESIZE));
  14920. }
  14921. else
  14922. {
  14923. stage.addEventListener(FullScreenEvent.FULL_SCREEN, handler_fullscreen);
  14924. }
  14925. ExternalInterface.addCallback("ctrlPlayer", jsControl);
  14926. return;
  14927. }
  14928.  
  14929. internal function init():void
  14930. {
  14931. preloaderMain = new Loading();
  14932. addChild(preloaderMain);
  14933. if (!FlashVars._resizable)
  14934. {
  14935. preloaderMain.x = 442 * 0.5;
  14936. preloaderMain.y = 228 * 0.5;
  14937. }
  14938. return;
  14939. }
  14940.  
  14941. internal function initPlayer():void
  14942. {
  14943. vodeoPlayer = new VodeoPlayer({"width":442, "height":228, "toolbar":AeonPlayerToolbar, "bufferTime":4, "smoothing":true, "netConnection":ConfigVO.netConnection});
  14944. vodeoPlayer.alpha = 0;
  14945. vodeoPlayer.visible = false;
  14946. vodeoPlayer.mouseEnabled = false;
  14947. addChild(vodeoPlayer);
  14948. vodeoPlayer.addEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  14949. return;
  14950. }
  14951.  
  14952. public function switchFormat():void
  14953. {
  14954. vodeoPlayer.close();
  14955. setTimeout(actionPlay, 1000);
  14956. return;
  14957. }
  14958.  
  14959. internal function loadData(arg1:String):void
  14960. {
  14961. var item:XML;
  14962. var thumb:Array;
  14963. var $data:String;
  14964.  
  14965. var loc1:*;
  14966. thumb = null;
  14967. item = null;
  14968. $data = arg1;
  14969. try
  14970. {
  14971. DataVO.setData($data);
  14972. dataLoader = new DataLoader();
  14973. thumb = new Array();
  14974. thumb.push({"file":DataVO.getData().Trailers.Trailer[0].DocTrailerImagePath, "type":LoadableFileType.SWF});
  14975. loc2 = 0;
  14976. var loc3:*=DataVO.getData().Trailers.Trailer[0].SlideShow;
  14977. for each (item in loc3)
  14978. {
  14979. thumb.push({"file":item.@path, "type":LoadableFileType.SWF});
  14980. }
  14981. dataLoader.addEventListener(DataLoaderEvent.SEQUENCE_COMPLETE, handler_sequenceComplete);
  14982. dataLoader.addEventListener(DataLoaderEvent.PROGRESS, handler_sequenceProgress);
  14983. dataLoader.loadSequence(thumb);
  14984. }
  14985. catch (evt:Error)
  14986. {
  14987. Tracer.text("Arrêt du lecteur. Données défectueuses. Vérifier le flux xml.");
  14988. }
  14989. return;
  14990. }
  14991.  
  14992. internal function jsControl(arg1:String):void
  14993. {
  14994. var loc1:*=arg1;
  14995. switch (loc1)
  14996. {
  14997. case "play":
  14998. {
  14999. actionPlay();
  15000. break;
  15001. }
  15002. case "playPause":
  15003. {
  15004. actionPlayPause();
  15005. break;
  15006. }
  15007. case "stop":
  15008. {
  15009. vodeoPlayer.action(MoviePlayer.STOP);
  15010. break;
  15011. }
  15012. }
  15013. Tracer.text(arg1);
  15014. return;
  15015. }
  15016.  
  15017. internal function handler_mouse(arg1:flash.events.MouseEvent):void
  15018. {
  15019. if (arg1.type == MouseEvent.MOUSE_OVER)
  15020. {
  15021. addEventListener(MouseEvent.DOUBLE_CLICK, handler_mouse);
  15022. addEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  15023. addEventListener(MouseEvent.MOUSE_DOWN, handler_mouse, true, 1);
  15024. }
  15025. if (arg1.type == MouseEvent.DOUBLE_CLICK)
  15026. {
  15027. handler_mouse_doucle_click(arg1);
  15028. }
  15029. if (arg1.type == MouseEvent.MOUSE_OUT)
  15030. {
  15031. removeEventListener(MouseEvent.MOUSE_OUT, handler_mouse);
  15032. removeEventListener(MouseEvent.DOUBLE_CLICK, handler_mouse);
  15033. removeEventListener(MouseEvent.MOUSE_DOWN, handler_mouse);
  15034. }
  15035. if (arg1.type == MouseEvent.MOUSE_DOWN)
  15036. {
  15037. handler_mouse_down(arg1);
  15038. }
  15039. return;
  15040. }
  15041.  
  15042. internal function handler_fullscreen(arg1:flash.events.FullScreenEvent):void
  15043. {
  15044. vodeoPlayer.resize(arg1);
  15045. var loc1:*=stage.displayState;
  15046. switch (loc1)
  15047. {
  15048. case StageDisplayState.NORMAL:
  15049. {
  15050. waiting._resize(442, 228);
  15051. waiting.x = 0;
  15052. waiting.y = 0;
  15053. break;
  15054. }
  15055. case StageDisplayState.FULL_SCREEN:
  15056. {
  15057. waiting._resize(stage.stageWidth, stage.stageHeight);
  15058. waiting.x = 0;
  15059. waiting.y = 0;
  15060. break;
  15061. }
  15062. }
  15063. return;
  15064. }
  15065.  
  15066. internal function handler_resize(arg1:flash.events.Event):void
  15067. {
  15068. var loc1:*=null;
  15069. if (cover)
  15070. {
  15071. loc1 = cover;
  15072. }
  15073. if (slideShow)
  15074. {
  15075. loc1 = slideShow;
  15076. }
  15077. var loc2:*=stage.stageWidth / stage.stageHeight;
  15078. var loc3:*=loc1.width / loc1.height;
  15079. if (loc2 >= loc3)
  15080. {
  15081. loc1.height = stage.stageHeight;
  15082. loc1.scaleX = loc1.scaleY;
  15083. }
  15084. if (loc2 < loc3)
  15085. {
  15086. loc1.width = stage.stageWidth;
  15087. loc1.scaleY = loc1.scaleX;
  15088. }
  15089. loc1.x = stage.stageWidth * 0.5 - loc1.width * 0.5;
  15090. loc1.y = stage.stageHeight * 0.5 - loc1.height * 0.5;
  15091. if (vodeoPlayer._metaData && vodeoPlayer._metaData["width"])
  15092. {
  15093. vodeoPlayer._resizeNormal();
  15094. }
  15095. btPlay.x = stage.stageWidth * 0.5;
  15096. btPlay.y = stage.stageHeight * 0.5;
  15097. waiting._resize(stage.stageWidth, stage.stageHeight);
  15098. waiting.x = 0;
  15099. waiting.y = 0;
  15100. preloaderMain.x = btPlay.x;
  15101. preloaderMain.y = btPlay.y;
  15102. return;
  15103. }
  15104.  
  15105. internal function handler_mouse_doucle_click(arg1:flash.events.MouseEvent):void
  15106. {
  15107. if (stage.displayState != StageDisplayState.NORMAL)
  15108. {
  15109. stage.displayState = StageDisplayState.NORMAL;
  15110. }
  15111. else
  15112. {
  15113. stage.displayState = StageDisplayState.FULL_SCREEN;
  15114. }
  15115. return;
  15116. }
  15117.  
  15118. internal function actionPlayPause():void
  15119. {
  15120. var loc1:*=vodeoPlayer.getToolBar() as AeonPlayerToolbar;
  15121. if (loc1.moviePlayerStatus() != MoviePlayer.PLAY)
  15122. {
  15123. if (loc1.moviePlayerStatus() == MoviePlayer.PAUSE)
  15124. {
  15125. if (ConfigVO.netConnection)
  15126. {
  15127. validURL();
  15128. }
  15129. else
  15130. {
  15131. loc1.switchBtPlayPause();
  15132. }
  15133. }
  15134. }
  15135. else
  15136. {
  15137. loc1.switchBtPlayPause();
  15138. }
  15139. return;
  15140. }
  15141.  
  15142. internal function handler_mouse_down(arg1:flash.events.MouseEvent):void
  15143. {
  15144. var loc1:*=null;
  15145. if (arg1.target.name == "btCoverPlay")
  15146. {
  15147. actionPlay();
  15148. }
  15149. if (arg1.target.name == "btPlay")
  15150. {
  15151. if (ConfigVO.netConnection)
  15152. {
  15153. arg1.stopPropagation();
  15154. validURL();
  15155. }
  15156. }
  15157. if (arg1.target is UserPanelBtPlay || arg1.target is UserPanelBtPlayExtrait)
  15158. {
  15159. vodeoPlayer.addEventListener(MoviePlayerEvent.CLOSE, handler_vodeoPlayer_close);
  15160. vodeoPlayer.addEventListener(NetStatusEvent.NET_STATUS, handler_netStatus);
  15161. vodeoPlayer.show(MovieVO.getChildAt(0));
  15162. }
  15163. if (arg1.target.name == "VodeoPlayer_MouseZone")
  15164. {
  15165. loc1 = vodeoPlayer.getToolBar() as AeonPlayerToolbar;
  15166. if (loc1.moviePlayerStatus() != MoviePlayer.PLAY)
  15167. {
  15168. if (loc1.moviePlayerStatus() == MoviePlayer.PAUSE)
  15169. {
  15170. if (ConfigVO.netConnection)
  15171. {
  15172. validURL();
  15173. }
  15174. else
  15175. {
  15176. loc1.switchBtPlayPause();
  15177. }
  15178. }
  15179. }
  15180. else
  15181. {
  15182. loc1.switchBtPlayPause();
  15183. }
  15184. }
  15185. if (arg1.target is MsgBox)
  15186. {
  15187. errorMsgBox.hide();
  15188. }
  15189. CallJS.to(arg1.target as Sprite);
  15190. if (arg1.target.name == "BtId")
  15191. {
  15192. vodeoPlayer.minPlayed();
  15193. }
  15194. return;
  15195. }
  15196.  
  15197. internal function validURL(arg1:String="COVER_PLAY"):void
  15198. {
  15199. var loc1:*=null;
  15200. var loc3:*=null;
  15201. var loc4:*=null;
  15202. if (!validAcces)
  15203. {
  15204. validAcces = new URLLoader();
  15205. }
  15206. if (vodeoPlayer.getAeonToolbar().buttonDefinition && vodeoPlayer.getAeonToolbar().buttonDefinition.selectionLabel)
  15207. {
  15208. loc3 = vodeoPlayer.getAeonToolbar().buttonDefinition.selectionLabel;
  15209. loc4 = RandomKey.generate();
  15210. loc1 = new URLRequest((MovieVO.getChildAt(0) as MovieVO).path + "/" + loc4 + "/" + loc3);
  15211. }
  15212. else
  15213. {
  15214. loc1 = new URLRequest((MovieVO.getChildAt(0) as MovieVO).path + "/" + RandomKey.generate());
  15215. }
  15216. loc1.method = URLRequestMethod.POST;
  15217. validAcces.dataFormat = URLLoaderDataFormat.TEXT;
  15218. var loc2:*=new URLVariables();
  15219. loc2.id = (MovieVO.getChildAt(0) as MovieVO).id;
  15220. loc1.data = loc2;
  15221. if (arg1 == COVER_PLAY)
  15222. {
  15223. validAcces.addEventListener(Event.COMPLETE, handler_validURL);
  15224. }
  15225. validAcces.load(loc1);
  15226. return;
  15227. }
  15228.  
  15229. internal static const COVER_PLAY:String="COVER_PLAY";
  15230.  
  15231. internal var waiting:Waiting;
  15232.  
  15233. internal var slideShow:standalone.SlideShow;
  15234.  
  15235. internal var preloaderMain:Loading;
  15236.  
  15237. internal var validAcces:flash.net.URLLoader;
  15238.  
  15239. internal var debugMode:Boolean;
  15240.  
  15241. internal var dataLoader:DataLoader;
  15242.  
  15243. internal var Bt:flash.display.Sprite;
  15244.  
  15245. internal var vodeoPlayer:VodeoPlayer;
  15246.  
  15247. internal var cover:flash.display.Sprite;
  15248.  
  15249. internal var errorMsgBox:MsgBox;
  15250.  
  15251. internal var btPlay:flash.display.Sprite;
  15252. }
  15253. }
  15254.  
  15255.  
  15256. // class Waiting
  15257. package
  15258. {
  15259. import flash.display.*;
  15260. import metabast.display.*;
  15261.  
  15262. public class Waiting extends flash.display.Sprite
  15263. {
  15264. public function Waiting(arg1:uint=550, arg2:uint=400)
  15265. {
  15266. super();
  15267. name = "Waiting";
  15268. mouseChildren = false;
  15269. buttonMode = true;
  15270. bg = CreateGraphic.to(this, {"width":arg1, "height":arg2, "alpha":0, "color":16711680});
  15271. sablier = new Sablier();
  15272. sablier.x = arg1 * 0.5;
  15273. sablier.y = arg2 * 0.5;
  15274. addChild(sablier);
  15275. return;
  15276. }
  15277.  
  15278. public function _hide():void
  15279. {
  15280. visible = false;
  15281. sablier.stop();
  15282. return;
  15283. }
  15284.  
  15285. public function _resize(arg1:Number, arg2:Number):void
  15286. {
  15287. bg.width = arg1;
  15288. bg.height = arg2;
  15289. sablier.x = uint(arg1 * 0.5);
  15290. sablier.y = uint(arg2 * 0.5);
  15291. return;
  15292. }
  15293.  
  15294. public function _show():void
  15295. {
  15296. visible = true;
  15297. sablier.play();
  15298. return;
  15299. }
  15300.  
  15301. internal var bg:flash.display.Sprite;
  15302.  
  15303. internal var sablier:Sablier;
  15304. }
  15305. }
Add Comment
Please, Sign In to add comment