亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bszlib.pas

?? BusinessSkinForm Ver3.95 full source_漢化版_最新
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{ copy as much as possible from the sliding window to the output area }
function inflate_flush(var s : inflate_blocks_state;
                       var z : z_stream;
                       r : int) : int;

{ And'ing with mask[n] masks the lower n bits }
const
  inflate_mask : array[0..17-1] of uInt = (
    $0000,
    $0001, $0003, $0007, $000f, $001f, $003f, $007f, $00ff,
    $01ff, $03ff, $07ff, $0fff, $1fff, $3fff, $7fff, $ffff);

{procedure GRABBITS(j : int);}
{procedure DUMPBITS(j : int);}
{procedure NEEDBITS(j : int);}


const
  LENGTH_CODES = 29;
  LITERALS = 256;
  L_CODES = (LITERALS+1+LENGTH_CODES);
  D_CODES = 30;
  BL_CODES = 19;
  HEAP_SIZE = (2*L_CODES+1);
  MAX_BITS = 15;

  INIT_STATE =  42;
  BUSY_STATE =  113;
  FINISH_STATE = 666;

type
  ct_data_ptr = ^ct_data;
  ct_data = record
    fc : record
      case byte of
      0:(freq : ush);       { frequency count }
      1:(code : ush);       { bit string }
    end;
    dl : record
      case byte of
      0:(dad : ush);        { father node in Huffman tree }
      1:(len : ush);        { length of bit string }
    end;
  end;

  ltree_type = array[0..HEAP_SIZE-1] of ct_data;    { literal and length tree }
  dtree_type = array[0..2*D_CODES+1-1] of ct_data;  { distance tree }
  htree_type = array[0..2*BL_CODES+1-1] of ct_data;  { Huffman tree for bit lengths }
  { generic tree type }
  tree_type = array[0..(MaxInt div SizeOf(ct_data))-1] of ct_data;

  tree_ptr = ^tree_type;
  ltree_ptr = ^ltree_type;
  dtree_ptr = ^dtree_type;
  htree_ptr = ^htree_type;


  static_tree_desc_ptr = ^static_tree_desc;
  static_tree_desc =
         record
    {const} static_tree : tree_ptr;     { static tree or NIL }
    {const} extra_bits : pzIntfArray;   { extra bits for each code or NIL }
            extra_base : int;           { base index for extra_bits }
            elems : int;                { max number of elements in the tree }
            max_length : int;           { max bit length for the codes }
          end;

  tree_desc_ptr = ^tree_desc;
  tree_desc = record
    dyn_tree : tree_ptr;    { the dynamic tree }
    max_code : int;            { largest code with non zero frequency }
    stat_desc : static_tree_desc_ptr; { the corresponding static tree }
  end;

  Pos = ush;
  Posf = Pos; {FAR}
  IPos = uInt;

  pPosf = ^Posf;

  zPosfArray = array[0..(MaxInt div SizeOf(Posf))-1] of Posf;
  pzPosfArray = ^zPosfArray;

  deflate_state_ptr = ^deflate_state;
  deflate_state = record
    strm : z_streamp;          { pointer back to this zlib stream }
    status : int;              { as the name implies }
    pending_buf : pzByteArray; { output still pending }
    pending_buf_size : ulg;    { size of pending_buf }
    pending_out : pBytef;      { next pending byte to output to the stream }
    pending : int;             { nb of bytes in the pending buffer }
    noheader : int;            { suppress zlib header and adler32 }
    data_type : Byte;          { UNKNOWN, BINARY or ASCII }
    method : Byte;             { STORED (for zip only) or DEFLATED }
    last_flush : int;          { value of flush param for previous deflate call }


    w_size : uInt;             { LZ77 window size (32K by default) }
    w_bits : uInt;             { log2(w_size)  (8..16) }
    w_mask : uInt;             { w_size - 1 }

    window : pzByteArray;
    window_size : ulg;

    prev : pzPosfArray;

    head : pzPosfArray;    { Heads of the hash chains or NIL. }

    ins_h : uInt;          { hash index of string to be inserted }
    hash_size : uInt;      { number of elements in hash table }
    hash_bits : uInt;      { log2(hash_size) }
    hash_mask : uInt;      { hash_size-1 }

    hash_shift : uInt;

    block_start : long;

    match_length : uInt;           { length of best match }
    prev_match : IPos;             { previous match }
    match_available : boolean;     { set if previous match exists }
    strstart : uInt;               { start of string to insert }
    match_start : uInt;            { start of matching string }
    lookahead : uInt;              { number of valid bytes ahead in window }

    prev_length : uInt;

    max_chain_length : uInt;

    level : int;    { compression level (1..9) }
    strategy : int; { favor or force Huffman coding}

    good_match : uInt;

    nice_match : int; { Stop searching when current match exceeds this }

    dyn_ltree : ltree_type;    { literal and length tree }
    dyn_dtree : dtree_type;  { distance tree }
    bl_tree : htree_type;   { Huffman tree for bit lengths }

    l_desc : tree_desc;                { desc. for literal tree }
    d_desc : tree_desc;                { desc. for distance tree }
    bl_desc : tree_desc;               { desc. for bit length tree }

    bl_count : array[0..MAX_BITS+1-1] of ush;

    heap : array[0..2*L_CODES+1-1] of int; { heap used to build the Huffman trees }
    heap_len : int;                   { number of elements in the heap }
    heap_max : int;                   { element of largest frequency }

    depth : array[0..2*L_CODES+1-1] of uch;

    l_buf : puchfArray;       { buffer for literals or lengths }

    lit_bufsize : uInt;

    last_lit : uInt;      { running index in l_buf }

    d_buf : pushfArray;

    opt_len : ulg;        { bit length of current block with optimal trees }
    static_len : ulg;     { bit length of current block with static trees }
    compressed_len : ulg; { total bit length of compressed file }
    matches : uInt;       { number of string matches in current block }
    last_eob_len : int;   { bit length of EOB code for last block }

{$ifdef DEBUG}
    bits_sent : ulg;    { bit length of the compressed data }
{$endif}

    bi_buf : ush;

    bi_valid : int;

    case byte of
    0:(max_lazy_match : uInt);

    1:(max_insert_length : uInt);
  end;

procedure _tr_init (var s : deflate_state);

function _tr_tally (var s : deflate_state;
                    dist : unsigned;
                    lc : unsigned) : boolean;

function _tr_flush_block (var s : deflate_state;
                          buf : pcharf;
                          stored_len : ulg;
			  eof : boolean) : ulg;

procedure _tr_align(var s : deflate_state);

procedure _tr_stored_block(var s : deflate_state;
                           buf : pcharf;
                           stored_len : ulg;
                           eof : boolean);


implementation

{$IFDEF CALLDOS}
{ reduce your application memory footprint with $M before using this }
function dosAlloc (Size : Longint) : Pointer;
var
  regs: TRegisters;
begin
  regs.bx := (Size + 15) div 16; { number of 16-bytes-paragraphs }
  regs.ah := $48;                { Allocate memory block }
  msdos(regs);
  if regs.Flags and FCarry <> 0 then
    DosAlloc := NIL
  else
    DosAlloc := Ptr(regs.ax, 0);
end;


function dosFree(P : pointer) : boolean;
var
  regs: TRegisters;
begin
  dosFree := FALSE;
  regs.bx := Seg(P^);             { segment }
  if Ofs(P) <> 0 then
    exit;
  regs.ah := $49;                { Free memory block }
  msdos(regs);
  dosFree := (regs.Flags and FCarry = 0);
end;
{$ENDIF}

type
  LH = record
    L, H : word;
  end;

{$IFDEF HugeMem}
  {$define HEAP_LIST}
{$endif}

{$IFDEF HEAP_LIST} {--- to avoid Mark and Release --- }
const
  MaxAllocEntries = 50;
type
  TMemRec = record
    orgvalue,
    value : pointer;
    size: longint;
  end;
const
  allocatedCount : 0..MaxAllocEntries = 0;
var
  allocatedList : array[0..MaxAllocEntries-1] of TMemRec;

 function NewAllocation(ptr0, ptr : pointer; memsize : longint) : boolean;
 begin
   if (allocatedCount < MaxAllocEntries) and (ptr0 <> NIL) then
   begin
     with allocatedList[allocatedCount] do
     begin
       orgvalue := ptr0;
       value := ptr;
       size := memsize;
     end;
     Inc(allocatedCount);  { we don't check for duplicate }
     NewAllocation := TRUE;
   end
   else
     NewAllocation := FALSE;
 end;
{$ENDIF}

{$IFDEF HugeMem}

{ The code below is extremely version specific to the TP 6/7 heap manager!!}
type
  PFreeRec = ^TFreeRec;
  TFreeRec = record
    next: PFreeRec;
    size: Pointer;
  end;
type
  HugePtr = voidpf;


 procedure IncPtr(var p:pointer;count:word);
 { Increments pointer }
 begin
   inc(LH(p).L,count);
   if LH(p).L < count then
     inc(LH(p).H,SelectorInc);  { $1000 }
 end;

 procedure DecPtr(var p:pointer;count:word);
 { decrements pointer }
 begin
   if count > LH(p).L then
     dec(LH(p).H,SelectorInc);
   dec(LH(p).L,Count);
 end;

 procedure IncPtrLong(var p:pointer;count:longint);
 { Increments pointer; assumes count > 0 }
 begin
   inc(LH(p).H,SelectorInc*LH(count).H);
   inc(LH(p).L,LH(Count).L);
   if LH(p).L < LH(count).L then
     inc(LH(p).H,SelectorInc);
 end;

 procedure DecPtrLong(var p:pointer;count:longint);
 { Decrements pointer; assumes count > 0 }
 begin
   if LH(count).L > LH(p).L then
     dec(LH(p).H,SelectorInc);
   dec(LH(p).L,LH(Count).L);
   dec(LH(p).H,SelectorInc*LH(Count).H);
 end;
 { The next section is for real mode only }

function Normalized(p : pointer)  : pointer;
var
  count : word;
begin
  count := LH(p).L and $FFF0;
  Normalized := Ptr(LH(p).H + (count shr 4), LH(p).L and $F);
end;

procedure FreeHuge(var p:HugePtr; size : longint);
const
  blocksize = $FFF0;
var
  block : word;
begin
  while size > 0 do
  begin
    { block := minimum(size, blocksize); }
    if size > blocksize then
      block := blocksize
    else
      block := size;

    dec(size,block);
    freemem(p,block);
    IncPtr(p,block);    { we may get ptr($xxxx, $fff8) and 31 bytes left }
    p := Normalized(p); { to free, so we must normalize }
  end;
end;

function FreeMemHuge(ptr : pointer) : boolean;
var
  i : integer; { -1..MaxAllocEntries }
begin
  FreeMemHuge := FALSE;
  i := allocatedCount - 1;
  while (i >= 0) do
  begin
    if (ptr = allocatedList[i].value) then
    begin
      with allocatedList[i] do
        FreeHuge(orgvalue, size);

      Move(allocatedList[i+1], allocatedList[i],
           SizeOf(TMemRec)*(allocatedCount - 1 - i));
      Dec(allocatedCount);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产欧美日韩另类综合 | 精品国产欧美一区二区| 亚洲日本一区二区| 日韩免费一区二区| 欧美日韩精品专区| 99视频精品免费视频| 久久精品国产亚洲一区二区三区| 欧美视频一区二区三区在线观看 | 日韩精品中午字幕| 丁香六月综合激情| 日本一区二区成人在线| 欧美日韩欧美一区二区| 99精品一区二区三区| 国产在线视频精品一区| 免费成人结看片| 首页亚洲欧美制服丝腿| 亚洲欧美日韩国产另类专区| 国产肉丝袜一区二区| 日韩一级二级三级| 日韩视频在线一区二区| 337p亚洲精品色噜噜狠狠| 欧洲一区二区三区在线| 高清国产一区二区| 国产乱码一区二区三区| 1024成人网色www| 精品在线播放午夜| 国产剧情一区二区三区| 欧美亚洲自拍偷拍| 精品国产亚洲一区二区三区在线观看| 久久九九久精品国产免费直播| 久久久精品国产免大香伊| a级精品国产片在线观看| 91精品国产综合久久久久久| 中文字幕亚洲区| 国产乱国产乱300精品| 亚洲国产精品一区二区www在线| 欧美一区欧美二区| 日韩免费电影一区| 亚洲精品一区二区三区蜜桃下载| 日韩三级免费观看| 色综合网色综合| **网站欧美大片在线观看| 97久久精品人人爽人人爽蜜臀| 欧美激情一二三区| av不卡一区二区三区| 国产一区二区三区不卡在线观看| 性做久久久久久久久| 香蕉乱码成人久久天堂爱免费| 日韩avvvv在线播放| 日韩中文字幕区一区有砖一区 | 五月婷婷欧美视频| 久久久99久久精品欧美| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲一区免费视频| 亚洲专区一二三| 午夜精品福利久久久| 久久se精品一区二区| 成人小视频免费在线观看| 97se狠狠狠综合亚洲狠狠| 色一情一乱一乱一91av| 91精品在线麻豆| 99在线热播精品免费| 一本久道久久综合中文字幕 | 成人精品一区二区三区四区| 91精品麻豆日日躁夜夜躁| 综合色中文字幕| 不卡电影一区二区三区| 久久久久97国产精华液好用吗| 亚洲国产精品一区二区www在线| 91色在线porny| 国产激情精品久久久第一区二区| 日本久久精品电影| 日韩美女久久久| 国产a级毛片一区| 蜜臀国产一区二区三区在线播放| 欧美日韩一级片网站| 中文字幕制服丝袜一区二区三区 | 久久成人免费网| 欧美一区二区三区系列电影| 亚洲在线视频一区| 懂色av一区二区三区免费观看| 久久午夜羞羞影院免费观看| 麻豆精品一区二区av白丝在线| 538在线一区二区精品国产| 日韩成人精品在线| 欧美色图天堂网| 日韩电影一区二区三区四区| 欧美一卡2卡三卡4卡5免费| 日本免费在线视频不卡一不卡二| 欧美精品视频www在线观看| 亚洲午夜久久久久久久久电影网| 91小视频免费观看| 亚洲一区二区三区视频在线播放| 在线观看视频一区二区| 蜜臀精品久久久久久蜜臀| 欧美成人三级电影在线| 丁香婷婷深情五月亚洲| 国产午夜久久久久| 在线观看一区二区视频| 三级一区在线视频先锋| 久久久国产午夜精品| 色综合天天综合在线视频| 亚洲成人精品影院| 久久先锋影音av鲁色资源网| 91在线国产福利| 美女尤物国产一区| 国产精品嫩草久久久久| 欧美在线观看视频一区二区三区 | 色综合天天综合给合国产| 一区二区三区波多野结衣在线观看| 色噜噜狠狠色综合中国| 日韩va欧美va亚洲va久久| 精品国产sm最大网站免费看| 岛国av在线一区| 日韩电影在线免费观看| 中文字幕不卡三区| 日韩午夜在线观看| 91视频在线观看| 久久国产生活片100| 夜夜爽夜夜爽精品视频| 欧美大片一区二区三区| 色综合婷婷久久| 国产一区免费电影| 亚洲国产精品综合小说图片区| 777色狠狠一区二区三区| 国产精品一级黄| 亚洲a一区二区| 中文字幕在线观看一区| 日韩精品影音先锋| 欧美日韩国产精选| 91亚洲精品久久久蜜桃网站| 国产精品一区二区久久精品爱涩| 亚洲午夜一区二区| 亚洲精品乱码久久久久久黑人| 日韩视频123| 91麻豆精品国产91久久久| 欧美在线观看禁18| av午夜一区麻豆| 久久精品久久99精品久久| 亚洲国产中文字幕| 亚洲精品高清在线| 亚洲女同女同女同女同女同69| 中文字幕av一区二区三区高| 亚洲精品一线二线三线| 91精品国产综合久久婷婷香蕉| 欧美性猛交xxxx黑人交| 色噜噜狠狠色综合中国| 91免费在线播放| 97久久超碰精品国产| 国产高清精品在线| 精品一区二区av| 蜜桃精品在线观看| 夜夜精品视频一区二区| 国产拍欧美日韩视频二区| 久久亚洲精华国产精华液| 精品久久久久av影院| 久久久久国产一区二区三区四区 | 国产亚洲精品精华液| www成人在线观看| 久久噜噜亚洲综合| 国产亚洲短视频| 国产精品三级视频| 国产精品久久久久一区二区三区 | 天天综合网 天天综合色| 亚洲成a人片在线观看中文| 香蕉成人啪国产精品视频综合网 | 毛片av中文字幕一区二区| 久久爱另类一区二区小说| 国产麻豆视频精品| 成人avav影音| 日本丰满少妇一区二区三区| 欧美巨大另类极品videosbest | 欧美一区二区三区喷汁尤物| 制服丝袜在线91| 久久久久9999亚洲精品| 国产精品第13页| 午夜欧美在线一二页| 国产老肥熟一区二区三区| 丰满岳乱妇一区二区三区| 色8久久精品久久久久久蜜| 777久久久精品| 国产精品理论在线观看| 国产精品不卡在线| 91精品国产91热久久久做人人| 欧美午夜理伦三级在线观看| 欧美精品xxxxbbbb| 国产色产综合产在线视频| 亚洲精品国产第一综合99久久 | 人人狠狠综合久久亚洲| 国产福利一区在线观看| 91丨porny丨中文| 欧美精品一区二区三区高清aⅴ | 欧美极品美女视频| 午夜欧美电影在线观看| 成人性生交大片| 9191成人精品久久| 亚洲欧美在线视频观看| 蜜臀va亚洲va欧美va天堂| 成人在线一区二区三区| 日韩欧美国产wwwww|