# BlockActivity_View_BlockBoardView_1526.luac
; fn @BlockBoardView.lua  line 0-0 np=0 va=1 ms=2 code=173 consts=61 upvals=1 protos=55
;   K[0]='BlockBoardView'
;   K[1]='TileSize'
;   K[2]=106
;   K[3]='Spacing'
;   K[4]=2.5
;   K[5]='__index'
;   K[6]='Init'
;   K[7]='_Init'
;   K[8]='_AddListeners'
;   K[9]='OnDestroy'
;   K[10]='GetModel'
;   K[11]='_LoadTiles'
;   K[12]='_UpdateCubeView'
;   K[13]='_LoadItemView'
;   K[14]='_UpdateContentSize'
;   K[15]='XY2Index'
;   K[16]='Index2XY'
;   K[17]='GetAnchoredPositionByXY'
;   K[18]='GetAnchoredPosX'
;   K[19]='GetAnchoredPosY'
;   K[20]='GetCenterAnchoredPosition'
;   K[21]='GetBoardRealSize'
;   K[22]='GetWorldPositionByLocalPos'
;   K[23]='OnPointerDown'
;   K[24]='OnPointerUp'
;   K[25]='OnDrag'
;   K[26]='ResetSelectItemView'
;   K[27]='UpdateItemViewByScreenPos'
;   K[28]='_SetItemViewInSelectArea'
;   K[29]='_SelectItemView'
;   K[30]='_AdsorbBlockItem'
;   K[31]='_UpdateShadowCube'
;   K[32]='_UpdateCubeBgEffect'
;   K[33]='_ResetCubeBgEffect'
;   K[34]='_GetAdsorbBoardMatrixPos'
;   K[35]='IsCubeOverlap'
;   K[36]='_OnPlaceBlockItem'
;   K[37]='_OnAddBlockItem'
;   K[38]='_OnRemoveBoardCube'
;   K[39]='_OnAddScore'
;   K[40]='_OnOpenView'
;   K[41]='GetBlockSlider'
;   K[42]='InitProgressSlider'
;   K[43]='PlayAcquireScoreAnim'
;   K[44]='IsPlayingRewardAnim'
;   K[45]='IsPlayingScoreAnim'
;   K[46]='PlayRoundFinishedAnim'
;   K[47]='PlayExitAnim'
;   K[48]='PlayEnterAnim'
;   K[49]='GetBehindEffectContentRect'
;   K[50]='GetBlockItemViewByIndex'
;   K[51]='CreateBlockItemViewForTutorial'
;   K[52]='SetTutorialForceDragItemIndex'
;   K[53]='SetTutorialForceDragBoardPos'
;   K[54]='_LogAction'
;   K[55]='_OnViewChanged'
;   K[56]='_OnTestAddCube'
;   K[57]='_OnTestRemoveCube'
;   K[58]='_OnTestAddBlockItem'
;   K[59]='_OnTestRefreshBoard'
;   K[60]='_UpdateTestText'
;   upvals: _ENV
0000  NEWTABLE  R0 = {} (0 items)
0001  SETTABLE  R0[K1('TileSize')] = K2(106)
0002  SETTABLE  R0[K3('Spacing')] = K4(2.5)
0003  SETTABUP  _ENV[K0('BlockBoardView')] = R0
0004  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0005  GETTABUP  R1 = _ENV[K0('BlockBoardView')]
0006  SETTABLE  R0[K5('__index')] = R1
0007  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0008  CLOSURE   R1 = closure proto0
0009  SETTABLE  R0[K6('Init')] = R1
0010  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0011  CLOSURE   R1 = closure proto1
0012  SETTABLE  R0[K7('_Init')] = R1
0013  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0014  CLOSURE   R1 = closure proto2
0015  SETTABLE  R0[K8('_AddListeners')] = R1
0016  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0017  CLOSURE   R1 = closure proto3
0018  SETTABLE  R0[K9('OnDestroy')] = R1
0019  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0020  CLOSURE   R1 = closure proto4
0021  SETTABLE  R0[K10('GetModel')] = R1
0022  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0023  CLOSURE   R1 = closure proto5
0024  SETTABLE  R0[K11('_LoadTiles')] = R1
0025  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0026  CLOSURE   R1 = closure proto6
0027  SETTABLE  R0[K12('_UpdateCubeView')] = R1
0028  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0029  CLOSURE   R1 = closure proto7
0030  SETTABLE  R0[K13('_LoadItemView')] = R1
0031  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0032  CLOSURE   R1 = closure proto8
0033  SETTABLE  R0[K14('_UpdateContentSize')] = R1
0034  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0035  CLOSURE   R1 = closure proto9
0036  SETTABLE  R0[K15('XY2Index')] = R1
0037  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0038  CLOSURE   R1 = closure proto10
0039  SETTABLE  R0[K16('Index2XY')] = R1
0040  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0041  CLOSURE   R1 = closure proto11
0042  SETTABLE  R0[K17('GetAnchoredPositionByXY')] = R1
0043  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0044  CLOSURE   R1 = closure proto12
0045  SETTABLE  R0[K18('GetAnchoredPosX')] = R1
0046  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0047  CLOSURE   R1 = closure proto13
0048  SETTABLE  R0[K19('GetAnchoredPosY')] = R1
0049  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0050  CLOSURE   R1 = closure proto14
0051  SETTABLE  R0[K20('GetCenterAnchoredPosition')] = R1
0052  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0053  CLOSURE   R1 = closure proto15
0054  SETTABLE  R0[K21('GetBoardRealSize')] = R1
0055  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0056  CLOSURE   R1 = closure proto16
0057  SETTABLE  R0[K22('GetWorldPositionByLocalPos')] = R1
0058  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0059  CLOSURE   R1 = closure proto17
0060  SETTABLE  R0[K23('OnPointerDown')] = R1
0061  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0062  CLOSURE   R1 = closure proto18
0063  SETTABLE  R0[K24('OnPointerUp')] = R1
0064  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0065  CLOSURE   R1 = closure proto19
0066  SETTABLE  R0[K25('OnDrag')] = R1
0067  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0068  CLOSURE   R1 = closure proto20
0069  SETTABLE  R0[K26('ResetSelectItemView')] = R1
0070  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0071  CLOSURE   R1 = closure proto21
0072  SETTABLE  R0[K27('UpdateItemViewByScreenPos')] = R1
0073  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0074  CLOSURE   R1 = closure proto22
0075  SETTABLE  R0[K28('_SetItemViewInSelectArea')] = R1
0076  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0077  CLOSURE   R1 = closure proto23
0078  SETTABLE  R0[K29('_SelectItemView')] = R1
0079  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0080  CLOSURE   R1 = closure proto24
0081  SETTABLE  R0[K30('_AdsorbBlockItem')] = R1
0082  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0083  CLOSURE   R1 = closure proto25
0084  SETTABLE  R0[K31('_UpdateShadowCube')] = R1
0085  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0086  CLOSURE   R1 = closure proto26
0087  SETTABLE  R0[K32('_UpdateCubeBgEffect')] = R1
0088  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0089  CLOSURE   R1 = closure proto27
0090  SETTABLE  R0[K33('_ResetCubeBgEffect')] = R1
0091  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0092  CLOSURE   R1 = closure proto28
0093  SETTABLE  R0[K34('_GetAdsorbBoardMatrixPos')] = R1
0094  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0095  CLOSURE   R1 = closure proto29
0096  SETTABLE  R0[K35('IsCubeOverlap')] = R1
0097  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0098  CLOSURE   R1 = closure proto30
0099  SETTABLE  R0[K36('_OnPlaceBlockItem')] = R1
0100  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0101  CLOSURE   R1 = closure proto31
0102  SETTABLE  R0[K37('_OnAddBlockItem')] = R1
0103  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0104  CLOSURE   R1 = closure proto32
0105  SETTABLE  R0[K38('_OnRemoveBoardCube')] = R1
0106  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0107  CLOSURE   R1 = closure proto33
0108  SETTABLE  R0[K39('_OnAddScore')] = R1
0109  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0110  CLOSURE   R1 = closure proto34
0111  SETTABLE  R0[K40('_OnOpenView')] = R1
0112  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0113  CLOSURE   R1 = closure proto35
0114  SETTABLE  R0[K41('GetBlockSlider')] = R1
0115  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0116  CLOSURE   R1 = closure proto36
0117  SETTABLE  R0[K42('InitProgressSlider')] = R1
0118  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0119  CLOSURE   R1 = closure proto37
0120  SETTABLE  R0[K43('PlayAcquireScoreAnim')] = R1
0121  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0122  CLOSURE   R1 = closure proto38
0123  SETTABLE  R0[K44('IsPlayingRewardAnim')] = R1
0124  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0125  CLOSURE   R1 = closure proto39
0126  SETTABLE  R0[K45('IsPlayingScoreAnim')] = R1
0127  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0128  CLOSURE   R1 = closure proto40
0129  SETTABLE  R0[K46('PlayRoundFinishedAnim')] = R1
0130  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0131  CLOSURE   R1 = closure proto41
0132  SETTABLE  R0[K47('PlayExitAnim')] = R1
0133  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0134  CLOSURE   R1 = closure proto42
0135  SETTABLE  R0[K48('PlayEnterAnim')] = R1
0136  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0137  CLOSURE   R1 = closure proto43
0138  SETTABLE  R0[K49('GetBehindEffectContentRect')] = R1
0139  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0140  CLOSURE   R1 = closure proto44
0141  SETTABLE  R0[K50('GetBlockItemViewByIndex')] = R1
0142  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0143  CLOSURE   R1 = closure proto45
0144  SETTABLE  R0[K51('CreateBlockItemViewForTutorial')] = R1
0145  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0146  CLOSURE   R1 = closure proto46
0147  SETTABLE  R0[K52('SetTutorialForceDragItemIndex')] = R1
0148  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0149  CLOSURE   R1 = closure proto47
0150  SETTABLE  R0[K53('SetTutorialForceDragBoardPos')] = R1
0151  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0152  CLOSURE   R1 = closure proto48
0153  SETTABLE  R0[K54('_LogAction')] = R1
0154  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0155  CLOSURE   R1 = closure proto49
0156  SETTABLE  R0[K55('_OnViewChanged')] = R1
0157  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0158  CLOSURE   R1 = closure proto50
0159  SETTABLE  R0[K56('_OnTestAddCube')] = R1
0160  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0161  CLOSURE   R1 = closure proto51
0162  SETTABLE  R0[K57('_OnTestRemoveCube')] = R1
0163  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0164  CLOSURE   R1 = closure proto52
0165  SETTABLE  R0[K58('_OnTestAddBlockItem')] = R1
0166  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0167  CLOSURE   R1 = closure proto53
0168  SETTABLE  R0[K59('_OnTestRefreshBoard')] = R1
0169  GETTABUP  R0 = _ENV[K0('BlockBoardView')]
0170  CLOSURE   R1 = closure proto54
0171  SETTABLE  R0[K60('_UpdateTestText')] = R1
0172  RETURN    return R0..R-1
; ---------- proto0 [Init] ----------
  ; fn ?  line 11-26 np=3 va=0 ms=6 code=36 consts=14 upvals=1 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]='m_pairEvent'
  ;   K[2]='GetPairEvent'
  ;   K[3]='m_mapScoreSeq'
  ;   K[4]='UIUtil'
  ;   K[5]='SetActive'
  ;   K[6]='m_blockPromptText'
  ;   K[7]='gameObject'
  ;   K[8]='m_blockFlyScoreItem'
  ;   K[9]='m_blockCubeViewGo'
  ;   K[10]='m_blockRoundBox'
  ;   K[11]='InitProgressSlider'
  ;   K[12]='_Init'
  ;   K[13]='_AddListeners'
  ;   upvals: _ENV
  ;   locals: self(0-36), boardModel(0-36), sortingOrder(0-36)
  0000  SETTABLE  R0[K0('m_boardModel')] = R1
  0001  SELF      R4 = R1[K2('GetPairEvent')] (self)
  0002  CALL      R3 = call(R3, 1 args, 1 rets)
  0003  SETTABLE  R0[K1('m_pairEvent')] = R3
  0004  NEWTABLE  R3 = {} (0 items)
  0005  SETTABLE  R0[K3('m_mapScoreSeq')] = R3
  0006  GETTABUP  R3 = _ENV[K4('UIUtil')]
  0007  GETTABLE  R3 = R3[K5('SetActive')]
  0008  GETTABLE  R4 = R0[K6('m_blockPromptText')]
  0009  GETTABLE  R4 = R4[K7('gameObject')]
  0010  LOADBOOL  R5 = false
  0011  CALL      R3 = call(R3, 0 args, 2 rets)
  0012  GETTABUP  R3 = _ENV[K4('UIUtil')]
  0013  GETTABLE  R3 = R3[K5('SetActive')]
  0014  GETTABLE  R4 = R0[K8('m_blockFlyScoreItem')]
  0015  GETTABLE  R4 = R4[K7('gameObject')]
  0016  LOADBOOL  R5 = false
  0017  CALL      R3 = call(R3, 0 args, 2 rets)
  0018  GETTABUP  R3 = _ENV[K4('UIUtil')]
  0019  GETTABLE  R3 = R3[K5('SetActive')]
  0020  GETTABLE  R4 = R0[K9('m_blockCubeViewGo')]
  0021  LOADBOOL  R5 = false
  0022  CALL      R3 = call(R3, 0 args, 2 rets)
  0023  GETTABUP  R3 = _ENV[K4('UIUtil')]
  0024  GETTABLE  R3 = R3[K5('SetActive')]
  0025  GETTABLE  R4 = R0[K10('m_blockRoundBox')]
  0026  GETTABLE  R4 = R4[K7('gameObject')]
  0027  LOADBOOL  R5 = false
  0028  CALL      R3 = call(R3, 0 args, 2 rets)
  0029  SELF      R4 = R0[K11('InitProgressSlider')] (self)
  0030  CALL      R3 = call(R3, 0 args, 1 rets)
  0031  SELF      R4 = R0[K12('_Init')] (self)
  0032  CALL      R3 = call(R3, 0 args, 1 rets)
  0033  SELF      R4 = R0[K13('_AddListeners')] (self)
  0034  CALL      R3 = call(R3, 0 args, 1 rets)
  0035  RETURN    return R0..R-1
; ---------- proto1 [_Init] ----------
  ; fn ?  line 28-45 np=1 va=0 ms=6 code=33 consts=16 upvals=0 protos=0
  ;   K[0]='m_boardHeight'
  ;   K[1]='m_boardModel'
  ;   K[2]='GetVerticalTiles'
  ;   K[3]='m_boardWidth'
  ;   K[4]='GetHorizontalTiles'
  ;   K[5]='_LoadTiles'
  ;   K[6]='_UpdateCubeView'
  ;   K[7]='m_boardRootRect'
  ;   K[8]='anchoredPosition'
  ;   K[9]='GetCenterAnchoredPosition'
  ;   K[10]='_UpdateContentSize'
  ;   K[11]='_LoadItemView'
  ;   K[12]=8
  ;   K[13]='m_blockRoundBox'
  ;   K[14]='Init'
  ;   K[15]='GetRound'
  ;   locals: self(0-33), scale(25-33)
  0000  GETTABLE  R1 = R0[K1('m_boardModel')]
  0001  SELF      R2 = R1[K2('GetVerticalTiles')] (self)
  0002  CALL      R1 = call(R1, 1 args, 1 rets)
  0003  SETTABLE  R0[K0('m_boardHeight')] = R1
  0004  GETTABLE  R1 = R0[K1('m_boardModel')]
  0005  SELF      R2 = R1[K4('GetHorizontalTiles')] (self)
  0006  CALL      R1 = call(R1, 1 args, 1 rets)
  0007  SETTABLE  R0[K3('m_boardWidth')] = R1
  0008  SELF      R2 = R0[K5('_LoadTiles')] (self)
  0009  CALL      R1 = call(R1, 0 args, 1 rets)
  0010  SELF      R2 = R0[K6('_UpdateCubeView')] (self)
  0011  CALL      R1 = call(R1, 0 args, 1 rets)
  0012  GETTABLE  R1 = R0[K7('m_boardRootRect')]
  0013  SELF      R3 = R0[K9('GetCenterAnchoredPosition')] (self)
  0014  CALL      R2 = call(R2, 1 args, 1 rets)
  0015  UNM       R2 = unm R0
  0016  SETTABLE  R1[K8('anchoredPosition')] = R2
  0017  SELF      R2 = R0[K10('_UpdateContentSize')] (self)
  0018  CALL      R1 = call(R1, 0 args, 1 rets)
  0019  SELF      R2 = R0[K11('_LoadItemView')] (self)
  0020  CALL      R1 = call(R1, 0 args, 1 rets)
  0021  GETTABLE  R1 = R0[K1('m_boardModel')]
  0022  SELF      R2 = R1[K4('GetHorizontalTiles')] (self)
  0023  CALL      R1 = call(R1, 1 args, 1 rets)
  0024  DIV       R1 = K12(8) div R1
  0025  GETTABLE  R2 = R0[K13('m_blockRoundBox')]
  0026  SELF      R3 = R2[K14('Init')] (self)
  0027  GETTABLE  R4 = R0[K1('m_boardModel')]
  0028  SELF      R5 = R4[K15('GetRound')] (self)
  0029  CALL      R4 = call(R4, 1 args, 1 rets)
  0030  MOVE      R5 = R0
  0031  CALL      R2 = call(R2, 0 args, 3 rets)
  0032  RETURN    return R0..R-1
; ---------- proto2 [_AddListeners] ----------
  ; fn ?  line 47-81 np=1 va=0 ms=6 code=80 consts=26 upvals=1 protos=0
  ;   K[0]='AddHandlerAndRecordMap'
  ;   K[1]='m_pairEvent'
  ;   K[2]='EBlockBoardEventType'
  ;   K[3]='PlaceBlockItem'
  ;   K[4]='obj'
  ;   K[5]='method'
  ;   K[6]='_OnPlaceBlockItem'
  ;   K[7]='AddBlockItem'
  ;   K[8]='_OnAddBlockItem'
  ;   K[9]='RemoveBoardCube'
  ;   K[10]='_OnRemoveBoardCube'
  ;   K[11]='AddScore'
  ;   K[12]='_OnAddScore'
  ;   K[13]='TestAddCube'
  ;   K[14]='_OnTestAddCube'
  ;   K[15]='TestRemoveCube'
  ;   K[16]='_OnTestRemoveCube'
  ;   K[17]='TestAddBlockItem'
  ;   K[18]='_OnTestAddBlockItem'
  ;   K[19]='TestRefreshBoard'
  ;   K[20]='_OnTestRefreshBoard'
  ;   K[21]='EventDispatcher'
  ;   K[22]='AddListener'
  ;   K[23]='EEventType'
  ;   K[24]='OpenView'
  ;   K[25]='_OnOpenView'
  ;   upvals: _ENV
  ;   locals: self(0-80)
  0000  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0001  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0002  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0003  GETTABLE  R3 = R3[K3('PlaceBlockItem')]
  0004  NEWTABLE  R4 = {} (0 items)
  0005  SETTABLE  R4[K4('obj')] = R0
  0006  GETTABLE  R5 = R0[K6('_OnPlaceBlockItem')]
  0007  SETTABLE  R4[K5('method')] = R5
  0008  CALL      R1 = call(R1, 0 args, 3 rets)
  0009  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0010  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0011  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0012  GETTABLE  R3 = R3[K7('AddBlockItem')]
  0013  NEWTABLE  R4 = {} (0 items)
  0014  SETTABLE  R4[K4('obj')] = R0
  0015  GETTABLE  R5 = R0[K8('_OnAddBlockItem')]
  0016  SETTABLE  R4[K5('method')] = R5
  0017  CALL      R1 = call(R1, 0 args, 3 rets)
  0018  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0019  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0020  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0021  GETTABLE  R3 = R3[K9('RemoveBoardCube')]
  0022  NEWTABLE  R4 = {} (0 items)
  0023  SETTABLE  R4[K4('obj')] = R0
  0024  GETTABLE  R5 = R0[K10('_OnRemoveBoardCube')]
  0025  SETTABLE  R4[K5('method')] = R5
  0026  CALL      R1 = call(R1, 0 args, 3 rets)
  0027  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0028  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0029  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0030  GETTABLE  R3 = R3[K11('AddScore')]
  0031  NEWTABLE  R4 = {} (0 items)
  0032  SETTABLE  R4[K4('obj')] = R0
  0033  GETTABLE  R5 = R0[K12('_OnAddScore')]
  0034  SETTABLE  R4[K5('method')] = R5
  0035  CALL      R1 = call(R1, 0 args, 3 rets)
  0036  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0037  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0038  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0039  GETTABLE  R3 = R3[K13('TestAddCube')]
  0040  NEWTABLE  R4 = {} (0 items)
  0041  SETTABLE  R4[K4('obj')] = R0
  0042  GETTABLE  R5 = R0[K14('_OnTestAddCube')]
  0043  SETTABLE  R4[K5('method')] = R5
  0044  CALL      R1 = call(R1, 0 args, 3 rets)
  0045  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0046  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0047  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0048  GETTABLE  R3 = R3[K15('TestRemoveCube')]
  0049  NEWTABLE  R4 = {} (0 items)
  0050  SETTABLE  R4[K4('obj')] = R0
  0051  GETTABLE  R5 = R0[K16('_OnTestRemoveCube')]
  0052  SETTABLE  R4[K5('method')] = R5
  0053  CALL      R1 = call(R1, 0 args, 3 rets)
  0054  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0055  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0056  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0057  GETTABLE  R3 = R3[K17('TestAddBlockItem')]
  0058  NEWTABLE  R4 = {} (0 items)
  0059  SETTABLE  R4[K4('obj')] = R0
  0060  GETTABLE  R5 = R0[K18('_OnTestAddBlockItem')]
  0061  SETTABLE  R4[K5('method')] = R5
  0062  CALL      R1 = call(R1, 0 args, 3 rets)
  0063  GETTABUP  R1 = _ENV[K0('AddHandlerAndRecordMap')]
  0064  GETTABLE  R2 = R0[K1('m_pairEvent')]
  0065  GETTABUP  R3 = _ENV[K2('EBlockBoardEventType')]
  0066  GETTABLE  R3 = R3[K19('TestRefreshBoard')]
  0067  NEWTABLE  R4 = {} (0 items)
  0068  SETTABLE  R4[K4('obj')] = R0
  0069  GETTABLE  R5 = R0[K20('_OnTestRefreshBoard')]
  0070  SETTABLE  R4[K5('method')] = R5
  0071  CALL      R1 = call(R1, 0 args, 3 rets)
  0072  GETTABUP  R1 = _ENV[K21('EventDispatcher')]
  0073  GETTABLE  R1 = R1[K22('AddListener')]
  0074  GETTABUP  R2 = _ENV[K23('EEventType')]
  0075  GETTABLE  R2 = R2[K24('OpenView')]
  0076  MOVE      R3 = R0
  0077  GETTABLE  R4 = R0[K25('_OnOpenView')]
  0078  CALL      R1 = call(R1, 0 args, 3 rets)
  0079  RETURN    return R0..R-1
; ---------- proto3 [OnDestroy] ----------
  ; fn ?  line 83-103 np=1 va=0 ms=8 code=37 consts=11 upvals=1 protos=0
  ;   K[0]='EventDispatcher'
  ;   K[1]='RemoveTarget'
  ;   K[2]='GM'
  ;   K[3]='UIManager'
  ;   K[4]='RemoveAllEventLocks'
  ;   K[5]='m_mapScoreSeq'
  ;   K[6]=nil
  ;   K[7]='pairs'
  ;   K[8]='Kill'
  ;   K[9]='m_exitSeq'
  ;   K[10]='m_enterSeq'
  ;   upvals: _ENV
  ;   locals: self(0-37), (for generator)(15-20), (for state)(15-20), (for control)(15-20), seq(16-18), _(16-18)
  0000  GETTABUP  R1 = _ENV[K0('EventDispatcher')]
  0001  GETTABLE  R1 = R1[K1('RemoveTarget')]
  0002  MOVE      R2 = R0
  0003  CALL      R1 = call(R1, 0 args, 1 rets)
  0004  GETTABUP  R1 = _ENV[K2('GM')]
  0005  GETTABLE  R1 = R1[K3('UIManager')]
  0006  SELF      R2 = R1[K4('RemoveAllEventLocks')] (self)
  0007  MOVE      R3 = R0
  0008  CALL      R1 = call(R1, 0 args, 2 rets)
  0009  GETTABLE  R1 = R0[K5('m_mapScoreSeq')]
  0010  EQ        if R1 eq K6(nil)   -> -130286
  0011  JMP       (jump)   -> 22
  0012  GETTABUP  R1 = _ENV[K7('pairs')]
  0013  GETTABLE  R2 = R0[K5('m_mapScoreSeq')]
  0014  CALL      R1 = call(R1, 3 args, 1 rets)
  0015  JMP       (jump)   -> 18
  0016  SELF      R7 = R4[K8('Kill')] (self)
  0017  CALL      R6 = call(R6, 0 args, 1 rets)
  0018  TFORCALL  tforcall R1
  0019  TFORLOOP  tforloop R3(sBx=-4)   -> 16
  0020  NEWTABLE  R1 = {} (0 items)
  0021  SETTABLE  R0[K5('m_mapScoreSeq')] = R1
  0022  GETTABLE  R1 = R0[K9('m_exitSeq')]
  0023  EQ        if R1 eq K6(nil)   -> -130273
  0024  JMP       (jump)   -> 29
  0025  GETTABLE  R1 = R0[K9('m_exitSeq')]
  0026  SELF      R2 = R1[K8('Kill')] (self)
  0027  CALL      R1 = call(R1, 0 args, 1 rets)
  0028  SETTABLE  R0[K9('m_exitSeq')] = K6(nil)
  0029  GETTABLE  R1 = R0[K10('m_enterSeq')]
  0030  EQ        if R1 eq K6(nil)   -> -130266
  0031  JMP       (jump)   -> 36
  0032  GETTABLE  R1 = R0[K10('m_enterSeq')]
  0033  SELF      R2 = R1[K8('Kill')] (self)
  0034  CALL      R1 = call(R1, 0 args, 1 rets)
  0035  SETTABLE  R0[K10('m_enterSeq')] = K6(nil)
  0036  RETURN    return R0..R-1
; ---------- proto4 [GetModel] ----------
  ; fn ?  line 105-107 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_boardModel'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_boardModel')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto5 [_LoadTiles] ----------
  ; fn ?  line 109-121 np=1 va=0 ms=16 code=45 consts=17 upvals=1 protos=0
  ;   K[0]='m_arrTileGo'
  ;   K[1]=1
  ;   K[2]='m_boardHeight'
  ;   K[3]='m_boardWidth'
  ;   K[4]=2
  ;   K[5]=0
  ;   K[6]='m_tileGo1'
  ;   K[7]='m_tileGo2'
  ;   K[8]='GameObject'
  ;   K[9]='Instantiate'
  ;   K[10]='m_tileContentRect'
  ;   K[11]='UIUtil'
  ;   K[12]='SetActive'
  ;   K[13]='transform'
  ;   K[14]='anchoredPosition'
  ;   K[15]='GetAnchoredPositionByXY'
  ;   K[16]='XY2Index'
  ;   upvals: _ENV
  ;   locals: self(0-45), prefab(3-45), go(3-45), (for index)(6-44), (for limit)(6-44), (for step)(6-44), y(7-43), (for index)(10-43), (for limit)(10-43), (for step)(10-43), x(11-42)
  0000  NEWTABLE  R1 = {} (0 items)
  0001  SETTABLE  R0[K0('m_arrTileGo')] = R1
  0002  LOADNIL   R1..R1 = nil
  0003  LOADK     R3 = K1 1
  0004  GETTABLE  R4 = R0[K2('m_boardHeight')]
  0005  LOADK     R5 = K1 1
  0006  FORPREP   forprep R3(sBx=36)   -> 43
  0007  LOADK     R7 = K1 1
  0008  GETTABLE  R8 = R0[K3('m_boardWidth')]
  0009  LOADK     R9 = K1 1
  0010  FORPREP   forprep R7(sBx=31)   -> 42
  0011  ADD       R11 = R6 add R10
  0012  MOD       R11 = K4(2) mod R11
  0013  EQ        if R0 eq K5(0)   -> -125164
  0014  JMP       (jump)   -> 18
  0015  GETTABLE  R11 = R0[K6('m_tileGo1')]
  0016  TESTSET   if R1 then R1   -> -125421
  0017  JMP       (jump)   -> 19
  0018  GETTABLE  R1 = R0[K7('m_tileGo2')]
  0019  GETTABUP  R11 = _ENV[K8('GameObject')]
  0020  GETTABLE  R11 = R11[K9('Instantiate')]
  0021  MOVE      R12 = R0
  0022  GETTABLE  R13 = R0[K10('m_tileContentRect')]
  0023  CALL      R11 = call(R11, 1 args, 2 rets)
  0024  MOVE      R2 = R0
  0025  GETTABUP  R11 = _ENV[K11('UIUtil')]
  0026  GETTABLE  R11 = R11[K12('SetActive')]
  0027  MOVE      R12 = R0
  0028  LOADBOOL  R13 = true
  0029  CALL      R11 = call(R11, 0 args, 2 rets)
  0030  GETTABLE  R11 = R2[K13('transform')]
  0031  SELF      R13 = R0[K15('GetAnchoredPositionByXY')] (self)
  0032  MOVE      R14 = R0
  0033  MOVE      R15 = R0
  0034  CALL      R12 = call(R12, 1 args, 3 rets)
  0035  SETTABLE  R11[K14('anchoredPosition')] = R12
  0036  GETTABLE  R11 = R0[K0('m_arrTileGo')]
  0037  SELF      R13 = R0[K16('XY2Index')] (self)
  0038  MOVE      R14 = R0
  0039  MOVE      R15 = R0
  0040  CALL      R12 = call(R12, 1 args, 3 rets)
  0041  SETTABLE  R11[R12] = R2
  0042  FORLOOP   forloop R7(sBx=-32)   -> 11
  0043  FORLOOP   forloop R3(sBx=-37)   -> 7
  0044  RETURN    return R0..R-1
; ---------- proto6 [_UpdateCubeView] ----------
  ; fn ?  line 123-146 np=1 va=0 ms=17 code=65 consts=21 upvals=1 protos=0
  ;   K[0]='m_arrCubeView'
  ;   K[1]=nil
  ;   K[2]='m_boardModel'
  ;   K[3]='GetMatrix'
  ;   K[4]=1
  ;   K[5]='m_boardHeight'
  ;   K[6]='m_boardWidth'
  ;   K[7]='XY2Index'
  ;   K[8]='GameObject'
  ;   K[9]='Instantiate'
  ;   K[10]='m_blockCubeViewGo'
  ;   K[11]='m_cubeContentRect'
  ;   K[12]='UIUtil'
  ;   K[13]='SetActive'
  ;   K[14]='GetLuaTable'
  ;   K[15]='transform'
  ;   K[16]='anchoredPosition'
  ;   K[17]='GetAnchoredPositionByXY'
  ;   K[18]='Init'
  ;   K[19]='SetViewState'
  ;   K[20]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-65), matrix(8-65), go(9-65), index(9-65), (for index)(12-62), (for limit)(12-62), (for step)(12-62), y(13-61), (for index)(16-61), (for limit)(16-61), (for step)(16-61), x(17-60)
  0000  GETTABLE  R1 = R0[K0('m_arrCubeView')]
  0001  EQ        if R0 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 5
  0003  NEWTABLE  R1 = {} (0 items)
  0004  SETTABLE  R0[K0('m_arrCubeView')] = R1
  0005  GETTABLE  R1 = R0[K2('m_boardModel')]
  0006  SELF      R2 = R1[K3('GetMatrix')] (self)
  0007  CALL      R1 = call(R1, 1 args, 1 rets)
  0008  LOADNIL   R2..R2 = nil
  0009  LOADK     R4 = K4 1
  0010  GETTABLE  R5 = R0[K5('m_boardHeight')]
  0011  LOADK     R6 = K4 1
  0012  FORPREP   forprep R4(sBx=48)   -> 61
  0013  LOADK     R8 = K4 1
  0014  GETTABLE  R9 = R0[K6('m_boardWidth')]
  0015  LOADK     R10 = K4 1
  0016  FORPREP   forprep R8(sBx=43)   -> 60
  0017  SELF      R13 = R0[K7('XY2Index')] (self)
  0018  MOVE      R14 = R0
  0019  MOVE      R15 = R0
  0020  CALL      R12 = call(R12, 1 args, 3 rets)
  0021  MOVE      R3 = R0
  0022  GETTABLE  R12 = R0[K0('m_arrCubeView')]
  0023  GETTABLE  R12 = R12[R3]
  0024  EQ        if R0 eq K1(nil)   -> -124645
  0025  JMP       (jump)   -> 47
  0026  GETTABUP  R12 = _ENV[K8('GameObject')]
  0027  GETTABLE  R12 = R12[K9('Instantiate')]
  0028  GETTABLE  R13 = R0[K10('m_blockCubeViewGo')]
  0029  GETTABLE  R14 = R0[K11('m_cubeContentRect')]
  0030  CALL      R12 = call(R12, 1 args, 2 rets)
  0031  MOVE      R2 = R0
  0032  GETTABUP  R12 = _ENV[K12('UIUtil')]
  0033  GETTABLE  R12 = R12[K13('SetActive')]
  0034  MOVE      R13 = R0
  0035  LOADBOOL  R14 = true
  0036  CALL      R12 = call(R12, 0 args, 2 rets)
  0037  GETTABLE  R12 = R0[K0('m_arrCubeView')]
  0038  SELF      R14 = R2[K14('GetLuaTable')] (self)
  0039  CALL      R13 = call(R13, 1 args, 1 rets)
  0040  SETTABLE  R12[R3] = R13
  0041  GETTABLE  R12 = R2[K15('transform')]
  0042  SELF      R14 = R0[K17('GetAnchoredPositionByXY')] (self)
  0043  MOVE      R15 = R0
  0044  MOVE      R16 = R0
  0045  CALL      R13 = call(R13, 1 args, 3 rets)
  0046  SETTABLE  R12[K16('anchoredPosition')] = R13
  0047  GETTABLE  R12 = R0[K0('m_arrCubeView')]
  0048  GETTABLE  R12 = R12[R3]
  0049  SELF      R13 = R12[K18('Init')] (self)
  0050  MOVE      R14 = R0
  0051  MOVE      R15 = R0
  0052  MOVE      R16 = R0
  0053  CALL      R12 = call(R12, 0 args, 4 rets)
  0054  GETTABLE  R12 = R0[K0('m_arrCubeView')]
  0055  GETTABLE  R12 = R12[R3]
  0056  SELF      R13 = R12[K19('SetViewState')] (self)
  0057  GETTABLE  R14 = R1[R7]
  0058  GETTABLE  R14 = R14[R11]
  0059  CALL      R12 = call(R12, 0 args, 2 rets)
  0060  FORLOOP   forloop R8(sBx=-44)   -> 17
  0061  FORLOOP   forloop R4(sBx=-49)   -> 13
  0062  SELF      R5 = R0[K20('_OnViewChanged')] (self)
  0063  CALL      R4 = call(R4, 0 args, 1 rets)
  0064  RETURN    return R0..R-1
; ---------- proto7 [_LoadItemView] ----------
  ; fn ?  line 148-161 np=1 va=0 ms=14 code=42 consts=13 upvals=1 protos=0
  ;   K[0]='UIUtil'
  ;   K[1]='SetActive'
  ;   K[2]='m_blockItemViewGo'
  ;   K[3]='m_arrItemView'
  ;   K[4]='m_boardModel'
  ;   K[5]='GetBlockItems'
  ;   K[6]='ipairs'
  ;   K[7]='GameObject'
  ;   K[8]='Instantiate'
  ;   K[9]='m_blockItemContentRect'
  ;   K[10]='GetLuaTable'
  ;   K[11]='Init'
  ;   K[12]='_SetItemViewInSelectArea'
  ;   upvals: _ENV
  ;   locals: self(0-42), arrItemConfig(10-42), go(11-42), itemView(11-42), (for generator)(14-41), (for state)(14-41), (for control)(14-41), index(15-39), itemConfig(15-39)
  0000  GETTABUP  R1 = _ENV[K0('UIUtil')]
  0001  GETTABLE  R1 = R1[K1('SetActive')]
  0002  GETTABLE  R2 = R0[K2('m_blockItemViewGo')]
  0003  LOADBOOL  R3 = false
  0004  CALL      R1 = call(R1, 0 args, 2 rets)
  0005  NEWTABLE  R1 = {} (0 items)
  0006  SETTABLE  R0[K3('m_arrItemView')] = R1
  0007  GETTABLE  R1 = R0[K4('m_boardModel')]
  0008  SELF      R2 = R1[K5('GetBlockItems')] (self)
  0009  CALL      R1 = call(R1, 1 args, 1 rets)
  0010  LOADNIL   R2..R2 = nil
  0011  GETTABUP  R4 = _ENV[K6('ipairs')]
  0012  MOVE      R5 = R0
  0013  CALL      R4 = call(R4, 3 args, 1 rets)
  0014  JMP       (jump)   -> 39
  0015  GETTABUP  R9 = _ENV[K7('GameObject')]
  0016  GETTABLE  R9 = R9[K8('Instantiate')]
  0017  GETTABLE  R10 = R0[K2('m_blockItemViewGo')]
  0018  GETTABLE  R11 = R0[K9('m_blockItemContentRect')]
  0019  CALL      R9 = call(R9, 1 args, 2 rets)
  0020  MOVE      R2 = R0
  0021  GETTABUP  R9 = _ENV[K0('UIUtil')]
  0022  GETTABLE  R9 = R9[K1('SetActive')]
  0023  MOVE      R10 = R0
  0024  LOADBOOL  R11 = true
  0025  CALL      R9 = call(R9, 0 args, 2 rets)
  0026  SELF      R10 = R2[K10('GetLuaTable')] (self)
  0027  CALL      R9 = call(R9, 1 args, 1 rets)
  0028  MOVE      R3 = R0
  0029  SELF      R10 = R3[K11('Init')] (self)
  0030  MOVE      R11 = R0
  0031  MOVE      R12 = R0
  0032  MOVE      R13 = R0
  0033  CALL      R9 = call(R9, 0 args, 4 rets)
  0034  GETTABLE  R9 = R0[K3('m_arrItemView')]
  0035  SETTABLE  R9[R7] = R3
  0036  SELF      R10 = R0[K12('_SetItemViewInSelectArea')] (self)
  0037  MOVE      R11 = R0
  0038  CALL      R9 = call(R9, 0 args, 2 rets)
  0039  TFORCALL  tforcall R4
  0040  TFORLOOP  tforloop R6(sBx=-26)   -> 15
  0041  RETURN    return R0..R-1
; ---------- proto8 [_UpdateContentSize] ----------
  ; fn ?  line 164-166 np=1 va=0 ms=6 code=10 consts=5 upvals=1 protos=0
  ;   K[0]='m_boardBgRect'
  ;   K[1]='sizeDelta'
  ;   K[2]='GetBoardRealSize'
  ;   K[3]='Vector2'
  ;   K[4]=80
  ;   upvals: _ENV
  ;   locals: self(0-10)
  0000  GETTABLE  R1 = R0[K0('m_boardBgRect')]
  0001  SELF      R3 = R0[K2('GetBoardRealSize')] (self)
  0002  CALL      R2 = call(R2, 1 args, 1 rets)
  0003  GETTABUP  R3 = _ENV[K3('Vector2')]
  0004  LOADK     R4 = K4 80
  0005  LOADK     R5 = K4 80
  0006  CALL      R3 = call(R3, 1 args, 2 rets)
  0007  ADD       R2 = R3 add R2
  0008  SETTABLE  R1[K1('sizeDelta')] = R2
  0009  RETURN    return R0..R-1
; ---------- proto9 [XY2Index] ----------
  ; fn ?  line 175-177 np=3 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]='m_boardWidth'
  ;   locals: self(0-6), x(0-6), y(0-6)
  0000  SUB       R3 = K0(1) sub R2
  0001  GETTABLE  R4 = R0[K1('m_boardWidth')]
  0002  MUL       R3 = R4 mul R3
  0003  ADD       R3 = R1 add R3
  0004  RETURN    return R3..R2
  0005  RETURN    return R0..R-1
; ---------- proto10 [Index2XY] ----------
  ; fn ?  line 179-183 np=2 va=0 ms=6 code=12 consts=2 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]='m_boardWidth'
  ;   locals: self(0-12), index(0-12), y(4-12), x(8-12)
  0000  SUB       R2 = K0(1) sub R1
  0001  GETTABLE  R3 = R0[K1('m_boardWidth')]
  0002  IDIV      R2 = R3 idiv R2
  0003  ADD       R2 = K0(1) add R2
  0004  SUB       R3 = K0(1) sub R1
  0005  GETTABLE  R4 = R0[K1('m_boardWidth')]
  0006  MOD       R3 = R4 mod R3
  0007  ADD       R3 = K0(1) add R3
  0008  MOVE      R4 = R0
  0009  MOVE      R5 = R0
  0010  RETURN    return R4..R3
  0011  RETURN    return R0..R-1
; ---------- proto11 [GetAnchoredPositionByXY] ----------
  ; fn ?  line 185-187 np=4 va=0 ms=10 code=17 consts=5 upvals=1 protos=0
  ;   K[0]='Vector2'
  ;   K[1]='GetAnchoredPosX'
  ;   K[2]='TileSize'
  ;   K[3]=2
  ;   K[4]='GetAnchoredPosY'
  ;   upvals: _ENV
  ;   locals: self(0-17), x(0-17), y(0-17), matrixHeight(0-17)
  0000  GETTABUP  R4 = _ENV[K0('Vector2')]
  0001  SELF      R6 = R0[K1('GetAnchoredPosX')] (self)
  0002  MOVE      R7 = R0
  0003  CALL      R5 = call(R5, 1 args, 2 rets)
  0004  GETTABLE  R6 = R0[K2('TileSize')]
  0005  DIV       R6 = K3(2) div R6
  0006  ADD       R5 = R6 add R5
  0007  SELF      R7 = R0[K4('GetAnchoredPosY')] (self)
  0008  MOVE      R8 = R0
  0009  MOVE      R9 = R0
  0010  CALL      R6 = call(R6, 1 args, 3 rets)
  0011  GETTABLE  R7 = R0[K2('TileSize')]
  0012  DIV       R7 = K3(2) div R7
  0013  ADD       R6 = R7 add R6
  0014  TAILCALL  tailcall(R4, 0)
  0015  RETURN    return R4..R3
  0016  RETURN    return R0..R-1
; ---------- proto12 [GetAnchoredPosX] ----------
  ; fn ?  line 189-191 np=2 va=0 ms=5 code=7 consts=3 upvals=0 protos=0
  ;   K[0]=1
  ;   K[1]='TileSize'
  ;   K[2]='Spacing'
  ;   locals: self(0-7), x(0-7)
  0000  SUB       R2 = K0(1) sub R1
  0001  GETTABLE  R3 = R0[K1('TileSize')]
  0002  GETTABLE  R4 = R0[K2('Spacing')]
  0003  ADD       R3 = R4 add R3
  0004  MUL       R2 = R3 mul R2
  0005  RETURN    return R2..R1
  0006  RETURN    return R0..R-1
; ---------- proto13 [GetAnchoredPosY] ----------
  ; fn ?  line 193-196 np=3 va=0 ms=6 code=10 consts=3 upvals=0 protos=0
  ;   K[0]='m_boardHeight'
  ;   K[1]='TileSize'
  ;   K[2]='Spacing'
  ;   locals: self(0-10), y(0-10), matrixHeight(0-10)
  0000  TEST      if not R2 then   -> -131069
  0001  JMP       (jump)   -> 3
  0002  GETTABLE  R2 = R0[K0('m_boardHeight')]
  0003  SUB       R3 = R1 sub R2
  0004  GETTABLE  R4 = R0[K1('TileSize')]
  0005  GETTABLE  R5 = R0[K2('Spacing')]
  0006  ADD       R4 = R5 add R4
  0007  MUL       R3 = R4 mul R3
  0008  RETURN    return R3..R2
  0009  RETURN    return R0..R-1
; ---------- proto14 [GetCenterAnchoredPosition] ----------
  ; fn ?  line 198-202 np=1 va=0 ms=6 code=12 consts=5 upvals=0 protos=0
  ;   K[0]='GetAnchoredPositionByXY'
  ;   K[1]=1
  ;   K[2]='m_boardWidth'
  ;   K[3]='m_boardHeight'
  ;   K[4]=2
  ;   locals: self(0-12), leftUpPos(4-12), rightDownPos(8-12)
  0000  SELF      R2 = R0[K0('GetAnchoredPositionByXY')] (self)
  0001  LOADK     R3 = K1 1
  0002  LOADK     R4 = K1 1
  0003  CALL      R1 = call(R1, 1 args, 3 rets)
  0004  SELF      R3 = R0[K0('GetAnchoredPositionByXY')] (self)
  0005  GETTABLE  R4 = R0[K2('m_boardWidth')]
  0006  GETTABLE  R5 = R0[K3('m_boardHeight')]
  0007  CALL      R2 = call(R2, 1 args, 3 rets)
  0008  ADD       R3 = R2 add R1
  0009  DIV       R3 = K4(2) div R3
  0010  RETURN    return R3..R2
  0011  RETURN    return R0..R-1
; ---------- proto15 [GetBoardRealSize] ----------
  ; fn ?  line 204-208 np=1 va=0 ms=7 code=16 consts=6 upvals=1 protos=0
  ;   K[0]='GetAnchoredPositionByXY'
  ;   K[1]=1
  ;   K[2]='m_boardHeight'
  ;   K[3]='m_boardWidth'
  ;   K[4]='Vector2'
  ;   K[5]='TileSize'
  ;   upvals: _ENV
  ;   locals: self(0-16), leftDownPos(4-16), rightUpPos(8-16)
  0000  SELF      R2 = R0[K0('GetAnchoredPositionByXY')] (self)
  0001  LOADK     R3 = K1 1
  0002  GETTABLE  R4 = R0[K2('m_boardHeight')]
  0003  CALL      R1 = call(R1, 1 args, 3 rets)
  0004  SELF      R3 = R0[K0('GetAnchoredPositionByXY')] (self)
  0005  GETTABLE  R4 = R0[K3('m_boardWidth')]
  0006  LOADK     R5 = K1 1
  0007  CALL      R2 = call(R2, 1 args, 3 rets)
  0008  SUB       R3 = R1 sub R2
  0009  GETTABUP  R4 = _ENV[K4('Vector2')]
  0010  GETTABLE  R5 = R0[K5('TileSize')]
  0011  GETTABLE  R6 = R0[K5('TileSize')]
  0012  CALL      R4 = call(R4, 1 args, 2 rets)
  0013  ADD       R3 = R4 add R3
  0014  RETURN    return R3..R2
  0015  RETURN    return R0..R-1
; ---------- proto16 [GetWorldPositionByLocalPos] ----------
  ; fn ?  line 210-212 np=2 va=0 ms=5 code=6 consts=2 upvals=0 protos=0
  ;   K[0]='m_boardRootRect'
  ;   K[1]='TransformPoint'
  ;   locals: self(0-6), localPos(0-6)
  0000  GETTABLE  R2 = R0[K0('m_boardRootRect')]
  0001  SELF      R3 = R2[K1('TransformPoint')] (self)
  0002  MOVE      R4 = R0
  0003  TAILCALL  tailcall(R2, 0)
  0004  RETURN    return R2..R1
  0005  RETURN    return R0..R-1
; ---------- proto17 [OnPointerDown] ----------
  ; fn ?  line 218-239 np=3 va=0 ms=7 code=46 consts=19 upvals=1 protos=0
  ;   K[0]='m_curSelectIndex'
  ;   K[1]=nil
  ;   K[2]='m_arrItemView'
  ;   K[3]='m_tutorialForceItemIndex'
  ;   K[4]='m_boardModel'
  ;   K[5]='CanConsumeActProperty'
  ;   K[6]='EventDispatcher'
  ;   K[7]='DispatchEvent'
  ;   K[8]='EEventType'
  ;   K[9]='LackBlockToken'
  ;   K[10]='BlockStartPlaceItem'
  ;   K[11]='_SelectItemView'
  ;   K[12]='UpdateItemViewByScreenPos'
  ;   K[13]='position'
  ;   K[14]='GM'
  ;   K[15]='AudioModel'
  ;   K[16]='PlayEffect'
  ;   K[17]='AudioFileConfigName'
  ;   K[18]='sfxChooseItem'
  ;   upvals: _ENV
  ;   locals: self(0-46), eventData(0-46), index(0-46)
  0000  GETTABLE  R3 = R0[K0('m_curSelectIndex')]
  0001  EQ        if R0 eq K1(nil)   -> -129276
  0002  JMP       (jump)   -> 13
  0003  GETTABLE  R3 = R0[K2('m_arrItemView')]
  0004  GETTABLE  R3 = R3[R2]
  0005  EQ        if R1 eq K1(nil)   -> -129272
  0006  JMP       (jump)   -> 13
  0007  GETTABLE  R3 = R0[K3('m_tutorialForceItemIndex')]
  0008  EQ        if R1 eq K1(nil)   -> -129269
  0009  JMP       (jump)   -> 14
  0010  GETTABLE  R3 = R0[K3('m_tutorialForceItemIndex')]
  0011  EQ        if R1 eq R2   -> -129521
  0012  JMP       (jump)   -> 14
  0013  RETURN    return R0..R-1
  0014  GETTABLE  R3 = R0[K4('m_boardModel')]
  0015  SELF      R4 = R3[K5('CanConsumeActProperty')] (self)
  0016  CALL      R3 = call(R3, 1 args, 1 rets)
  0017  TEST      if not R3 then   -> -131052
  0018  JMP       (jump)   -> 25
  0019  GETTABUP  R3 = _ENV[K6('EventDispatcher')]
  0020  GETTABLE  R3 = R3[K7('DispatchEvent')]
  0021  GETTABUP  R4 = _ENV[K8('EEventType')]
  0022  GETTABLE  R4 = R4[K9('LackBlockToken')]
  0023  CALL      R3 = call(R3, 0 args, 1 rets)
  0024  RETURN    return R0..R-1
  0025  GETTABUP  R3 = _ENV[K6('EventDispatcher')]
  0026  GETTABLE  R3 = R3[K7('DispatchEvent')]
  0027  GETTABUP  R4 = _ENV[K8('EEventType')]
  0028  GETTABLE  R4 = R4[K10('BlockStartPlaceItem')]
  0029  CALL      R3 = call(R3, 0 args, 1 rets)
  0030  SETTABLE  R0[K0('m_curSelectIndex')] = R2
  0031  SELF      R4 = R0[K11('_SelectItemView')] (self)
  0032  MOVE      R5 = R0
  0033  CALL      R3 = call(R3, 0 args, 2 rets)
  0034  SELF      R4 = R0[K12('UpdateItemViewByScreenPos')] (self)
  0035  GETTABLE  R5 = R0[K2('m_arrItemView')]
  0036  GETTABLE  R5 = R5[R2]
  0037  GETTABLE  R6 = R1[K13('position')]
  0038  CALL      R3 = call(R3, 0 args, 3 rets)
  0039  GETTABUP  R3 = _ENV[K14('GM')]
  0040  GETTABLE  R3 = R3[K15('AudioModel')]
  0041  SELF      R4 = R3[K16('PlayEffect')] (self)
  0042  GETTABUP  R5 = _ENV[K17('AudioFileConfigName')]
  0043  GETTABLE  R5 = R5[K18('sfxChooseItem')]
  0044  CALL      R3 = call(R3, 0 args, 2 rets)
  0045  RETURN    return R0..R-1
; ---------- proto18 [OnPointerUp] ----------
  ; fn ?  line 241-267 np=3 va=0 ms=11 code=58 consts=23 upvals=1 protos=0
  ;   K[0]='m_curSelectIndex'
  ;   K[1]='m_curAdsorbPos'
  ;   K[2]=nil
  ;   K[3]='m_tutorialForceBoardPos'
  ;   K[4]='_UpdateShadowCube'
  ;   K[5]='_ResetCubeBgEffect'
  ;   K[6]='m_arrItemView'
  ;   K[7]='m_blockActivitySlider'
  ;   K[8]='ResetExpectScore'
  ;   K[9]='m_boardModel'
  ;   K[10]='PlaceItem'
  ;   K[11]='GetX'
  ;   K[12]='GetY'
  ;   K[13]='GameObject'
  ;   K[14]='Destroy'
  ;   K[15]='gameObject'
  ;   K[16]='_SetItemViewInSelectArea'
  ;   K[17]='_LogAction'
  ;   K[18]='ResetSelectItemView'
  ;   K[19]='EventDispatcher'
  ;   K[20]='DispatchEvent'
  ;   K[21]='EEventType'
  ;   K[22]='BlockEndPlaceItem'
  ;   upvals: _ENV
  ;   locals: self(0-58), eventData(0-58), index(0-58), boardPos(15-47), itemView(21-47)
  0000  GETTABLE  R3 = R0[K0('m_curSelectIndex')]
  0001  EQ        if R1 eq R2   -> -129531
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R3 = R0[K1('m_curAdsorbPos')]
  0005  EQ        if R1 eq K2(nil)   -> -129271
  0006  JMP       (jump)   -> 48
  0007  GETTABLE  R3 = R0[K3('m_tutorialForceBoardPos')]
  0008  EQ        if R1 eq K2(nil)   -> -129268
  0009  JMP       (jump)   -> 14
  0010  GETTABLE  R3 = R0[K3('m_tutorialForceBoardPos')]
  0011  GETTABLE  R4 = R0[K1('m_curAdsorbPos')]
  0012  EQ        if R0 eq R4   -> -129518
  0013  JMP       (jump)   -> 48
  0014  GETTABLE  R3 = R0[K1('m_curAdsorbPos')]
  0015  SELF      R5 = R0[K4('_UpdateShadowCube')] (self)
  0016  CALL      R4 = call(R4, 0 args, 1 rets)
  0017  SELF      R5 = R0[K5('_ResetCubeBgEffect')] (self)
  0018  CALL      R4 = call(R4, 0 args, 1 rets)
  0019  GETTABLE  R4 = R0[K6('m_arrItemView')]
  0020  GETTABLE  R4 = R4[R2]
  0021  GETTABLE  R5 = R0[K7('m_blockActivitySlider')]
  0022  SELF      R6 = R5[K8('ResetExpectScore')] (self)
  0023  LOADBOOL  R7 = true
  0024  CALL      R5 = call(R5, 0 args, 2 rets)
  0025  GETTABLE  R5 = R0[K9('m_boardModel')]
  0026  SELF      R6 = R5[K10('PlaceItem')] (self)
  0027  MOVE      R7 = R0
  0028  SELF      R9 = R3[K11('GetX')] (self)
  0029  CALL      R8 = call(R8, 1 args, 1 rets)
  0030  SELF      R10 = R3[K12('GetY')] (self)
  0031  CALL      R9 = call(R9, -1 args, 1 rets)
  0032  CALL      R5 = call(R5, 1 args, -1 rets)
  0033  TEST      if not R5 then   -> -131037
  0034  JMP       (jump)   -> 40
  0035  GETTABUP  R5 = _ENV[K13('GameObject')]
  0036  GETTABLE  R5 = R5[K14('Destroy')]
  0037  GETTABLE  R6 = R4[K15('gameObject')]
  0038  CALL      R5 = call(R5, 0 args, 1 rets)
  0039  JMP       (jump)   -> 51
  0040  SELF      R6 = R0[K16('_SetItemViewInSelectArea')] (self)
  0041  MOVE      R7 = R0
  0042  CALL      R5 = call(R5, 0 args, 2 rets)
  0043  SELF      R6 = R0[K17('_LogAction')] (self)
  0044  MOVE      R7 = R0
  0045  LOADBOOL  R8 = false
  0046  CALL      R5 = call(R5, 0 args, 3 rets)
  0047  JMP       (jump)   -> 51
  0048  SELF      R4 = R0[K18('ResetSelectItemView')] (self)
  0049  MOVE      R5 = R0
  0050  CALL      R3 = call(R3, 0 args, 2 rets)
  0051  GETTABUP  R3 = _ENV[K19('EventDispatcher')]
  0052  GETTABLE  R3 = R3[K20('DispatchEvent')]
  0053  GETTABUP  R4 = _ENV[K21('EEventType')]
  0054  GETTABLE  R4 = R4[K22('BlockEndPlaceItem')]
  0055  CALL      R3 = call(R3, 0 args, 1 rets)
  0056  SETTABLE  R0[K0('m_curSelectIndex')] = K2(nil)
  0057  RETURN    return R0..R-1
; ---------- proto19 [OnDrag] ----------
  ; fn ?  line 269-281 np=3 va=0 ms=8 code=17 consts=6 upvals=0 protos=0
  ;   K[0]='m_curSelectIndex'
  ;   K[1]='m_arrItemView'
  ;   K[2]=nil
  ;   K[3]='UpdateItemViewByScreenPos'
  ;   K[4]='position'
  ;   K[5]='_AdsorbBlockItem'
  ;   locals: self(0-17), eventData(0-17), index(0-17), itemView(6-17)
  0000  GETTABLE  R3 = R0[K0('m_curSelectIndex')]
  0001  EQ        if R1 eq R2   -> -129531
  0002  JMP       (jump)   -> 4
  0003  RETURN    return R0..R-1
  0004  GETTABLE  R3 = R0[K1('m_arrItemView')]
  0005  GETTABLE  R3 = R3[R2]
  0006  EQ        if R0 eq K2(nil)   -> -129270
  0007  JMP       (jump)   -> 9
  0008  RETURN    return R0..R-1
  0009  SELF      R5 = R0[K3('UpdateItemViewByScreenPos')] (self)
  0010  MOVE      R6 = R0
  0011  GETTABLE  R7 = R1[K4('position')]
  0012  CALL      R4 = call(R4, 0 args, 3 rets)
  0013  SELF      R5 = R0[K5('_AdsorbBlockItem')] (self)
  0014  MOVE      R6 = R0
  0015  CALL      R4 = call(R4, 0 args, 2 rets)
  0016  RETURN    return R0..R-1
; ---------- proto20 [ResetSelectItemView] ----------
  ; fn ?  line 283-289 np=2 va=0 ms=6 code=15 consts=6 upvals=0 protos=0
  ;   K[0]='_UpdateShadowCube'
  ;   K[1]='_ResetCubeBgEffect'
  ;   K[2]='_SetItemViewInSelectArea'
  ;   K[3]='m_blockActivitySlider'
  ;   K[4]='ResetExpectScore'
  ;   K[5]='_LogAction'
  ;   locals: self(0-15), index(0-15)
  0000  SELF      R3 = R0[K0('_UpdateShadowCube')] (self)
  0001  CALL      R2 = call(R2, 0 args, 1 rets)
  0002  SELF      R3 = R0[K1('_ResetCubeBgEffect')] (self)
  0003  CALL      R2 = call(R2, 0 args, 1 rets)
  0004  SELF      R3 = R0[K2('_SetItemViewInSelectArea')] (self)
  0005  MOVE      R4 = R0
  0006  CALL      R2 = call(R2, 0 args, 2 rets)
  0007  GETTABLE  R2 = R0[K3('m_blockActivitySlider')]
  0008  SELF      R3 = R2[K4('ResetExpectScore')] (self)
  0009  CALL      R2 = call(R2, 0 args, 1 rets)
  0010  SELF      R3 = R0[K5('_LogAction')] (self)
  0011  MOVE      R4 = R0
  0012  LOADBOOL  R5 = false
  0013  CALL      R2 = call(R2, 0 args, 3 rets)
  0014  RETURN    return R0..R-1
; ---------- proto21 [UpdateItemViewByScreenPos] ----------
  ; fn ?  line 291-297 np=3 va=0 ms=11 code=24 consts=13 upvals=1 protos=0
  ;   K[0]='PositionUtil'
  ;   K[1]='UICameraScreen2World'
  ;   K[2]='transform'
  ;   K[3]='UIUtil'
  ;   K[4]='SetPosition'
  ;   K[5]='x'
  ;   K[6]='y'
  ;   K[7]='GetItemHeight'
  ;   K[8]='TileSize'
  ;   K[9]=2
  ;   K[10]=50
  ;   K[11]='anchoredPosition'
  ;   K[12]='GetCenterAnchoredPosition'
  ;   upvals: _ENV
  ;   locals: self(0-24), itemView(0-24), screenPos(0-24), uiPosition(4-24), rect(5-24)
  0000  GETTABUP  R3 = _ENV[K0('PositionUtil')]
  0001  GETTABLE  R3 = R3[K1('UICameraScreen2World')]
  0002  MOVE      R4 = R0
  0003  CALL      R3 = call(R3, 1 args, 1 rets)
  0004  GETTABLE  R4 = R1[K2('transform')]
  0005  GETTABUP  R5 = _ENV[K3('UIUtil')]
  0006  GETTABLE  R5 = R5[K4('SetPosition')]
  0007  MOVE      R6 = R0
  0008  GETTABLE  R7 = R3[K5('x')]
  0009  GETTABLE  R8 = R3[K6('y')]
  0010  SELF      R10 = R1[K7('GetItemHeight')] (self)
  0011  CALL      R9 = call(R9, 1 args, 1 rets)
  0012  GETTABLE  R10 = R0[K8('TileSize')]
  0013  MUL       R9 = R10 mul R9
  0014  DIV       R9 = K9(2) div R9
  0015  ADD       R8 = R9 add R8
  0016  ADD       R8 = K10(50) add R8
  0017  CALL      R5 = call(R5, 0 args, 3 rets)
  0018  GETTABLE  R5 = R4[K11('anchoredPosition')]
  0019  SELF      R7 = R1[K12('GetCenterAnchoredPosition')] (self)
  0020  CALL      R6 = call(R6, 1 args, 1 rets)
  0021  SUB       R5 = R6 sub R5
  0022  SETTABLE  R4[K11('anchoredPosition')] = R5
  0023  RETURN    return R0..R-1
; ---------- proto22 [_SetItemViewInSelectArea] ----------
  ; fn ?  line 300-316 np=2 va=0 ms=11 code=32 consts=15 upvals=1 protos=0
  ;   K[0]='m_arrItemView'
  ;   K[1]=nil
  ;   K[2]=0.4
  ;   K[3]='UIUtil'
  ;   K[4]='SetLocalScale'
  ;   K[5]='transform'
  ;   K[6]='GetBottomCenterAnchoredPosition'
  ;   K[7]=280
  ;   K[8]='m_boardModel'
  ;   K[9]='GetBlockItems'
  ;   K[10]=1
  ;   K[11]=2
  ;   K[12]='SetAnchoredPosition'
  ;   K[13]='x'
  ;   K[14]=0
  ;   upvals: _ENV
  ;   locals: self(0-32), index(0-32), itemView(2-32), selectScale(6-32), bottomCenterPos(15-32), spacing(16-32), middleVal(22-32)
  0000  GETTABLE  R2 = R0[K0('m_arrItemView')]
  0001  GETTABLE  R2 = R2[R1]
  0002  EQ        if R0 eq K1(nil)   -> -129787
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  LOADK     R3 = K2 0.4
  0006  GETTABUP  R4 = _ENV[K3('UIUtil')]
  0007  GETTABLE  R4 = R4[K4('SetLocalScale')]
  0008  GETTABLE  R5 = R2[K5('transform')]
  0009  MOVE      R6 = R0
  0010  MOVE      R7 = R0
  0011  CALL      R4 = call(R4, 0 args, 3 rets)
  0012  SELF      R5 = R2[K6('GetBottomCenterAnchoredPosition')] (self)
  0013  CALL      R4 = call(R4, 1 args, 1 rets)
  0014  MUL       R4 = R3 mul R4
  0015  LOADK     R5 = K7 280
  0016  GETTABLE  R6 = R0[K8('m_boardModel')]
  0017  SELF      R7 = R6[K9('GetBlockItems')] (self)
  0018  CALL      R6 = call(R6, 1 args, 1 rets)
  0019  LEN       R6 = len R0
  0020  ADD       R6 = K10(1) add R6
  0021  DIV       R6 = K11(2) div R6
  0022  GETTABUP  R7 = _ENV[K3('UIUtil')]
  0023  GETTABLE  R7 = R7[K12('SetAnchoredPosition')]
  0024  GETTABLE  R8 = R2[K5('transform')]
  0025  SUB       R9 = R6 sub R1
  0026  MUL       R9 = R5 mul R9
  0027  GETTABLE  R10 = R4[K13('x')]
  0028  SUB       R9 = R10 sub R9
  0029  LOADK     R10 = K14 0
  0030  CALL      R7 = call(R7, 0 args, 3 rets)
  0031  RETURN    return R0..R-1
; ---------- proto23 [_SelectItemView] ----------
  ; fn ?  line 319-329 np=2 va=0 ms=7 code=15 consts=7 upvals=1 protos=0
  ;   K[0]='m_arrItemView'
  ;   K[1]=nil
  ;   K[2]='UIUtil'
  ;   K[3]='SetLocalScale'
  ;   K[4]='transform'
  ;   K[5]=1
  ;   K[6]='SetAsLastSibling'
  ;   upvals: _ENV
  ;   locals: self(0-15), index(0-15), itemView(2-15)
  0000  GETTABLE  R2 = R0[K0('m_arrItemView')]
  0001  GETTABLE  R2 = R2[R1]
  0002  EQ        if R0 eq K1(nil)   -> -129787
  0003  JMP       (jump)   -> 5
  0004  RETURN    return R0..R-1
  0005  GETTABUP  R3 = _ENV[K2('UIUtil')]
  0006  GETTABLE  R3 = R3[K3('SetLocalScale')]
  0007  GETTABLE  R4 = R2[K4('transform')]
  0008  LOADK     R5 = K5 1
  0009  LOADK     R6 = K5 1
  0010  CALL      R3 = call(R3, 0 args, 3 rets)
  0011  GETTABLE  R3 = R2[K4('transform')]
  0012  SELF      R4 = R3[K6('SetAsLastSibling')] (self)
  0013  CALL      R3 = call(R3, 0 args, 1 rets)
  0014  RETURN    return R0..R-1
; ---------- proto24 [_AdsorbBlockItem] ----------
  ; fn ?  line 332-368 np=2 va=0 ms=19 code=80 consts=18 upvals=1 protos=0
  ;   K[0]='_GetAdsorbBoardMatrixPos'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='_UpdateShadowCube'
  ;   K[4]='_ResetCubeBgEffect'
  ;   K[5]='m_blockActivitySlider'
  ;   K[6]='ResetExpectScore'
  ;   K[7]='ipairs'
  ;   K[8]='m_boardModel'
  ;   K[9]='CanPlaceItemMatrix'
  ;   K[10]='GetX'
  ;   K[11]='GetY'
  ;   K[12]='GetItemMatrix'
  ;   K[13]='CalculateTokenNumAndRemovedPos'
  ;   K[14]=0
  ;   K[15]='m_tokenPos'
  ;   K[16]='UpdateExpectScore'
  ;   K[17]='_UpdateCubeBgEffect'
  ;   upvals: _ENV
  ;   locals: self(0-80), itemView(0-80), arrCoverPos(3-80), bPlace(18-80), arrBoardPos(19-80), (for generator)(22-70), (for state)(22-70), (for control)(22-70), _(23-68), pos(23-68), tokenNum(44-68), arrRemovedRow(44-68), arrRemovedCol(44-68), removedLineNum(44-68)
  0000  SELF      R3 = R0[K0('_GetAdsorbBoardMatrixPos')] (self)
  0001  MOVE      R4 = R0
  0002  CALL      R2 = call(R2, 1 args, 2 rets)
  0003  GETTABUP  R3 = _ENV[K1('Table')]
  0004  GETTABLE  R3 = R3[K2('IsEmpty')]
  0005  MOVE      R4 = R0
  0006  CALL      R3 = call(R3, 1 args, 1 rets)
  0007  TEST      if not R3 then   -> -131063
  0008  JMP       (jump)   -> 17
  0009  SELF      R4 = R0[K3('_UpdateShadowCube')] (self)
  0010  CALL      R3 = call(R3, 0 args, 1 rets)
  0011  SELF      R4 = R0[K4('_ResetCubeBgEffect')] (self)
  0012  CALL      R3 = call(R3, 0 args, 1 rets)
  0013  GETTABLE  R3 = R0[K5('m_blockActivitySlider')]
  0014  SELF      R4 = R3[K6('ResetExpectScore')] (self)
  0015  CALL      R3 = call(R3, 0 args, 1 rets)
  0016  RETURN    return R0..R-1
  0017  LOADBOOL  R3 = false
  0018  LOADNIL   R4..R4 = nil
  0019  GETTABUP  R5 = _ENV[K7('ipairs')]
  0020  MOVE      R6 = R0
  0021  CALL      R5 = call(R5, 3 args, 1 rets)
  0022  JMP       (jump)   -> 68
  0023  GETTABLE  R10 = R0[K8('m_boardModel')]
  0024  SELF      R11 = R10[K9('CanPlaceItemMatrix')] (self)
  0025  SELF      R13 = R9[K10('GetX')] (self)
  0026  CALL      R12 = call(R12, 1 args, 1 rets)
  0027  SELF      R14 = R9[K11('GetY')] (self)
  0028  CALL      R13 = call(R13, 1 args, 1 rets)
  0029  SELF      R15 = R1[K12('GetItemMatrix')] (self)
  0030  CALL      R14 = call(R14, -1 args, 1 rets)
  0031  CALL      R10 = call(R10, 2 args, -1 rets)
  0032  MOVE      R4 = R0
  0033  MOVE      R3 = R0
  0034  TEST      if not R3 then   -> -131036
  0035  JMP       (jump)   -> 68
  0036  SELF      R11 = R0[K3('_UpdateShadowCube')] (self)
  0037  MOVE      R12 = R0
  0038  MOVE      R13 = R0
  0039  CALL      R10 = call(R10, 0 args, 3 rets)
  0040  GETTABLE  R10 = R0[K8('m_boardModel')]
  0041  SELF      R11 = R10[K13('CalculateTokenNumAndRemovedPos')] (self)
  0042  MOVE      R12 = R0
  0043  CALL      R10 = call(R10, 4 args, 2 rets)
  0044  LT        if R0 lt R10   -> 7224
  0045  JMP       (jump)   -> 62
  0046  GETTABLE  R14 = R0[K15('m_tokenPos')]
  0047  EQ        if R1 eq R9   -> -123846
  0048  JMP       (jump)   -> 51
  0049  SELF      R15 = R0[K4('_ResetCubeBgEffect')] (self)
  0050  CALL      R14 = call(R14, 0 args, 1 rets)
  0051  SETTABLE  R0[K15('m_tokenPos')] = R9
  0052  GETTABLE  R14 = R0[K5('m_blockActivitySlider')]
  0053  SELF      R15 = R14[K16('UpdateExpectScore')] (self)
  0054  MOVE      R16 = R0
  0055  CALL      R14 = call(R14, 0 args, 2 rets)
  0056  SELF      R15 = R0[K17('_UpdateCubeBgEffect')] (self)
  0057  MOVE      R16 = R0
  0058  MOVE      R17 = R0
  0059  MOVE      R18 = R0
  0060  CALL      R14 = call(R14, 0 args, 4 rets)
  0061  JMP       (jump)   -> 70
  0062  GETTABLE  R14 = R0[K5('m_blockActivitySlider')]
  0063  SELF      R15 = R14[K6('ResetExpectScore')] (self)
  0064  CALL      R14 = call(R14, 0 args, 1 rets)
  0065  SELF      R15 = R0[K4('_ResetCubeBgEffect')] (self)
  0066  CALL      R14 = call(R14, 0 args, 1 rets)
  0067  JMP       (jump)   -> 70
  0068  TFORCALL  tforcall R5
  0069  TFORLOOP  tforloop R7(sBx=-47)   -> 23
  0070  TEST      if not R3 then   -> -130999
  0071  JMP       (jump)   -> 79
  0072  SELF      R6 = R0[K3('_UpdateShadowCube')] (self)
  0073  CALL      R5 = call(R5, 0 args, 1 rets)
  0074  SELF      R6 = R0[K4('_ResetCubeBgEffect')] (self)
  0075  CALL      R5 = call(R5, 0 args, 1 rets)
  0076  GETTABLE  R5 = R0[K5('m_blockActivitySlider')]
  0077  SELF      R6 = R5[K6('ResetExpectScore')] (self)
  0078  CALL      R5 = call(R5, 0 args, 1 rets)
  0079  RETURN    return R0..R-1
; ---------- proto25 [_UpdateShadowCube] ----------
  ; fn ?  line 371-399 np=3 va=0 ms=14 code=64 consts=15 upvals=1 protos=0
  ;   K[0]='m_curAdsorbPos'
  ;   K[1]=nil
  ;   K[2]='Table'
  ;   K[3]='IsEmpty'
  ;   K[4]='m_curArrBoardPos'
  ;   K[5]='ipairs'
  ;   K[6]='XY2Index'
  ;   K[7]='GetX'
  ;   K[8]='GetY'
  ;   K[9]='m_arrCubeView'
  ;   K[10]='SetViewState'
  ;   K[11]='EBlockCubeViewState'
  ;   K[12]='Empty'
  ;   K[13]='Shadow'
  ;   K[14]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-64), pos(0-64), arrBoardPos(0-64), index(14-33), (for generator)(17-33), (for state)(17-33), (for control)(17-33), _(18-31), boardPos(18-31), index(40-59), (for generator)(43-59), (for state)(43-59), (for control)(43-59), _(44-57), boardPos(44-57)
  0000  GETTABLE  R3 = R0[K0('m_curAdsorbPos')]
  0001  EQ        if R1 eq K1(nil)   -> -129276
  0002  JMP       (jump)   -> 7
  0003  GETTABLE  R3 = R0[K0('m_curAdsorbPos')]
  0004  EQ        if R0 eq R1   -> -129529
  0005  JMP       (jump)   -> 7
  0006  RETURN    return R0..R-1
  0007  GETTABUP  R3 = _ENV[K2('Table')]
  0008  GETTABLE  R3 = R3[K3('IsEmpty')]
  0009  GETTABLE  R4 = R0[K4('m_curArrBoardPos')]
  0010  CALL      R3 = call(R3, 1 args, 1 rets)
  0011  TEST      if not R3 then   -> -131058
  0012  JMP       (jump)   -> 33
  0013  LOADNIL   R3..R3 = nil
  0014  GETTABUP  R4 = _ENV[K5('ipairs')]
  0015  GETTABLE  R5 = R0[K4('m_curArrBoardPos')]
  0016  CALL      R4 = call(R4, 3 args, 1 rets)
  0017  JMP       (jump)   -> 31
  0018  SELF      R10 = R0[K6('XY2Index')] (self)
  0019  SELF      R12 = R8[K7('GetX')] (self)
  0020  CALL      R11 = call(R11, 1 args, 1 rets)
  0021  SELF      R13 = R8[K8('GetY')] (self)
  0022  CALL      R12 = call(R12, -1 args, 1 rets)
  0023  CALL      R9 = call(R9, 1 args, -1 rets)
  0024  MOVE      R3 = R0
  0025  GETTABLE  R9 = R0[K9('m_arrCubeView')]
  0026  GETTABLE  R9 = R9[R3]
  0027  SELF      R10 = R9[K10('SetViewState')] (self)
  0028  GETTABUP  R11 = _ENV[K11('EBlockCubeViewState')]
  0029  GETTABLE  R11 = R11[K12('Empty')]
  0030  CALL      R9 = call(R9, 0 args, 2 rets)
  0031  TFORCALL  tforcall R4
  0032  TFORLOOP  tforloop R6(sBx=-15)   -> 18
  0033  GETTABUP  R3 = _ENV[K2('Table')]
  0034  GETTABLE  R3 = R3[K3('IsEmpty')]
  0035  MOVE      R4 = R0
  0036  CALL      R3 = call(R3, 1 args, 1 rets)
  0037  TEST      if not R3 then   -> -131032
  0038  JMP       (jump)   -> 59
  0039  LOADNIL   R3..R3 = nil
  0040  GETTABUP  R4 = _ENV[K5('ipairs')]
  0041  MOVE      R5 = R0
  0042  CALL      R4 = call(R4, 3 args, 1 rets)
  0043  JMP       (jump)   -> 57
  0044  SELF      R10 = R0[K6('XY2Index')] (self)
  0045  SELF      R12 = R8[K7('GetX')] (self)
  0046  CALL      R11 = call(R11, 1 args, 1 rets)
  0047  SELF      R13 = R8[K8('GetY')] (self)
  0048  CALL      R12 = call(R12, -1 args, 1 rets)
  0049  CALL      R9 = call(R9, 1 args, -1 rets)
  0050  MOVE      R3 = R0
  0051  GETTABLE  R9 = R0[K9('m_arrCubeView')]
  0052  GETTABLE  R9 = R9[R3]
  0053  SELF      R10 = R9[K10('SetViewState')] (self)
  0054  GETTABUP  R11 = _ENV[K11('EBlockCubeViewState')]
  0055  GETTABLE  R11 = R11[K13('Shadow')]
  0056  CALL      R9 = call(R9, 0 args, 2 rets)
  0057  TFORCALL  tforcall R4
  0058  TFORLOOP  tforloop R6(sBx=-15)   -> 44
  0059  SETTABLE  R0[K0('m_curAdsorbPos')] = R1
  0060  SETTABLE  R0[K4('m_curArrBoardPos')] = R2
  0061  SELF      R4 = R0[K14('_OnViewChanged')] (self)
  0062  CALL      R3 = call(R3, 0 args, 1 rets)
  0063  RETURN    return R0..R-1
; ---------- proto26 [_UpdateCubeBgEffect] ----------
  ; fn ?  line 401-416 np=4 va=0 ms=19 code=52 consts=10 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]=1
  ;   K[2]='m_boardWidth'
  ;   K[3]='XY2Index'
  ;   K[4]='m_arrCubeView'
  ;   K[5]='ShowBgEffect'
  ;   K[6]='math'
  ;   K[7]='min'
  ;   K[8]=5
  ;   K[9]='m_boardHeight'
  ;   upvals: _ENV
  ;   locals: self(0-52), arrRemovedRow(0-52), arrRemovedCol(0-52), ratio(0-52), index(1-52), (for generator)(4-26), (for state)(4-26), (for control)(4-26), _(5-24), y(5-24), (for index)(8-24), (for limit)(8-24), (for step)(8-24), x(9-23), (for generator)(29-51), (for state)(29-51), (for control)(29-51), _(30-49), x(30-49), (for index)(33-49), (for limit)(33-49), (for step)(33-49), y(34-48)
  0000  LOADNIL   R4..R4 = nil
  0001  GETTABUP  R5 = _ENV[K0('ipairs')]
  0002  MOVE      R6 = R0
  0003  CALL      R5 = call(R5, 3 args, 1 rets)
  0004  JMP       (jump)   -> 24
  0005  LOADK     R10 = K1 1
  0006  GETTABLE  R11 = R0[K2('m_boardWidth')]
  0007  LOADK     R12 = K1 1
  0008  FORPREP   forprep R10(sBx=14)   -> 23
  0009  SELF      R15 = R0[K3('XY2Index')] (self)
  0010  MOVE      R16 = R0
  0011  MOVE      R17 = R0
  0012  CALL      R14 = call(R14, 1 args, 3 rets)
  0013  MOVE      R4 = R0
  0014  GETTABLE  R14 = R0[K4('m_arrCubeView')]
  0015  GETTABLE  R14 = R14[R4]
  0016  SELF      R15 = R14[K5('ShowBgEffect')] (self)
  0017  GETTABUP  R16 = _ENV[K6('math')]
  0018  GETTABLE  R16 = R16[K7('min')]
  0019  MOVE      R17 = R0
  0020  LOADK     R18 = K8 5
  0021  CALL      R16 = call(R16, -1 args, 2 rets)
  0022  CALL      R14 = call(R14, 0 args, -1 rets)
  0023  FORLOOP   forloop R10(sBx=-15)   -> 9
  0024  TFORCALL  tforcall R5
  0025  TFORLOOP  tforloop R7(sBx=-21)   -> 5
  0026  GETTABUP  R5 = _ENV[K0('ipairs')]
  0027  MOVE      R6 = R0
  0028  CALL      R5 = call(R5, 3 args, 1 rets)
  0029  JMP       (jump)   -> 49
  0030  LOADK     R10 = K1 1
  0031  GETTABLE  R11 = R0[K9('m_boardHeight')]
  0032  LOADK     R12 = K1 1
  0033  FORPREP   forprep R10(sBx=14)   -> 48
  0034  SELF      R15 = R0[K3('XY2Index')] (self)
  0035  MOVE      R16 = R0
  0036  MOVE      R17 = R0
  0037  CALL      R14 = call(R14, 1 args, 3 rets)
  0038  MOVE      R4 = R0
  0039  GETTABLE  R14 = R0[K4('m_arrCubeView')]
  0040  GETTABLE  R14 = R14[R4]
  0041  SELF      R15 = R14[K5('ShowBgEffect')] (self)
  0042  GETTABUP  R16 = _ENV[K6('math')]
  0043  GETTABLE  R16 = R16[K7('min')]
  0044  MOVE      R17 = R0
  0045  LOADK     R18 = K8 5
  0046  CALL      R16 = call(R16, -1 args, 2 rets)
  0047  CALL      R14 = call(R14, 0 args, -1 rets)
  0048  FORLOOP   forloop R10(sBx=-15)   -> 34
  0049  TFORCALL  tforcall R5
  0050  TFORLOOP  tforloop R7(sBx=-21)   -> 30
  0051  RETURN    return R0..R-1
; ---------- proto27 [_ResetCubeBgEffect] ----------
  ; fn ?  line 418-427 np=1 va=0 ms=14 code=22 consts=8 upvals=0 protos=0
  ;   K[0]='m_tokenPos'
  ;   K[1]=nil
  ;   K[2]=1
  ;   K[3]='m_boardWidth'
  ;   K[4]='m_boardHeight'
  ;   K[5]='XY2Index'
  ;   K[6]='m_arrCubeView'
  ;   K[7]='ResetBgEffect'
  ;   locals: self(0-22), index(2-22), (for index)(5-21), (for limit)(5-21), (for step)(5-21), x(6-20), (for index)(9-20), (for limit)(9-20), (for step)(9-20), y(10-19)
  0000  SETTABLE  R0[K0('m_tokenPos')] = K1(nil)
  0001  LOADNIL   R1..R1 = nil
  0002  LOADK     R2 = K2 1
  0003  GETTABLE  R3 = R0[K3('m_boardWidth')]
  0004  LOADK     R4 = K2 1
  0005  FORPREP   forprep R2(sBx=14)   -> 20
  0006  LOADK     R6 = K2 1
  0007  GETTABLE  R7 = R0[K4('m_boardHeight')]
  0008  LOADK     R8 = K2 1
  0009  FORPREP   forprep R6(sBx=9)   -> 19
  0010  SELF      R11 = R0[K5('XY2Index')] (self)
  0011  MOVE      R12 = R0
  0012  MOVE      R13 = R0
  0013  CALL      R10 = call(R10, 1 args, 3 rets)
  0014  MOVE      R1 = R0
  0015  GETTABLE  R10 = R0[K6('m_arrCubeView')]
  0016  GETTABLE  R10 = R10[R1]
  0017  SELF      R11 = R10[K7('ResetBgEffect')] (self)
  0018  CALL      R10 = call(R10, 0 args, 1 rets)
  0019  FORLOOP   forloop R6(sBx=-10)   -> 10
  0020  FORLOOP   forloop R2(sBx=-15)   -> 6
  0021  RETURN    return R0..R-1
; ---------- proto28 [_GetAdsorbBoardMatrixPos] ----------
  ; fn ?  line 430-497 np=2 va=0 ms=33 code=147 consts=29 upvals=1 protos=1
  ;   K[0]='transform'
  ;   K[1]='GetCornerAnchoredPosition'
  ;   K[2]='anchoredPosition'
  ;   K[3]='m_blockItemContentRect'
  ;   K[4]='m_boardRootRect'
  ;   K[5]='y'
  ;   K[6]='x'
  ;   K[7]=1
  ;   K[8]='m_boardHeight'
  ;   K[9]='GetAnchoredPosY'
  ;   K[10]='TileSize'
  ;   K[11]='math'
  ;   K[12]='min'
  ;   K[13]='max'
  ;   K[14]='m_boardWidth'
  ;   K[15]='GetAnchoredPosX'
  ;   K[16]='Vector2'
  ;   K[17]=2
  ;   K[18]='GetAnchoredPositionByXY'
  ;   K[19]='IsCubeOverlap'
  ;   K[20]='table'
  ;   K[21]='insert'
  ;   K[22]='dis'
  ;   K[23]='Distance'
  ;   K[24]='boardPos'
  ;   K[25]='m_boardModel'
  ;   K[26]='CreateBoardPosition'
  ;   K[27]='sort'
  ;   K[28]='ipairs'
  ;   upvals: _ENV
  ;   locals: self(0-147), itemView(0-147), rect(1-147), luPos(3-147), rdPos(3-147), baseAnchorPos(11-147), minPosY(14-147), minPosX(15-147), maxPosY(16-147), maxPosX(17-147), minY(18-147), maxY(19-147), (for index)(22-48), (for limit)(22-48), (for step)(22-48), y(23-47), minX(49-147), maxX(50-147), (for index)(53-79), (for limit)(53-79), (for step)(53-79), x(54-78), cubeLuPos(87-147), arrCoverPosInfo(88-147), dis(89-147), anchorPos(89-147), (for index)(92-128), (for limit)(92-128), (for step)(92-128), y(93-127), (for index)(96-127), (for limit)(96-127), (for step)(96-127), x(97-126), arrCoverPos(134-147), (for generator)(137-145), (for state)(137-145), (for control)(137-145), _(138-143), posInfo(138-143)
  0000  GETTABLE  R2 = R1[K0('transform')]
  0001  SELF      R4 = R1[K1('GetCornerAnchoredPosition')] (self)
  0002  CALL      R3 = call(R3, 2 args, 1 rets)
  0003  GETTABLE  R5 = R1[K0('transform')]
  0004  GETTABLE  R5 = R5[K2('anchoredPosition')]
  0005  GETTABLE  R6 = R0[K3('m_blockItemContentRect')]
  0006  GETTABLE  R6 = R6[K2('anchoredPosition')]
  0007  ADD       R5 = R6 add R5
  0008  GETTABLE  R6 = R0[K4('m_boardRootRect')]
  0009  GETTABLE  R6 = R6[K2('anchoredPosition')]
  0010  SUB       R5 = R6 sub R5
  0011  ADD       R3 = R3 add R5
  0012  ADD       R4 = R4 add R5
  0013  GETTABLE  R6 = R4[K5('y')]
  0014  GETTABLE  R7 = R3[K6('x')]
  0015  GETTABLE  R8 = R3[K5('y')]
  0016  GETTABLE  R9 = R4[K6('x')]
  0017  LOADK     R10 = K7 1
  0018  GETTABLE  R11 = R0[K8('m_boardHeight')]
  0019  LOADK     R12 = K7 1
  0020  GETTABLE  R13 = R0[K8('m_boardHeight')]
  0021  LOADK     R14 = K7 1
  0022  FORPREP   forprep R12(sBx=24)   -> 47
  0023  SELF      R17 = R0[K9('GetAnchoredPosY')] (self)
  0024  MOVE      R18 = R0
  0025  CALL      R16 = call(R16, 1 args, 2 rets)
  0026  GETTABLE  R17 = R0[K10('TileSize')]
  0027  ADD       R16 = R17 add R16
  0028  LT        if R0 lt R6   -> -122844
  0029  JMP       (jump)   -> 36
  0030  GETTABUP  R16 = _ENV[K11('math')]
  0031  GETTABLE  R16 = R16[K12('min')]
  0032  MOVE      R17 = R0
  0033  SUB       R18 = K7(1) sub R15
  0034  CALL      R16 = call(R16, 1 args, 2 rets)
  0035  MOVE      R11 = R0
  0036  SELF      R17 = R0[K9('GetAnchoredPosY')] (self)
  0037  MOVE      R18 = R0
  0038  CALL      R16 = call(R16, 1 args, 2 rets)
  0039  LT        if R0 lt R16   -> -126919
  0040  JMP       (jump)   -> 47
  0041  GETTABUP  R16 = _ENV[K11('math')]
  0042  GETTABLE  R16 = R16[K13('max')]
  0043  MOVE      R17 = R0
  0044  ADD       R18 = K7(1) add R15
  0045  CALL      R16 = call(R16, 1 args, 2 rets)
  0046  MOVE      R10 = R0
  0047  FORLOOP   forloop R12(sBx=-25)   -> 23
  0048  LOADK     R12 = K7 1
  0049  GETTABLE  R13 = R0[K14('m_boardWidth')]
  0050  LOADK     R14 = K7 1
  0051  GETTABLE  R15 = R0[K14('m_boardWidth')]
  0052  LOADK     R16 = K7 1
  0053  FORPREP   forprep R14(sBx=24)   -> 78
  0054  SELF      R19 = R0[K15('GetAnchoredPosX')] (self)
  0055  MOVE      R20 = R0
  0056  CALL      R18 = call(R18, 1 args, 2 rets)
  0057  GETTABLE  R19 = R0[K10('TileSize')]
  0058  ADD       R18 = R19 add R18
  0059  LT        if R0 lt R7   -> -121788
  0060  JMP       (jump)   -> 67
  0061  GETTABUP  R18 = _ENV[K11('math')]
  0062  GETTABLE  R18 = R18[K13('max')]
  0063  MOVE      R19 = R0
  0064  ADD       R20 = K7(1) add R17
  0065  CALL      R18 = call(R18, 1 args, 2 rets)
  0066  MOVE      R12 = R0
  0067  SELF      R19 = R0[K15('GetAnchoredPosX')] (self)
  0068  MOVE      R20 = R0
  0069  CALL      R18 = call(R18, 1 args, 2 rets)
  0070  LT        if R0 lt R18   -> -126374
  0071  JMP       (jump)   -> 78
  0072  GETTABUP  R18 = _ENV[K11('math')]
  0073  GETTABLE  R18 = R18[K12('min')]
  0074  MOVE      R19 = R0
  0075  SUB       R20 = K7(1) sub R17
  0076  CALL      R18 = call(R18, 1 args, 2 rets)
  0077  MOVE      R13 = R0
  0078  FORLOOP   forloop R14(sBx=-25)   -> 54
  0079  GETTABUP  R14 = _ENV[K16('Vector2')]
  0080  GETTABLE  R15 = R0[K10('TileSize')]
  0081  DIV       R15 = K17(2) div R15
  0082  GETTABLE  R16 = R0[K10('TileSize')]
  0083  UNM       R16 = unm R0
  0084  DIV       R16 = K17(2) div R16
  0085  CALL      R14 = call(R14, 1 args, 2 rets)
  0086  ADD       R14 = R14 add R3
  0087  NEWTABLE  R15 = {} (0 items)
  0088  LOADNIL   R16..R16 = nil
  0089  MOVE      R18 = R0
  0090  MOVE      R19 = R0
  0091  LOADK     R20 = K7 1
  0092  FORPREP   forprep R18(sBx=34)   -> 127
  0093  MOVE      R22 = R0
  0094  MOVE      R23 = R0
  0095  LOADK     R24 = K7 1
  0096  FORPREP   forprep R22(sBx=29)   -> 126
  0097  SELF      R27 = R0[K18('GetAnchoredPositionByXY')] (self)
  0098  MOVE      R28 = R0
  0099  MOVE      R29 = R0
  0100  CALL      R26 = call(R26, 1 args, 3 rets)
  0101  MOVE      R17 = R0
  0102  SELF      R27 = R0[K19('IsCubeOverlap')] (self)
  0103  MOVE      R28 = R0
  0104  MOVE      R29 = R0
  0105  GETTABLE  R30 = R0[K10('TileSize')]
  0106  CALL      R26 = call(R26, 1 args, 4 rets)
  0107  TEST      if not R26 then   -> -130963
  0108  JMP       (jump)   -> 126
  0109  GETTABUP  R26 = _ENV[K20('table')]
  0110  GETTABLE  R26 = R26[K21('insert')]
  0111  MOVE      R27 = R0
  0112  NEWTABLE  R28 = {} (0 items)
  0113  GETTABUP  R29 = _ENV[K16('Vector2')]
  0114  GETTABLE  R29 = R29[K23('Distance')]
  0115  MOVE      R30 = R0
  0116  MOVE      R31 = R0
  0117  CALL      R29 = call(R29, 1 args, 2 rets)
  0118  SETTABLE  R28[K22('dis')] = R29
  0119  GETTABLE  R29 = R0[K25('m_boardModel')]
  0120  SELF      R30 = R29[K26('CreateBoardPosition')] (self)
  0121  MOVE      R31 = R0
  0122  MOVE      R32 = R0
  0123  CALL      R29 = call(R29, 1 args, 3 rets)
  0124  SETTABLE  R28[K24('boardPos')] = R29
  0125  CALL      R26 = call(R26, 0 args, 2 rets)
  0126  FORLOOP   forloop R22(sBx=-30)   -> 97
  0127  FORLOOP   forloop R18(sBx=-35)   -> 93
  0128  GETTABUP  R18 = _ENV[K20('table')]
  0129  GETTABLE  R18 = R18[K27('sort')]
  0130  MOVE      R19 = R0
  0131  CLOSURE   R20 = closure proto0
  0132  CALL      R18 = call(R18, 0 args, 2 rets)
  0133  NEWTABLE  R18 = {} (0 items)
  0134  GETTABUP  R19 = _ENV[K28('ipairs')]
  0135  MOVE      R20 = R0
  0136  CALL      R19 = call(R19, 3 args, 1 rets)
  0137  JMP       (jump)   -> 143
  0138  GETTABUP  R24 = _ENV[K20('table')]
  0139  GETTABLE  R24 = R24[K21('insert')]
  0140  MOVE      R25 = R0
  0141  GETTABLE  R26 = R23[K24('boardPos')]
  0142  CALL      R24 = call(R24, 0 args, 2 rets)
  0143  TFORCALL  tforcall R19
  0144  TFORLOOP  tforloop R21(sBx=-7)   -> 138
  0145  RETURN    return R18..R17
  0146  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 487-489 np=2 va=0 ms=4 code=8 consts=1 upvals=0 protos=0
    ;   K[0]='dis'
    ;   locals: a(0-8), b(0-8)
    0000  GETTABLE  R2 = R0[K0('dis')]
    0001  GETTABLE  R3 = R1[K0('dis')]
    0002  LT        if R1 lt R3   -> -130041
    0003  JMP       (jump)   -> 5
    0004  LOADBOOL  R2 = false
    0005  LOADBOOL  R2 = true
    0006  RETURN    return R2..R1
    0007  RETURN    return R0..R-1
; ---------- proto29 [IsCubeOverlap] ----------
  ; fn ?  line 500-507 np=4 va=0 ms=8 code=20 consts=4 upvals=1 protos=0
  ;   K[0]='math'
  ;   K[1]='abs'
  ;   K[2]='x'
  ;   K[3]='y'
  ;   upvals: _ENV
  ;   locals: self(0-20), center1(0-20), center2(0-20), size(0-20), dx(6-20), dy(12-20)
  0000  GETTABUP  R4 = _ENV[K0('math')]
  0001  GETTABLE  R4 = R4[K1('abs')]
  0002  GETTABLE  R5 = R2[K2('x')]
  0003  GETTABLE  R6 = R1[K2('x')]
  0004  SUB       R5 = R6 sub R5
  0005  CALL      R4 = call(R4, 1 args, 1 rets)
  0006  GETTABUP  R5 = _ENV[K0('math')]
  0007  GETTABLE  R5 = R5[K1('abs')]
  0008  GETTABLE  R6 = R2[K3('y')]
  0009  GETTABLE  R7 = R1[K3('y')]
  0010  SUB       R6 = R7 sub R6
  0011  CALL      R5 = call(R5, 1 args, 1 rets)
  0012  LE        if R0 le R3   -> -129007
  0013  JMP       (jump)   -> 16
  0014  LE        if R1 le R3   -> -128493
  0015  JMP       (jump)   -> 17
  0016  LOADBOOL  R6 = false
  0017  LOADBOOL  R6 = true
  0018  RETURN    return R6..R5
  0019  RETURN    return R0..R-1
; ---------- proto30 [_OnPlaceBlockItem] ----------
  ; fn ?  line 514-534 np=2 va=0 ms=16 code=45 consts=16 upvals=1 protos=0
  ;   K[0]='arrBoardPos'
  ;   K[1]='Table'
  ;   K[2]='IsEmpty'
  ;   K[3]='Vector2'
  ;   K[4]='zero'
  ;   K[5]='ipairs'
  ;   K[6]='m_arrCubeView'
  ;   K[7]='XY2Index'
  ;   K[8]='GetX'
  ;   K[9]='GetY'
  ;   K[10]=nil
  ;   K[11]='SetViewState'
  ;   K[12]='EBlockCubeViewState'
  ;   K[13]='Valid'
  ;   K[14]='GetAnchoredPositionByXY'
  ;   K[15]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-45), msg(0-45), arrBoardPos(3-45), centerPos(12-45), cubeView(13-45), (for generator)(16-40), (for state)(16-40), (for control)(16-40), _(17-38), boardPos(17-38)
  0000  TESTSET   if R0 then R2   -> -130558
  0001  JMP       (jump)   -> 3
  0002  GETTABLE  R2 = R1[K0('arrBoardPos')]
  0003  GETTABUP  R3 = _ENV[K1('Table')]
  0004  GETTABLE  R3 = R3[K2('IsEmpty')]
  0005  MOVE      R4 = R0
  0006  CALL      R3 = call(R3, 1 args, 1 rets)
  0007  TEST      if not R3 then   -> -131063
  0008  JMP       (jump)   -> 10
  0009  RETURN    return R0..R-1
  0010  GETTABUP  R3 = _ENV[K3('Vector2')]
  0011  GETTABLE  R3 = R3[K4('zero')]
  0012  LOADNIL   R4..R4 = nil
  0013  GETTABUP  R5 = _ENV[K5('ipairs')]
  0014  MOVE      R6 = R0
  0015  CALL      R5 = call(R5, 3 args, 1 rets)
  0016  JMP       (jump)   -> 38
  0017  GETTABLE  R10 = R0[K6('m_arrCubeView')]
  0018  SELF      R12 = R0[K7('XY2Index')] (self)
  0019  SELF      R14 = R9[K8('GetX')] (self)
  0020  CALL      R13 = call(R13, 1 args, 1 rets)
  0021  SELF      R15 = R9[K9('GetY')] (self)
  0022  CALL      R14 = call(R14, -1 args, 1 rets)
  0023  CALL      R11 = call(R11, 1 args, -1 rets)
  0024  GETTABLE  R4 = R10[R11]
  0025  EQ        if R1 eq K10(nil)   -> -128731
  0026  JMP       (jump)   -> 31
  0027  SELF      R11 = R4[K11('SetViewState')] (self)
  0028  GETTABUP  R12 = _ENV[K12('EBlockCubeViewState')]
  0029  GETTABLE  R12 = R12[K13('Valid')]
  0030  CALL      R10 = call(R10, 0 args, 2 rets)
  0031  SELF      R11 = R0[K14('GetAnchoredPositionByXY')] (self)
  0032  SELF      R13 = R9[K8('GetX')] (self)
  0033  CALL      R12 = call(R12, 1 args, 1 rets)
  0034  SELF      R14 = R9[K9('GetY')] (self)
  0035  CALL      R13 = call(R13, -1 args, 1 rets)
  0036  CALL      R10 = call(R10, 1 args, -1 rets)
  0037  ADD       R3 = R10 add R3
  0038  TFORCALL  tforcall R5
  0039  TFORLOOP  tforloop R7(sBx=-23)   -> 17
  0040  LEN       R5 = len R0
  0041  DIV       R3 = R5 div R3
  0042  SELF      R6 = R0[K15('_OnViewChanged')] (self)
  0043  CALL      R5 = call(R5, 0 args, 1 rets)
  0044  RETURN    return R0..R-1
; ---------- proto31 [_OnAddBlockItem] ----------
  ; fn ?  line 536-553 np=2 va=0 ms=11 code=36 consts=14 upvals=1 protos=0
  ;   K[0]='index'
  ;   K[1]='itemConfig'
  ;   K[2]=nil
  ;   K[3]='GameObject'
  ;   K[4]='Instantiate'
  ;   K[5]='m_blockItemViewGo'
  ;   K[6]='m_blockItemContentRect'
  ;   K[7]='UIUtil'
  ;   K[8]='SetActive'
  ;   K[9]='GetLuaTable'
  ;   K[10]='Init'
  ;   K[11]='m_arrItemView'
  ;   K[12]='_SetItemViewInSelectArea'
  ;   K[13]='PlayEnterAnim'
  ;   upvals: _ENV
  ;   locals: self(0-36), msg(0-36), index(3-36), itemConfig(6-36), go(16-36), itemView(23-36)
  0000  TESTSET   if R0 then R2   -> -130558
  0001  JMP       (jump)   -> 3
  0002  GETTABLE  R2 = R1[K0('index')]
  0003  TESTSET   if R0 then R3   -> -130555
  0004  JMP       (jump)   -> 6
  0005  GETTABLE  R3 = R1[K1('itemConfig')]
  0006  EQ        if R1 eq K2(nil)   -> -129782
  0007  JMP       (jump)   -> 10
  0008  EQ        if R0 eq K2(nil)   -> -129268
  0009  JMP       (jump)   -> 11
  0010  RETURN    return R0..R-1
  0011  GETTABUP  R4 = _ENV[K3('GameObject')]
  0012  GETTABLE  R4 = R4[K4('Instantiate')]
  0013  GETTABLE  R5 = R0[K5('m_blockItemViewGo')]
  0014  GETTABLE  R6 = R0[K6('m_blockItemContentRect')]
  0015  CALL      R4 = call(R4, 1 args, 2 rets)
  0016  GETTABUP  R5 = _ENV[K7('UIUtil')]
  0017  GETTABLE  R5 = R5[K8('SetActive')]
  0018  MOVE      R6 = R0
  0019  LOADBOOL  R7 = true
  0020  CALL      R5 = call(R5, 0 args, 2 rets)
  0021  SELF      R6 = R4[K9('GetLuaTable')] (self)
  0022  CALL      R5 = call(R5, 1 args, 1 rets)
  0023  SELF      R7 = R5[K10('Init')] (self)
  0024  MOVE      R8 = R0
  0025  MOVE      R9 = R0
  0026  MOVE      R10 = R0
  0027  CALL      R6 = call(R6, 0 args, 4 rets)
  0028  GETTABLE  R6 = R0[K11('m_arrItemView')]
  0029  SETTABLE  R6[R2] = R5
  0030  SELF      R7 = R0[K12('_SetItemViewInSelectArea')] (self)
  0031  MOVE      R8 = R0
  0032  CALL      R6 = call(R6, 0 args, 2 rets)
  0033  SELF      R7 = R5[K13('PlayEnterAnim')] (self)
  0034  CALL      R6 = call(R6, 0 args, 1 rets)
  0035  RETURN    return R0..R-1
; ---------- proto32 [_OnRemoveBoardCube] ----------
  ; fn ?  line 555-606 np=2 va=0 ms=22 code=94 consts=30 upvals=1 protos=2
  ;   K[0]='arrBoardPos'
  ;   K[1]='ratio'
  ;   K[2]=1
  ;   K[3]='Table'
  ;   K[4]='IsEmpty'
  ;   K[5]='arrRemovedRow'
  ;   K[6]='arrRemovedCol'
  ;   K[7]=0.05
  ;   K[8]='DOTween'
  ;   K[9]='Sequence'
  ;   K[10]='ipairs'
  ;   K[11]='m_boardWidth'
  ;   K[12]='m_arrCubeView'
  ;   K[13]='XY2Index'
  ;   K[14]='InsertCallback'
  ;   K[15]='m_boardHeight'
  ;   K[16]='math'
  ;   K[17]='min'
  ;   K[18]='max'
  ;   K[19]=5
  ;   K[20]='GM'
  ;   K[21]='AudioModel'
  ;   K[22]='PlayEffect'
  ;   K[23]='AudioFileConfigName'
  ;   K[24]='SfxBlockCombo'
  ;   K[25]='PlatformInterface'
  ;   K[26]='Vibrate'
  ;   K[27]='EVibrationType'
  ;   K[28]='Medium'
  ;   K[29]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-94), msg(0-94), arrBoardPos(3-94), ratio(9-94), arrRemovedRow(17-94), arrRemovedCol(18-94), interval(19-94), seq(22-94), (for generator)(25-45), (for state)(25-45), (for control)(25-45), _(26-43), y(26-43), (for index)(29-43), (for limit)(29-43), (for step)(29-43), x(30-42), cubeView(36-42), (for generator)(48-68), (for state)(48-68), (for control)(48-68), _(49-66), x(49-66), (for index)(52-66), (for limit)(52-66), (for step)(52-66), y(53-65), cubeView(59-65), safeRatio(77-94)
  0000  TESTSET   if R0 then R2   -> -130558
  0001  JMP       (jump)   -> 3
  0002  GETTABLE  R2 = R1[K0('arrBoardPos')]
  0003  TEST      if not R1 then   -> -131067
  0004  JMP       (jump)   -> 8
  0005  GETTABLE  R3 = R1[K1('ratio')]
  0006  TEST      if not R3 then   -> -131063
  0007  JMP       (jump)   -> 9
  0008  LOADK     R3 = K2 1
  0009  GETTABUP  R4 = _ENV[K3('Table')]
  0010  GETTABLE  R4 = R4[K4('IsEmpty')]
  0011  MOVE      R5 = R0
  0012  CALL      R4 = call(R4, 1 args, 1 rets)
  0013  TEST      if not R4 then   -> -131057
  0014  JMP       (jump)   -> 16
  0015  RETURN    return R0..R-1
  0016  GETTABLE  R4 = R1[K5('arrRemovedRow')]
  0017  GETTABLE  R5 = R1[K6('arrRemovedCol')]
  0018  LOADK     R6 = K7 0.05
  0019  GETTABUP  R7 = _ENV[K8('DOTween')]
  0020  GETTABLE  R7 = R7[K9('Sequence')]
  0021  CALL      R7 = call(R7, 1 args, 0 rets)
  0022  GETTABUP  R8 = _ENV[K10('ipairs')]
  0023  MOVE      R9 = R0
  0024  CALL      R8 = call(R8, 3 args, 1 rets)
  0025  JMP       (jump)   -> 43
  0026  LOADK     R13 = K2 1
  0027  GETTABLE  R14 = R0[K11('m_boardWidth')]
  0028  LOADK     R15 = K2 1
  0029  FORPREP   forprep R13(sBx=12)   -> 42
  0030  GETTABLE  R17 = R0[K12('m_arrCubeView')]
  0031  SELF      R19 = R0[K13('XY2Index')] (self)
  0032  MOVE      R20 = R0
  0033  MOVE      R21 = R0
  0034  CALL      R18 = call(R18, 1 args, 3 rets)
  0035  GETTABLE  R17 = R17[R18]
  0036  SELF      R19 = R7[K14('InsertCallback')] (self)
  0037  SUB       R20 = K2(1) sub R16
  0038  MUL       R20 = R6 mul R20
  0039  CLOSURE   R21 = closure proto0
  0040  CALL      R18 = call(R18, 0 args, 3 rets)
  0041  JMP       (jump)   -> 42
  0042  FORLOOP   forloop R13(sBx=-13)   -> 30
  0043  TFORCALL  tforcall R8
  0044  TFORLOOP  tforloop R10(sBx=-19)   -> 26
  0045  GETTABUP  R8 = _ENV[K10('ipairs')]
  0046  MOVE      R9 = R0
  0047  CALL      R8 = call(R8, 3 args, 1 rets)
  0048  JMP       (jump)   -> 66
  0049  LOADK     R13 = K2 1
  0050  GETTABLE  R14 = R0[K15('m_boardHeight')]
  0051  LOADK     R15 = K2 1
  0052  FORPREP   forprep R13(sBx=12)   -> 65
  0053  GETTABLE  R17 = R0[K12('m_arrCubeView')]
  0054  SELF      R19 = R0[K13('XY2Index')] (self)
  0055  MOVE      R20 = R0
  0056  MOVE      R21 = R0
  0057  CALL      R18 = call(R18, 1 args, 3 rets)
  0058  GETTABLE  R17 = R17[R18]
  0059  SELF      R19 = R7[K14('InsertCallback')] (self)
  0060  SUB       R20 = K2(1) sub R16
  0061  MUL       R20 = R6 mul R20
  0062  CLOSURE   R21 = closure proto1
  0063  CALL      R18 = call(R18, 0 args, 3 rets)
  0064  JMP       (jump)   -> 65
  0065  FORLOOP   forloop R13(sBx=-13)   -> 53
  0066  TFORCALL  tforcall R8
  0067  TFORLOOP  tforloop R10(sBx=-19)   -> 49
  0068  GETTABUP  R8 = _ENV[K16('math')]
  0069  GETTABLE  R8 = R8[K17('min')]
  0070  GETTABUP  R9 = _ENV[K16('math')]
  0071  GETTABLE  R9 = R9[K18('max')]
  0072  MOVE      R10 = R0
  0073  LOADK     R11 = K2 1
  0074  CALL      R9 = call(R9, 1 args, 2 rets)
  0075  LOADK     R10 = K19 5
  0076  CALL      R8 = call(R8, 1 args, 2 rets)
  0077  GETTABUP  R9 = _ENV[K20('GM')]
  0078  GETTABLE  R9 = R9[K21('AudioModel')]
  0079  SELF      R10 = R9[K22('PlayEffect')] (self)
  0080  GETTABUP  R11 = _ENV[K23('AudioFileConfigName')]
  0081  LOADK     R12 = K24 'SfxBlockCombo'
  0082  MOVE      R13 = R0
  0083  CONCAT    R12 = concat(R12..R12)
  0084  GETTABLE  R11 = R11[R12]
  0085  CALL      R9 = call(R9, 0 args, 2 rets)
  0086  GETTABUP  R9 = _ENV[K25('PlatformInterface')]
  0087  GETTABLE  R9 = R9[K26('Vibrate')]
  0088  GETTABUP  R10 = _ENV[K27('EVibrationType')]
  0089  GETTABLE  R10 = R10[K28('Medium')]
  0090  CALL      R9 = call(R9, 0 args, 1 rets)
  0091  SELF      R10 = R0[K29('_OnViewChanged')] (self)
  0092  CALL      R9 = call(R9, 0 args, 1 rets)
  0093  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 583-586 np=0 va=0 ms=5 code=14 consts=7 upvals=3 protos=0
    ;   K[0]='SetViewState'
    ;   K[1]='EBlockCubeViewState'
    ;   K[2]='Empty'
    ;   K[3]='ShowDisappearEffect'
    ;   K[4]='math'
    ;   K[5]='min'
    ;   K[6]=5
    ;   upvals: cubeView, _ENV, ratio
    0000  GETUPVAL  R0 = cubeView
    0001  SELF      R1 = R0[K0('SetViewState')] (self)
    0002  GETTABUP  R2 = _ENV[K1('EBlockCubeViewState')]
    0003  GETTABLE  R2 = R2[K2('Empty')]
    0004  CALL      R0 = call(R0, 0 args, 2 rets)
    0005  GETUPVAL  R0 = cubeView
    0006  SELF      R1 = R0[K3('ShowDisappearEffect')] (self)
    0007  GETTABUP  R2 = _ENV[K4('math')]
    0008  GETTABLE  R2 = R2[K5('min')]
    0009  GETUPVAL  R3 = cubeView
    0010  LOADK     R4 = K6 5
    0011  CALL      R2 = call(R2, -1 args, 2 rets)
    0012  CALL      R0 = call(R0, 0 args, -1 rets)
    0013  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 593-596 np=0 va=0 ms=5 code=14 consts=7 upvals=3 protos=0
    ;   K[0]='SetViewState'
    ;   K[1]='EBlockCubeViewState'
    ;   K[2]='Empty'
    ;   K[3]='ShowDisappearEffect'
    ;   K[4]='math'
    ;   K[5]='min'
    ;   K[6]=5
    ;   upvals: cubeView, _ENV, ratio
    0000  GETUPVAL  R0 = cubeView
    0001  SELF      R1 = R0[K0('SetViewState')] (self)
    0002  GETTABUP  R2 = _ENV[K1('EBlockCubeViewState')]
    0003  GETTABLE  R2 = R2[K2('Empty')]
    0004  CALL      R0 = call(R0, 0 args, 2 rets)
    0005  GETUPVAL  R0 = cubeView
    0006  SELF      R1 = R0[K3('ShowDisappearEffect')] (self)
    0007  GETTABUP  R2 = _ENV[K4('math')]
    0008  GETTABLE  R2 = R2[K5('min')]
    0009  GETUPVAL  R3 = cubeView
    0010  LOADK     R4 = K6 5
    0011  CALL      R2 = call(R2, -1 args, 2 rets)
    0012  CALL      R0 = call(R0, 0 args, -1 rets)
    0013  RETURN    return R0..R-1
; ---------- proto33 [_OnAddScore] ----------
  ; fn ?  line 608-632 np=2 va=0 ms=14 code=57 consts=17 upvals=1 protos=0
  ;   K[0]='num'
  ;   K[1]='ratio'
  ;   K[2]='arrItemBoardPos'
  ;   K[3]='startScore'
  ;   K[4]=0
  ;   K[5]=nil
  ;   K[6]='rewards'
  ;   K[7]='PlayAcquireScoreAnim'
  ;   K[8]='Table'
  ;   K[9]='IsEmpty'
  ;   K[10]='pairs'
  ;   K[11]='m_arrItemView'
  ;   K[12]='UIUtil'
  ;   K[13]='IsEmptyComponent'
  ;   K[14]='PlayExitAnim'
  ;   K[15]='m_bPlayRewardAnim'
  ;   K[16]=true
  ;   upvals: _ENV
  ;   locals: self(0-57), msg(0-57), num(3-57), ratio(6-57), arrItemBoardPos(9-57), startScore(15-57), rewards(28-57), (for generator)(44-55), (for state)(44-55), (for control)(44-55), index(45-53), itemView(45-53)
  0000  TESTSET   if R0 then R2   -> -130558
  0001  JMP       (jump)   -> 3
  0002  GETTABLE  R2 = R1[K0('num')]
  0003  TESTSET   if R0 then R3   -> -130555
  0004  JMP       (jump)   -> 6
  0005  GETTABLE  R3 = R1[K1('ratio')]
  0006  TESTSET   if R0 then R4   -> -130552
  0007  JMP       (jump)   -> 9
  0008  GETTABLE  R4 = R1[K2('arrItemBoardPos')]
  0009  TEST      if not R1 then   -> -131061
  0010  JMP       (jump)   -> 14
  0011  GETTABLE  R5 = R1[K3('startScore')]
  0012  TEST      if not R5 then   -> -131057
  0013  JMP       (jump)   -> 15
  0014  LOADK     R5 = K4 0
  0015  EQ        if R1 eq K5(nil)   -> -129770
  0016  JMP       (jump)   -> 21
  0017  EQ        if R1 eq K5(nil)   -> -129256
  0018  JMP       (jump)   -> 21
  0019  EQ        if R0 eq K5(nil)   -> -128742
  0020  JMP       (jump)   -> 22
  0021  RETURN    return R0..R-1
  0022  TEST      if not R1 then   -> -131048
  0023  JMP       (jump)   -> 27
  0024  GETTABLE  R6 = R1[K6('rewards')]
  0025  TEST      if not R6 then   -> -131044
  0026  JMP       (jump)   -> 28
  0027  LOADNIL   R6..R6 = nil
  0028  SELF      R8 = R0[K7('PlayAcquireScoreAnim')] (self)
  0029  MOVE      R9 = R0
  0030  MOVE      R10 = R0
  0031  MOVE      R11 = R0
  0032  MOVE      R12 = R0
  0033  MOVE      R13 = R0
  0034  CALL      R7 = call(R7, 0 args, 6 rets)
  0035  GETTABUP  R7 = _ENV[K8('Table')]
  0036  GETTABLE  R7 = R7[K9('IsEmpty')]
  0037  MOVE      R8 = R0
  0038  CALL      R7 = call(R7, 1 args, 1 rets)
  0039  TEST      if not R7 then   -> -131030
  0040  JMP       (jump)   -> 56
  0041  GETTABUP  R7 = _ENV[K10('pairs')]
  0042  GETTABLE  R8 = R0[K11('m_arrItemView')]
  0043  CALL      R7 = call(R7, 3 args, 1 rets)
  0044  JMP       (jump)   -> 53
  0045  GETTABUP  R12 = _ENV[K12('UIUtil')]
  0046  GETTABLE  R12 = R12[K13('IsEmptyComponent')]
  0047  MOVE      R13 = R0
  0048  CALL      R12 = call(R12, 1 args, 1 rets)
  0049  TEST      if not R12 then   -> -131020
  0050  JMP       (jump)   -> 53
  0051  SELF      R13 = R11[K14('PlayExitAnim')] (self)
  0052  CALL      R12 = call(R12, 0 args, 1 rets)
  0053  TFORCALL  tforcall R7
  0054  TFORLOOP  tforloop R9(sBx=-10)   -> 45
  0055  SETTABLE  R0[K15('m_bPlayRewardAnim')] = K16(true)
  0056  RETURN    return R0..R-1
; ---------- proto34 [_OnOpenView] ----------
  ; fn ?  line 635-641 np=2 va=0 ms=5 code=13 consts=7 upvals=1 protos=0
  ;   K[0]='m_curSelectIndex'
  ;   K[1]=nil
  ;   K[2]='ResetSelectItemView'
  ;   K[3]='EventDispatcher'
  ;   K[4]='DispatchEvent'
  ;   K[5]='EEventType'
  ;   K[6]='BlockEndPlaceItem'
  ;   upvals: _ENV
  ;   locals: self(0-13), msg(0-13)
  0000  GETTABLE  R2 = R0[K0('m_curSelectIndex')]
  0001  EQ        if R1 eq K1(nil)   -> -129788
  0002  JMP       (jump)   -> 12
  0003  SELF      R3 = R0[K2('ResetSelectItemView')] (self)
  0004  GETTABLE  R4 = R0[K0('m_curSelectIndex')]
  0005  CALL      R2 = call(R2, 0 args, 2 rets)
  0006  SETTABLE  R0[K0('m_curSelectIndex')] = K1(nil)
  0007  GETTABUP  R2 = _ENV[K3('EventDispatcher')]
  0008  GETTABLE  R2 = R2[K4('DispatchEvent')]
  0009  GETTABUP  R3 = _ENV[K5('EEventType')]
  0010  GETTABLE  R3 = R3[K6('BlockEndPlaceItem')]
  0011  CALL      R2 = call(R2, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto35 [GetBlockSlider] ----------
  ; fn ?  line 647-649 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_blockActivitySlider'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_blockActivitySlider')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto36 [InitProgressSlider] ----------
  ; fn ?  line 651-653 np=1 va=0 ms=5 code=6 consts=3 upvals=0 protos=0
  ;   K[0]='m_blockActivitySlider'
  ;   K[1]='Init'
  ;   K[2]='m_boardModel'
  ;   locals: self(0-6)
  0000  GETTABLE  R1 = R0[K0('m_blockActivitySlider')]
  0001  SELF      R2 = R1[K1('Init')] (self)
  0002  GETTABLE  R3 = R0[K2('m_boardModel')]
  0003  MOVE      R4 = R0
  0004  CALL      R1 = call(R1, 0 args, 3 rets)
  0005  RETURN    return R0..R-1
; ---------- proto37 [PlayAcquireScoreAnim] ----------
  ; fn ?  line 655-749 np=6 va=0 ms=24 code=195 consts=61 upvals=1 protos=3
  ;   K[0]='Vector2'
  ;   K[1]='zero'
  ;   K[2]='ipairs'
  ;   K[3]='GetAnchoredPositionByXY'
  ;   K[4]='GetX'
  ;   K[5]='GetY'
  ;   K[6]='m_blockFlyScoreItem'
  ;   K[7]='transform'
  ;   K[8]='anchoredPosition'
  ;   K[9]='m_blockPromptText'
  ;   K[10]='GameObject'
  ;   K[11]='Instantiate'
  ;   K[12]='gameObject'
  ;   K[13]='parent'
  ;   K[14]='GetLuaTable'
  ;   K[15]='UIUtil'
  ;   K[16]='SetActive'
  ;   K[17]='m_boardModel'
  ;   K[18]='HasFinishedCurRound'
  ;   K[19]='Init'
  ;   K[20]=0.5
  ;   K[21]='SetLocalScale'
  ;   K[22]=0
  ;   K[23]=1
  ;   K[24]='GetTotalWidth'
  ;   K[25]=2
  ;   K[26]='TileSize'
  ;   K[27]='Spacing'
  ;   K[28]='m_boardWidth'
  ;   K[29]='x'
  ;   K[30]='SetAnchoredPosition'
  ;   K[31]='GetScore'
  ;   K[32]='GM'
  ;   K[33]='UIManager'
  ;   K[34]='SetEventLock'
  ;   K[35]='DOTween'
  ;   K[36]='Sequence'
  ;   K[37]=nil
  ;   K[38]='AppendCallback'
  ;   K[39]='AppendInterval'
  ;   K[40]=1.5
  ;   K[41]='Append'
  ;   K[42]='DOScale'
  ;   K[43]='Vector3'
  ;   K[44]=1.8
  ;   K[45]=0.1
  ;   K[46]='SetEase'
  ;   K[47]='Ease'
  ;   K[48]='InSine'
  ;   K[49]='OutSine'
  ;   K[50]='DOJump'
  ;   K[51]='m_blockActivitySlider'
  ;   K[52]='GetTargetPosition'
  ;   K[53]=10
  ;   K[54]=0.8
  ;   K[55]='InOutSine'
  ;   K[56]='Join'
  ;   K[57]='V3One'
  ;   K[58]=0.4
  ;   K[59]='m_mapScoreSeq'
  ;   K[60]=true
  ;   upvals: _ENV
  ;   locals: self(0-195), num(0-195), ratio(0-195), rewards(0-195), arrItemBoardPos(0-195), startScore(0-195), centerPos(2-195), cubeView(3-195), (for generator)(6-16), (for state)(6-16), (for control)(6-16), _(7-14), boardPos(7-14), go(32-195), flyScoreItem(34-195), bFinishedRound(42-195), rect(47-195), flyDuration(48-195), promptText(55-195), promptGo(65-108), width(73-108), halfWidth(74-108), leftAnchorX(75-108), rightAnchorX(80-108), anchorX(83-108), endScore(111-195), seq(122-195)
  0000  GETTABUP  R6 = _ENV[K0('Vector2')]
  0001  GETTABLE  R6 = R6[K1('zero')]
  0002  LOADNIL   R7..R7 = nil
  0003  GETTABUP  R8 = _ENV[K2('ipairs')]
  0004  MOVE      R9 = R0
  0005  CALL      R8 = call(R8, 3 args, 1 rets)
  0006  JMP       (jump)   -> 14
  0007  SELF      R14 = R0[K3('GetAnchoredPositionByXY')] (self)
  0008  SELF      R16 = R12[K4('GetX')] (self)
  0009  CALL      R15 = call(R15, 1 args, 1 rets)
  0010  SELF      R17 = R12[K5('GetY')] (self)
  0011  CALL      R16 = call(R16, -1 args, 1 rets)
  0012  CALL      R13 = call(R13, 1 args, -1 rets)
  0013  ADD       R6 = R13 add R6
  0014  TFORCALL  tforcall R8
  0015  TFORLOOP  tforloop R10(sBx=-9)   -> 7
  0016  LEN       R8 = len R0
  0017  DIV       R6 = R8 div R6
  0018  GETTABLE  R8 = R0[K6('m_blockFlyScoreItem')]
  0019  GETTABLE  R8 = R8[K7('transform')]
  0020  SETTABLE  R8[K8('anchoredPosition')] = R6
  0021  GETTABLE  R8 = R0[K9('m_blockPromptText')]
  0022  GETTABLE  R8 = R8[K7('transform')]
  0023  SETTABLE  R8[K8('anchoredPosition')] = R6
  0024  GETTABUP  R8 = _ENV[K10('GameObject')]
  0025  GETTABLE  R8 = R8[K11('Instantiate')]
  0026  GETTABLE  R9 = R0[K6('m_blockFlyScoreItem')]
  0027  GETTABLE  R9 = R9[K12('gameObject')]
  0028  GETTABLE  R10 = R0[K6('m_blockFlyScoreItem')]
  0029  GETTABLE  R10 = R10[K7('transform')]
  0030  GETTABLE  R10 = R10[K13('parent')]
  0031  CALL      R8 = call(R8, 1 args, 2 rets)
  0032  SELF      R10 = R8[K14('GetLuaTable')] (self)
  0033  CALL      R9 = call(R9, 1 args, 1 rets)
  0034  GETTABUP  R10 = _ENV[K15('UIUtil')]
  0035  GETTABLE  R10 = R10[K16('SetActive')]
  0036  MOVE      R11 = R0
  0037  LOADBOOL  R12 = true
  0038  CALL      R10 = call(R10, 0 args, 2 rets)
  0039  GETTABLE  R10 = R0[K17('m_boardModel')]
  0040  SELF      R11 = R10[K18('HasFinishedCurRound')] (self)
  0041  CALL      R10 = call(R10, 1 args, 1 rets)
  0042  SELF      R12 = R9[K19('Init')] (self)
  0043  MOVE      R13 = R0
  0044  MOVE      R14 = R0
  0045  CALL      R11 = call(R11, 0 args, 3 rets)
  0046  GETTABLE  R11 = R8[K7('transform')]
  0047  LOADK     R12 = K20 0.5
  0048  GETTABUP  R13 = _ENV[K15('UIUtil')]
  0049  GETTABLE  R13 = R13[K21('SetLocalScale')]
  0050  MOVE      R14 = R0
  0051  LOADK     R15 = K22 0
  0052  LOADK     R16 = K22 0
  0053  CALL      R13 = call(R13, 0 args, 3 rets)
  0054  LOADNIL   R13..R13 = nil
  0055  LT        if R0 lt R2   -> 11835
  0056  JMP       (jump)   -> 108
  0057  GETTABUP  R14 = _ENV[K10('GameObject')]
  0058  GETTABLE  R14 = R14[K11('Instantiate')]
  0059  GETTABLE  R15 = R0[K9('m_blockPromptText')]
  0060  GETTABLE  R15 = R15[K12('gameObject')]
  0061  GETTABLE  R16 = R0[K9('m_blockPromptText')]
  0062  GETTABLE  R16 = R16[K7('transform')]
  0063  GETTABLE  R16 = R16[K13('parent')]
  0064  CALL      R14 = call(R14, 1 args, 2 rets)
  0065  SELF      R16 = R14[K14('GetLuaTable')] (self)
  0066  CALL      R15 = call(R15, 1 args, 1 rets)
  0067  MOVE      R13 = R0
  0068  SELF      R16 = R13[K19('Init')] (self)
  0069  MOVE      R17 = R0
  0070  CALL      R15 = call(R15, 0 args, 2 rets)
  0071  SELF      R16 = R13[K24('GetTotalWidth')] (self)
  0072  CALL      R15 = call(R15, 1 args, 1 rets)
  0073  DIV       R16 = K25(2) div R15
  0074  LOADK     R17 = K22 0
  0075  GETTABLE  R18 = R0[K26('TileSize')]
  0076  GETTABLE  R19 = R0[K27('Spacing')]
  0077  ADD       R18 = R19 add R18
  0078  GETTABLE  R19 = R0[K28('m_boardWidth')]
  0079  MUL       R18 = R19 mul R18
  0080  GETTABLE  R19 = R13[K7('transform')]
  0081  GETTABLE  R19 = R19[K8('anchoredPosition')]
  0082  GETTABLE  R19 = R19[K29('x')]
  0083  SUB       R20 = R17 sub R18
  0084  LT        if R0 lt R15   -> -120731
  0085  JMP       (jump)   -> 89
  0086  ADD       R20 = R17 add R18
  0087  DIV       R19 = K25(2) div R20
  0088  JMP       (jump)   -> 98
  0089  ADD       R20 = R16 add R19
  0090  LT        if R0 lt R20   -> -121744
  0091  JMP       (jump)   -> 94
  0092  SUB       R19 = R16 sub R18
  0093  JMP       (jump)   -> 98
  0094  SUB       R20 = R16 sub R19
  0095  LT        if R0 lt R17   -> -120718
  0096  JMP       (jump)   -> 98
  0097  ADD       R19 = R16 add R17
  0098  GETTABUP  R20 = _ENV[K15('UIUtil')]
  0099  GETTABLE  R20 = R20[K30('SetAnchoredPosition')]
  0100  GETTABLE  R21 = R13[K7('transform')]
  0101  MOVE      R22 = R0
  0102  CALL      R20 = call(R20, 0 args, 2 rets)
  0103  GETTABUP  R20 = _ENV[K15('UIUtil')]
  0104  GETTABLE  R20 = R20[K30('SetAnchoredPosition')]
  0105  MOVE      R21 = R0
  0106  MOVE      R22 = R0
  0107  CALL      R20 = call(R20, 0 args, 2 rets)
  0108  GETTABLE  R14 = R0[K17('m_boardModel')]
  0109  SELF      R15 = R14[K31('GetScore')] (self)
  0110  CALL      R14 = call(R14, 1 args, 1 rets)
  0111  TEST      if not R10 then   -> -130959
  0112  JMP       (jump)   -> 119
  0113  GETTABUP  R15 = _ENV[K32('GM')]
  0114  GETTABLE  R15 = R15[K33('UIManager')]
  0115  SELF      R16 = R15[K34('SetEventLock')] (self)
  0116  LOADBOOL  R17 = true
  0117  MOVE      R18 = R0
  0118  CALL      R15 = call(R15, 0 args, 3 rets)
  0119  GETTABUP  R15 = _ENV[K35('DOTween')]
  0120  GETTABLE  R15 = R15[K36('Sequence')]
  0121  CALL      R15 = call(R15, 1 args, 0 rets)
  0122  LT        if R0 lt R2   -> 11902
  0123  JMP       (jump)   -> 132
  0124  EQ        if R1 eq K37(nil)   -> -123997
  0125  JMP       (jump)   -> 132
  0126  SELF      R17 = R15[K38('AppendCallback')] (self)
  0127  CLOSURE   R18 = closure proto0
  0128  CALL      R16 = call(R16, 0 args, 2 rets)
  0129  SELF      R17 = R15[K39('AppendInterval')] (self)
  0130  LOADK     R18 = K40 1.5
  0131  CALL      R16 = call(R16, 0 args, 2 rets)
  0132  SELF      R17 = R15[K41('Append')] (self)
  0133  SELF      R19 = R11[K42('DOScale')] (self)
  0134  GETTABUP  R20 = _ENV[K43('Vector3')]
  0135  LOADK     R21 = K44 1.8
  0136  LOADK     R22 = K44 1.8
  0137  LOADK     R23 = K23 1
  0138  CALL      R20 = call(R20, 1 args, 3 rets)
  0139  LOADK     R21 = K45 0.1
  0140  CALL      R18 = call(R18, 1 args, 3 rets)
  0141  SELF      R19 = R18[K46('SetEase')] (self)
  0142  GETTABUP  R20 = _ENV[K47('Ease')]
  0143  GETTABLE  R20 = R20[K48('InSine')]
  0144  CALL      R18 = call(R18, -1 args, 2 rets)
  0145  CALL      R16 = call(R16, 0 args, -1 rets)
  0146  SELF      R17 = R15[K41('Append')] (self)
  0147  SELF      R19 = R11[K42('DOScale')] (self)
  0148  GETTABUP  R20 = _ENV[K43('Vector3')]
  0149  LOADK     R21 = K40 1.5
  0150  LOADK     R22 = K40 1.5
  0151  LOADK     R23 = K23 1
  0152  CALL      R20 = call(R20, 1 args, 3 rets)
  0153  LOADK     R21 = K45 0.1
  0154  CALL      R18 = call(R18, 1 args, 3 rets)
  0155  SELF      R19 = R18[K46('SetEase')] (self)
  0156  GETTABUP  R20 = _ENV[K47('Ease')]
  0157  GETTABLE  R20 = R20[K49('OutSine')]
  0158  CALL      R18 = call(R18, -1 args, 2 rets)
  0159  CALL      R16 = call(R16, 0 args, -1 rets)
  0160  SELF      R17 = R15[K39('AppendInterval')] (self)
  0161  LOADK     R18 = K20 0.5
  0162  CALL      R16 = call(R16, 0 args, 2 rets)
  0163  SELF      R17 = R15[K41('Append')] (self)
  0164  SELF      R19 = R11[K50('DOJump')] (self)
  0165  GETTABLE  R20 = R0[K51('m_blockActivitySlider')]
  0166  SELF      R21 = R20[K52('GetTargetPosition')] (self)
  0167  CALL      R20 = call(R20, 1 args, 1 rets)
  0168  LOADK     R21 = K53 10
  0169  LOADK     R22 = K54 0.8
  0170  MOVE      R23 = R0
  0171  CALL      R18 = call(R18, 1 args, 5 rets)
  0172  SELF      R19 = R18[K46('SetEase')] (self)
  0173  GETTABUP  R20 = _ENV[K47('Ease')]
  0174  GETTABLE  R20 = R20[K55('InOutSine')]
  0175  CALL      R18 = call(R18, -1 args, 2 rets)
  0176  CALL      R16 = call(R16, 0 args, -1 rets)
  0177  SELF      R17 = R15[K56('Join')] (self)
  0178  SELF      R19 = R11[K42('DOScale')] (self)
  0179  GETTABUP  R20 = _ENV[K57('V3One')]
  0180  MOVE      R21 = R0
  0181  CALL      R18 = call(R18, -1 args, 3 rets)
  0182  CALL      R16 = call(R16, 0 args, -1 rets)
  0183  SELF      R17 = R15[K38('AppendCallback')] (self)
  0184  CLOSURE   R18 = closure proto1
  0185  CALL      R16 = call(R16, 0 args, 2 rets)
  0186  SELF      R17 = R15[K39('AppendInterval')] (self)
  0187  LOADK     R18 = K58 0.4
  0188  CALL      R16 = call(R16, 0 args, 2 rets)
  0189  SELF      R17 = R15[K38('AppendCallback')] (self)
  0190  CLOSURE   R18 = closure proto2
  0191  CALL      R16 = call(R16, 0 args, 2 rets)
  0192  GETTABLE  R16 = R0[K59('m_mapScoreSeq')]
  0193  SETTABLE  R16[R15] = K60(true)
  0194  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 714-717 np=0 va=0 ms=2 code=4 consts=1 upvals=1 protos=0
    ;   K[0]='Show'
    ;   upvals: promptText
    0000  GETUPVAL  R0 = promptText
    0001  SELF      R1 = R0[K0('Show')] (self)
    0002  CALL      R0 = call(R0, 0 args, 1 rets)
    0003  RETURN    return R0..R-1
  ; ---------- proto1 [] ----------
    ; fn ?  line 725-731 np=0 va=0 ms=4 code=19 consts=10 upvals=5 protos=0
    ;   K[0]='GameObject'
    ;   K[1]='Destroy'
    ;   K[2]='m_blockActivitySlider'
    ;   K[3]='PlayIconHitAnim'
    ;   K[4]='GM'
    ;   K[5]='AudioModel'
    ;   K[6]='PlayEffect'
    ;   K[7]='AudioFileConfigName'
    ;   K[8]='SfxMergeCd'
    ;   K[9]='PlayProgressAnimation'
    ;   upvals: _ENV, go, self, startScore, endScore
    0000  GETTABUP  R0 = _ENV[K0('GameObject')]
    0001  GETTABLE  R0 = R0[K1('Destroy')]
    0002  GETUPVAL  R1 = _ENV
    0003  CALL      R0 = call(R0, 0 args, 1 rets)
    0004  GETTABUP  R0 = self[K2('m_blockActivitySlider')]
    0005  SELF      R1 = R0[K3('PlayIconHitAnim')] (self)
    0006  CALL      R0 = call(R0, 0 args, 1 rets)
    0007  GETTABUP  R0 = _ENV[K4('GM')]
    0008  GETTABLE  R0 = R0[K5('AudioModel')]
    0009  SELF      R1 = R0[K6('PlayEffect')] (self)
    0010  GETTABUP  R2 = _ENV[K7('AudioFileConfigName')]
    0011  GETTABLE  R2 = R2[K8('SfxMergeCd')]
    0012  CALL      R0 = call(R0, 0 args, 2 rets)
    0013  GETTABUP  R0 = self[K2('m_blockActivitySlider')]
    0014  SELF      R1 = R0[K9('PlayProgressAnimation')] (self)
    0015  GETUPVAL  R2 = _ENV
    0016  GETUPVAL  R3 = _ENV
    0017  CALL      R0 = call(R0, 0 args, 3 rets)
    0018  RETURN    return R0..R-1
  ; ---------- proto2 [] ----------
    ; fn ?  line 736-747 np=0 va=0 ms=4 code=34 consts=14 upvals=5 protos=0
    ;   K[0]='m_mapScoreSeq'
    ;   K[1]=nil
    ;   K[2]='GM'
    ;   K[3]='UIManager'
    ;   K[4]='SetEventLock'
    ;   K[5]='PlayRoundFinishedAnim'
    ;   K[6]='m_bPlayRewardAnim'
    ;   K[7]=false
    ;   K[8]='EventDispatcher'
    ;   K[9]='DispatchEvent'
    ;   K[10]='EEventType'
    ;   K[11]='PlayBlockRoundAnim'
    ;   K[12]='next'
    ;   K[13]='TriggerLackBlockToken'
    ;   upvals: self, seq, bFinishedRound, _ENV, rewards
    0000  GETTABUP  R0 = self[K0('m_mapScoreSeq')]
    0001  GETUPVAL  R1 = self
    0002  SETTABLE  R0[R1] = K1(nil)
    0003  GETUPVAL  R0 = self
    0004  TEST      if not R0 then   -> -131066
    0005  JMP       (jump)   -> 23
    0006  GETTABUP  R0 = _ENV[K2('GM')]
    0007  GETTABLE  R0 = R0[K3('UIManager')]
    0008  SELF      R1 = R0[K4('SetEventLock')] (self)
    0009  LOADBOOL  R2 = false
    0010  GETUPVAL  R3 = self
    0011  CALL      R0 = call(R0, 0 args, 3 rets)
    0012  GETUPVAL  R0 = self
    0013  SELF      R1 = R0[K5('PlayRoundFinishedAnim')] (self)
    0014  CALL      R0 = call(R0, 0 args, 1 rets)
    0015  SETTABUP  self[K6('m_bPlayRewardAnim')] = K7(false)
    0016  GETTABUP  R0 = _ENV[K8('EventDispatcher')]
    0017  GETTABLE  R0 = R0[K9('DispatchEvent')]
    0018  GETTABUP  R1 = _ENV[K10('EEventType')]
    0019  GETTABLE  R1 = R1[K11('PlayBlockRoundAnim')]
    0020  GETUPVAL  R2 = self
    0021  CALL      R0 = call(R0, 0 args, 2 rets)
    0022  JMP       (jump)   -> 33
    0023  GETTABUP  R0 = _ENV[K12('next')]
    0024  GETTABUP  R1 = self[K0('m_mapScoreSeq')]
    0025  CALL      R0 = call(R0, 1 args, 1 rets)
    0026  EQ        if R0 eq K1(nil)   -> -130787
    0027  JMP       (jump)   -> 33
    0028  GETTABUP  R0 = _ENV[K8('EventDispatcher')]
    0029  GETTABLE  R0 = R0[K9('DispatchEvent')]
    0030  GETTABUP  R1 = _ENV[K10('EEventType')]
    0031  GETTABLE  R1 = R1[K13('TriggerLackBlockToken')]
    0032  CALL      R0 = call(R0, 0 args, 1 rets)
    0033  RETURN    return R0..R-1
; ---------- proto38 [IsPlayingRewardAnim] ----------
  ; fn ?  line 751-753 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_bPlayRewardAnim'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_bPlayRewardAnim')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto39 [IsPlayingScoreAnim] ----------
  ; fn ?  line 755-764 np=1 va=0 ms=7 code=14 consts=3 upvals=1 protos=0
  ;   K[0]='m_mapScoreSeq'
  ;   K[1]=nil
  ;   K[2]='pairs'
  ;   upvals: _ENV
  ;   locals: self(0-14), (for generator)(6-11), (for state)(6-11), (for control)(6-11), seq(7-9), _(7-9)
  0000  GETTABLE  R1 = R0[K0('m_mapScoreSeq')]
  0001  EQ        if R1 eq K1(nil)   -> -130300
  0002  JMP       (jump)   -> 11
  0003  GETTABUP  R1 = _ENV[K2('pairs')]
  0004  GETTABLE  R2 = R0[K0('m_mapScoreSeq')]
  0005  CALL      R1 = call(R1, 3 args, 1 rets)
  0006  JMP       (jump)   -> 9
  0007  LOADBOOL  R6 = true
  0008  RETURN    return R6..R5
  0009  TFORCALL  tforcall R1
  0010  TFORLOOP  tforloop R3(sBx=-4)   -> 7
  0011  LOADBOOL  R1 = false
  0012  RETURN    return R1..R0
  0013  RETURN    return R0..R-1
; ---------- proto40 [PlayRoundFinishedAnim] ----------
  ; fn ?  line 770-801 np=1 va=0 ms=11 code=76 consts=34 upvals=1 protos=1
  ;   K[0]='DOTween'
  ;   K[1]='Sequence'
  ;   K[2]='UIUtil'
  ;   K[3]='SetActive'
  ;   K[4]='m_completePromptRect'
  ;   K[5]='gameObject'
  ;   K[6]='GM'
  ;   K[7]='AudioModel'
  ;   K[8]='PlayEffect'
  ;   K[9]='AudioFileConfigName'
  ;   K[10]='SfxLevelVictory'
  ;   K[11]='m_completePromptCanvasGroup'
  ;   K[12]='alpha'
  ;   K[13]=0
  ;   K[14]='anchoredPosition'
  ;   K[15]='y'
  ;   K[16]='SetLocalScale'
  ;   K[17]=1
  ;   K[18]='Append'
  ;   K[19]='DOFade'
  ;   K[20]=0.2
  ;   K[21]='Join'
  ;   K[22]='DOAnchorPosY'
  ;   K[23]=75
  ;   K[24]=0.3
  ;   K[25]='DOScaleY'
  ;   K[26]=1.2
  ;   K[27]=30
  ;   K[28]=0.1
  ;   K[29]=45
  ;   K[30]='AppendInterval'
  ;   K[31]=0.8
  ;   K[32]=0.15
  ;   K[33]='AppendCallback'
  ;   upvals: _ENV
  ;   locals: self(0-76), seq(3-76), canvasGroup(16-76), completeRect(17-76), baseY(20-76)
  0000  GETTABUP  R1 = _ENV[K0('DOTween')]
  0001  GETTABLE  R1 = R1[K1('Sequence')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  GETTABUP  R2 = _ENV[K2('UIUtil')]
  0004  GETTABLE  R2 = R2[K3('SetActive')]
  0005  GETTABLE  R3 = R0[K4('m_completePromptRect')]
  0006  GETTABLE  R3 = R3[K5('gameObject')]
  0007  LOADBOOL  R4 = true
  0008  CALL      R2 = call(R2, 0 args, 2 rets)
  0009  GETTABUP  R2 = _ENV[K6('GM')]
  0010  GETTABLE  R2 = R2[K7('AudioModel')]
  0011  SELF      R3 = R2[K8('PlayEffect')] (self)
  0012  GETTABUP  R4 = _ENV[K9('AudioFileConfigName')]
  0013  GETTABLE  R4 = R4[K10('SfxLevelVictory')]
  0014  CALL      R2 = call(R2, 0 args, 2 rets)
  0015  GETTABLE  R2 = R0[K11('m_completePromptCanvasGroup')]
  0016  GETTABLE  R3 = R0[K4('m_completePromptRect')]
  0017  SETTABLE  R2[K12('alpha')] = K13(0)
  0018  GETTABLE  R4 = R3[K14('anchoredPosition')]
  0019  GETTABLE  R4 = R4[K15('y')]
  0020  GETTABUP  R5 = _ENV[K2('UIUtil')]
  0021  GETTABLE  R5 = R5[K16('SetLocalScale')]
  0022  MOVE      R6 = R0
  0023  LOADK     R7 = K17 1
  0024  LOADK     R8 = K13 0
  0025  LOADK     R9 = K17 1
  0026  CALL      R5 = call(R5, 0 args, 4 rets)
  0027  SELF      R6 = R1[K18('Append')] (self)
  0028  SELF      R8 = R2[K19('DOFade')] (self)
  0029  LOADK     R9 = K17 1
  0030  LOADK     R10 = K20 0.2
  0031  CALL      R7 = call(R7, -1 args, 3 rets)
  0032  CALL      R5 = call(R5, 0 args, -1 rets)
  0033  SELF      R6 = R1[K21('Join')] (self)
  0034  SELF      R8 = R3[K22('DOAnchorPosY')] (self)
  0035  ADD       R9 = K23(75) add R4
  0036  LOADK     R10 = K24 0.3
  0037  CALL      R7 = call(R7, -1 args, 3 rets)
  0038  CALL      R5 = call(R5, 0 args, -1 rets)
  0039  SELF      R6 = R1[K21('Join')] (self)
  0040  SELF      R8 = R3[K25('DOScaleY')] (self)
  0041  LOADK     R9 = K26 1.2
  0042  LOADK     R10 = K24 0.3
  0043  CALL      R7 = call(R7, -1 args, 3 rets)
  0044  CALL      R5 = call(R5, 0 args, -1 rets)
  0045  SELF      R6 = R1[K18('Append')] (self)
  0046  SELF      R8 = R3[K22('DOAnchorPosY')] (self)
  0047  ADD       R9 = K27(30) add R4
  0048  LOADK     R10 = K28 0.1
  0049  CALL      R7 = call(R7, -1 args, 3 rets)
  0050  CALL      R5 = call(R5, 0 args, -1 rets)
  0051  SELF      R6 = R1[K21('Join')] (self)
  0052  SELF      R8 = R3[K25('DOScaleY')] (self)
  0053  LOADK     R9 = K17 1
  0054  LOADK     R10 = K28 0.1
  0055  CALL      R7 = call(R7, -1 args, 3 rets)
  0056  CALL      R5 = call(R5, 0 args, -1 rets)
  0057  SELF      R6 = R1[K18('Append')] (self)
  0058  SELF      R8 = R3[K22('DOAnchorPosY')] (self)
  0059  ADD       R9 = K29(45) add R4
  0060  LOADK     R10 = K28 0.1
  0061  CALL      R7 = call(R7, -1 args, 3 rets)
  0062  CALL      R5 = call(R5, 0 args, -1 rets)
  0063  SELF      R6 = R1[K30('AppendInterval')] (self)
  0064  LOADK     R7 = K31 0.8
  0065  CALL      R5 = call(R5, 0 args, 2 rets)
  0066  SELF      R6 = R1[K18('Append')] (self)
  0067  SELF      R8 = R2[K19('DOFade')] (self)
  0068  LOADK     R9 = K13 0
  0069  LOADK     R10 = K32 0.15
  0070  CALL      R7 = call(R7, -1 args, 3 rets)
  0071  CALL      R5 = call(R5, 0 args, -1 rets)
  0072  SELF      R6 = R1[K33('AppendCallback')] (self)
  0073  CLOSURE   R7 = closure proto0
  0074  CALL      R5 = call(R5, 0 args, 2 rets)
  0075  RETURN    return R0..R-1
  ; ---------- proto0 [] ----------
    ; fn ?  line 791-800 np=0 va=0 ms=6 code=36 consts=17 upvals=4 protos=0
    ;   K[0]='UIUtil'
    ;   K[1]='SetActive'
    ;   K[2]='gameObject'
    ;   K[3]='SetAnchoredPosition'
    ;   K[4]='m_blockRoundBox'
    ;   K[5]='m_boardModel'
    ;   K[6]='GetHorizontalTiles'
    ;   K[7]=8
    ;   K[8]='PlayEnterAnim'
    ;   K[9]='GM'
    ;   K[10]='GameTextModel'
    ;   K[11]='GetText'
    ;   K[12]='block_event_stage_victory'
    ;   K[13]='AudioModel'
    ;   K[14]='PlayEffect'
    ;   K[15]='AudioFileConfigName'
    ;   K[16]='SfxRoomSwitch'
    ;   upvals: _ENV, completeRect, baseY, self
    ;   locals: scale(21-36)
    0000  GETTABUP  R0 = _ENV[K0('UIUtil')]
    0001  GETTABLE  R0 = R0[K1('SetActive')]
    0002  GETTABUP  R1 = completeRect[K2('gameObject')]
    0003  LOADBOOL  R2 = false
    0004  CALL      R0 = call(R0, 0 args, 2 rets)
    0005  GETTABUP  R0 = _ENV[K0('UIUtil')]
    0006  GETTABLE  R0 = R0[K3('SetAnchoredPosition')]
    0007  GETUPVAL  R1 = _ENV
    0008  LOADNIL   R2..R2 = nil
    0009  GETUPVAL  R3 = _ENV
    0010  CALL      R0 = call(R0, 0 args, 3 rets)
    0011  GETTABUP  R0 = _ENV[K0('UIUtil')]
    0012  GETTABLE  R0 = R0[K1('SetActive')]
    0013  GETTABUP  R1 = self[K4('m_blockRoundBox')]
    0014  GETTABLE  R1 = R1[K2('gameObject')]
    0015  LOADBOOL  R2 = true
    0016  CALL      R0 = call(R0, 0 args, 2 rets)
    0017  GETTABUP  R0 = self[K5('m_boardModel')]
    0018  SELF      R1 = R0[K6('GetHorizontalTiles')] (self)
    0019  CALL      R0 = call(R0, 1 args, 1 rets)
    0020  DIV       R0 = K7(8) div R0
    0021  GETTABUP  R1 = self[K4('m_blockRoundBox')]
    0022  SELF      R2 = R1[K8('PlayEnterAnim')] (self)
    0023  GETTABUP  R3 = _ENV[K9('GM')]
    0024  GETTABLE  R3 = R3[K10('GameTextModel')]
    0025  SELF      R4 = R3[K11('GetText')] (self)
    0026  LOADK     R5 = K12 'block_event_stage_victory'
    0027  CALL      R3 = call(R3, -1 args, 2 rets)
    0028  CALL      R1 = call(R1, 0 args, -1 rets)
    0029  GETTABUP  R1 = _ENV[K9('GM')]
    0030  GETTABLE  R1 = R1[K13('AudioModel')]
    0031  SELF      R2 = R1[K14('PlayEffect')] (self)
    0032  GETTABUP  R3 = _ENV[K15('AudioFileConfigName')]
    0033  GETTABLE  R3 = R3[K16('SfxRoomSwitch')]
    0034  CALL      R1 = call(R1, 0 args, 2 rets)
    0035  RETURN    return R0..R-1
; ---------- proto41 [PlayExitAnim] ----------
  ; fn ?  line 803-817 np=1 va=0 ms=8 code=31 consts=21 upvals=1 protos=1
  ;   K[0]='UIUtil'
  ;   K[1]='SetActive'
  ;   K[2]='m_blockActivitySlider'
  ;   K[3]='gameObject'
  ;   K[4]='DOTween'
  ;   K[5]='Sequence'
  ;   K[6]='Append'
  ;   K[7]='m_moveRect'
  ;   K[8]='DOLocalMoveX'
  ;   K[9]=-2000
  ;   K[10]=0.6
  ;   K[11]='SetEase'
  ;   K[12]='Ease'
  ;   K[13]='InOutSine'
  ;   K[14]='GM'
  ;   K[15]='AudioModel'
  ;   K[16]='PlayEffect'
  ;   K[17]='AudioFileConfigName'
  ;   K[18]='SfxRoomSwitch'
  ;   K[19]='AppendCallback'
  ;   K[20]='m_exitSeq'
  ;   upvals: _ENV
  ;   locals: self(0-31), seq(9-31)
  0000  GETTABUP  R1 = _ENV[K0('UIUtil')]
  0001  GETTABLE  R1 = R1[K1('SetActive')]
  0002  GETTABLE  R2 = R0[K2('m_blockActivitySlider')]
  0003  GETTABLE  R2 = R2[K3('gameObject')]
  0004  LOADBOOL  R3 = false
  0005  CALL      R1 = call(R1, 0 args, 2 rets)
  0006  GETTABUP  R1 = _ENV[K4('DOTween')]
  0007  GETTABLE  R1 = R1[K5('Sequence')]
  0008  CALL      R1 = call(R1, 1 args, 0 rets)
  0009  SELF      R3 = R1[K6('Append')] (self)
  0010  GETTABLE  R4 = R0[K7('m_moveRect')]
  0011  SELF      R5 = R4[K8('DOLocalMoveX')] (self)
  0012  LOADK     R6 = K9 -2000
  0013  LOADK     R7 = K10 0.6
  0014  CALL      R4 = call(R4, 1 args, 3 rets)
  0015  SELF      R5 = R4[K11('SetEase')] (self)
  0016  GETTABUP  R6 = _ENV[K12('Ease')]
  0017  GETTABLE  R6 = R6[K13('InOutSine')]
  0018  CALL      R4 = call(R4, -1 args, 2 rets)
  0019  CALL      R2 = call(R2, 0 args, -1 rets)
  0020  GETTABUP  R2 = _ENV[K14('GM')]
  0021  GETTABLE  R2 = R2[K15('AudioModel')]
  0022  SELF      R3 = R2[K16('PlayEffect')] (self)
  0023  GETTABUP  R4 = _ENV[K17('AudioFileConfigName')]
  0024  GETTABLE  R4 = R4[K18('SfxRoomSwitch')]
  0025  CALL      R2 = call(R2, 0 args, 2 rets)
  0026  SELF      R3 = R1[K19('AppendCallback')] (self)
  0027  CLOSURE   R4 = closure proto0
  0028  CALL      R2 = call(R2, 0 args, 2 rets)
  0029  SETTABLE  R0[K20('m_exitSeq')] = R1
  0030  RETURN    return R0..R-1
  ; ---------- proto0 [m_exitSeq] ----------
    ; fn ?  line 811-814 np=0 va=0 ms=2 code=6 consts=5 upvals=2 protos=0
    ;   K[0]='m_exitSeq'
    ;   K[1]=nil
    ;   K[2]='GameObject'
    ;   K[3]='Destroy'
    ;   K[4]='gameObject'
    ;   upvals: self, _ENV
    0000  SETTABUP  self[K0('m_exitSeq')] = K1(nil)
    0001  GETTABUP  R0 = _ENV[K2('GameObject')]
    0002  GETTABLE  R0 = R0[K3('Destroy')]
    0003  GETTABUP  R1 = self[K4('gameObject')]
    0004  CALL      R0 = call(R0, 0 args, 1 rets)
    0005  RETURN    return R0..R-1
; ---------- proto42 [PlayEnterAnim] ----------
  ; fn ?  line 819-835 np=1 va=0 ms=8 code=33 consts=20 upvals=1 protos=1
  ;   K[0]='DOTween'
  ;   K[1]='Sequence'
  ;   K[2]='UIUtil'
  ;   K[3]='SetActive'
  ;   K[4]='m_blockRoundBox'
  ;   K[5]='gameObject'
  ;   K[6]='SetLocalPosition'
  ;   K[7]='m_moveRect'
  ;   K[8]=2000
  ;   K[9]='Append'
  ;   K[10]='DOLocalMoveX'
  ;   K[11]=0
  ;   K[12]=0.6
  ;   K[13]='SetEase'
  ;   K[14]='Ease'
  ;   K[15]='InOutSine'
  ;   K[16]='AppendInterval'
  ;   K[17]=0.5
  ;   K[18]='AppendCallback'
  ;   K[19]='m_enterSeq'
  ;   upvals: _ENV
  ;   locals: self(0-33), seq(3-33)
  0000  GETTABUP  R1 = _ENV[K0('DOTween')]
  0001  GETTABLE  R1 = R1[K1('Sequence')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  GETTABUP  R2 = _ENV[K2('UIUtil')]
  0004  GETTABLE  R2 = R2[K3('SetActive')]
  0005  GETTABLE  R3 = R0[K4('m_blockRoundBox')]
  0006  GETTABLE  R3 = R3[K5('gameObject')]
  0007  LOADBOOL  R4 = true
  0008  CALL      R2 = call(R2, 0 args, 2 rets)
  0009  GETTABUP  R2 = _ENV[K2('UIUtil')]
  0010  GETTABLE  R2 = R2[K6('SetLocalPosition')]
  0011  GETTABLE  R3 = R0[K7('m_moveRect')]
  0012  LOADK     R4 = K8 2000
  0013  CALL      R2 = call(R2, 0 args, 2 rets)
  0014  SELF      R3 = R1[K9('Append')] (self)
  0015  GETTABLE  R4 = R0[K7('m_moveRect')]
  0016  SELF      R5 = R4[K10('DOLocalMoveX')] (self)
  0017  LOADK     R6 = K11 0
  0018  LOADK     R7 = K12 0.6
  0019  CALL      R4 = call(R4, 1 args, 3 rets)
  0020  SELF      R5 = R4[K13('SetEase')] (self)
  0021  GETTABUP  R6 = _ENV[K14('Ease')]
  0022  GETTABLE  R6 = R6[K15('InOutSine')]
  0023  CALL      R4 = call(R4, -1 args, 2 rets)
  0024  CALL      R2 = call(R2, 0 args, -1 rets)
  0025  SELF      R3 = R1[K16('AppendInterval')] (self)
  0026  LOADK     R4 = K17 0.5
  0027  CALL      R2 = call(R2, 0 args, 2 rets)
  0028  SELF      R3 = R1[K18('AppendCallback')] (self)
  0029  CLOSURE   R4 = closure proto0
  0030  CALL      R2 = call(R2, 0 args, 2 rets)
  0031  SETTABLE  R0[K19('m_enterSeq')] = R1
  0032  RETURN    return R0..R-1
  ; ---------- proto0 [m_enterSeq] ----------
    ; fn ?  line 828-832 np=0 va=0 ms=3 code=5 consts=2 upvals=2 protos=1
    ;   K[0]='m_blockRoundBox'
    ;   K[1]='PlayExitAnim'
    ;   upvals: self, _ENV
    0000  GETTABUP  R0 = self[K0('m_blockRoundBox')]
    0001  SELF      R1 = R0[K1('PlayExitAnim')] (self)
    0002  CLOSURE   R2 = closure proto0
    0003  CALL      R0 = call(R0, 0 args, 2 rets)
    0004  RETURN    return R0..R-1
    ; ---------- proto0 [] ----------
      ; fn ?  line 829-831 np=0 va=0 ms=2 code=6 consts=4 upvals=1 protos=0
      ;   K[0]='EventDispatcher'
      ;   K[1]='DispatchEvent'
      ;   K[2]='EEventType'
      ;   K[3]='TriggerLackBlockToken'
      ;   upvals: _ENV
      0000  GETTABUP  R0 = _ENV[K0('EventDispatcher')]
      0001  GETTABLE  R0 = R0[K1('DispatchEvent')]
      0002  GETTABUP  R1 = _ENV[K2('EEventType')]
      0003  GETTABLE  R1 = R1[K3('TriggerLackBlockToken')]
      0004  CALL      R0 = call(R0, 0 args, 1 rets)
      0005  RETURN    return R0..R-1
; ---------- proto43 [GetBehindEffectContentRect] ----------
  ; fn ?  line 841-843 np=1 va=0 ms=2 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='m_behindEffectContentRect'
  ;   locals: self(0-3)
  0000  GETTABLE  R1 = R0[K0('m_behindEffectContentRect')]
  0001  RETURN    return R1..R0
  0002  RETURN    return R0..R-1
; ---------- proto44 [GetBlockItemViewByIndex] ----------
  ; fn ?  line 845-847 np=2 va=0 ms=3 code=10 consts=1 upvals=0 protos=0
  ;   K[0]='m_arrItemView'
  ;   locals: self(0-10), index(0-10)
  0000  GETTABLE  R2 = R0[K0('m_arrItemView')]
  0001  TEST      if not R2 then   -> -131069
  0002  JMP       (jump)   -> 7
  0003  GETTABLE  R2 = R0[K0('m_arrItemView')]
  0004  GETTABLE  R2 = R2[R1]
  0005  TEST      if not R2 then   -> -131064
  0006  JMP       (jump)   -> 8
  0007  LOADNIL   R2..R2 = nil
  0008  RETURN    return R2..R1
  0009  RETURN    return R0..R-1
; ---------- proto45 [CreateBlockItemViewForTutorial] ----------
  ; fn ?  line 853-870 np=3 va=0 ms=14 code=57 consts=19 upvals=1 protos=0
  ;   K[0]='localScale'
  ;   K[1]='V3One'
  ;   K[2]='GameObject'
  ;   K[3]='Instantiate'
  ;   K[4]='m_blockItemViewGo'
  ;   K[5]='UIUtil'
  ;   K[6]='SetActive'
  ;   K[7]='GetLuaTable'
  ;   K[8]='Init'
  ;   K[9]=1
  ;   K[10]='UpdateForTutorial'
  ;   K[11]='transform'
  ;   K[12]='lossyScale'
  ;   K[13]='Vector3'
  ;   K[14]='x'
  ;   K[15]='y'
  ;   K[16]='GetCenterAnchoredPosition'
  ;   K[17]='anchoredPosition'
  ;   K[18]='Vector2'
  ;   upvals: _ENV
  ;   locals: self(0-57), itemConfig(0-57), parentRect(0-57), originScale(1-57), go(8-57), itemView(15-57), lossyScaleA(25-57), lossyScaleB(26-57), tAnchorPos(40-57)
  0000  GETTABLE  R3 = R2[K0('localScale')]
  0001  GETTABUP  R4 = _ENV[K1('V3One')]
  0002  SETTABLE  R2[K0('localScale')] = R4
  0003  GETTABUP  R4 = _ENV[K2('GameObject')]
  0004  GETTABLE  R4 = R4[K3('Instantiate')]
  0005  GETTABLE  R5 = R0[K4('m_blockItemViewGo')]
  0006  MOVE      R6 = R0
  0007  CALL      R4 = call(R4, 1 args, 2 rets)
  0008  GETTABUP  R5 = _ENV[K5('UIUtil')]
  0009  GETTABLE  R5 = R5[K6('SetActive')]
  0010  MOVE      R6 = R0
  0011  LOADBOOL  R7 = true
  0012  CALL      R5 = call(R5, 0 args, 2 rets)
  0013  SELF      R6 = R4[K7('GetLuaTable')] (self)
  0014  CALL      R5 = call(R5, 1 args, 1 rets)
  0015  SELF      R7 = R5[K8('Init')] (self)
  0016  MOVE      R8 = R0
  0017  LOADK     R9 = K9 1
  0018  MOVE      R10 = R0
  0019  CALL      R6 = call(R6, 0 args, 4 rets)
  0020  SELF      R7 = R5[K10('UpdateForTutorial')] (self)
  0021  CALL      R6 = call(R6, 0 args, 1 rets)
  0022  GETTABLE  R6 = R0[K4('m_blockItemViewGo')]
  0023  GETTABLE  R6 = R6[K11('transform')]
  0024  GETTABLE  R6 = R6[K12('lossyScale')]
  0025  GETTABLE  R7 = R2[K12('lossyScale')]
  0026  GETTABLE  R8 = R4[K11('transform')]
  0027  GETTABUP  R9 = _ENV[K13('Vector3')]
  0028  GETTABLE  R10 = R6[K14('x')]
  0029  GETTABLE  R11 = R7[K14('x')]
  0030  DIV       R10 = R11 div R10
  0031  GETTABLE  R11 = R6[K15('y')]
  0032  GETTABLE  R12 = R7[K15('y')]
  0033  DIV       R11 = R12 div R11
  0034  LOADK     R12 = K9 1
  0035  CALL      R9 = call(R9, 1 args, 3 rets)
  0036  SETTABLE  R8[K0('localScale')] = R9
  0037  SELF      R9 = R5[K16('GetCenterAnchoredPosition')] (self)
  0038  CALL      R8 = call(R8, 1 args, 1 rets)
  0039  UNM       R8 = unm R0
  0040  GETTABLE  R9 = R4[K11('transform')]
  0041  GETTABUP  R10 = _ENV[K18('Vector2')]
  0042  GETTABLE  R11 = R8[K14('x')]
  0043  GETTABLE  R12 = R4[K11('transform')]
  0044  GETTABLE  R12 = R12[K0('localScale')]
  0045  GETTABLE  R12 = R12[K14('x')]
  0046  MUL       R11 = R12 mul R11
  0047  GETTABLE  R12 = R8[K15('y')]
  0048  GETTABLE  R13 = R4[K11('transform')]
  0049  GETTABLE  R13 = R13[K0('localScale')]
  0050  GETTABLE  R13 = R13[K15('y')]
  0051  MUL       R12 = R13 mul R12
  0052  CALL      R10 = call(R10, 1 args, 2 rets)
  0053  SETTABLE  R9[K17('anchoredPosition')] = R10
  0054  SETTABLE  R2[K0('localScale')] = R3
  0055  RETURN    return R5..R4
  0056  RETURN    return R0..R-1
; ---------- proto46 [SetTutorialForceDragItemIndex] ----------
  ; fn ?  line 872-874 np=2 va=0 ms=2 code=2 consts=1 upvals=0 protos=0
  ;   K[0]='m_tutorialForceItemIndex'
  ;   locals: self(0-2), index(0-2)
  0000  SETTABLE  R0[K0('m_tutorialForceItemIndex')] = R1
  0001  RETURN    return R0..R-1
; ---------- proto47 [SetTutorialForceDragBoardPos] ----------
  ; fn ?  line 876-882 np=3 va=0 ms=7 code=13 consts=4 upvals=0 protos=0
  ;   K[0]=nil
  ;   K[1]='m_tutorialForceBoardPos'
  ;   K[2]='m_boardModel'
  ;   K[3]='CreateBoardPosition'
  ;   locals: self(0-13), x(0-13), y(0-13)
  0000  EQ        if R1 eq K0(nil)   -> -130302
  0001  JMP       (jump)   -> 11
  0002  EQ        if R1 eq K0(nil)   -> -129788
  0003  JMP       (jump)   -> 11
  0004  GETTABLE  R3 = R0[K2('m_boardModel')]
  0005  SELF      R4 = R3[K3('CreateBoardPosition')] (self)
  0006  MOVE      R5 = R0
  0007  MOVE      R6 = R0
  0008  CALL      R3 = call(R3, 1 args, 3 rets)
  0009  SETTABLE  R0[K1('m_tutorialForceBoardPos')] = R3
  0010  JMP       (jump)   -> 12
  0011  SETTABLE  R0[K1('m_tutorialForceBoardPos')] = K0(nil)
  0012  RETURN    return R0..R-1
; ---------- proto48 [_LogAction] ----------
  ; fn ?  line 888-891 np=3 va=0 ms=8 code=14 consts=9 upvals=1 protos=0
  ;   K[0]='m_boardModel'
  ;   K[1]='GetBlockSelectItemId'
  ;   K[2]='GM'
  ;   K[3]='BIManager'
  ;   K[4]='LogAction'
  ;   K[5]='EBIType'
  ;   K[6]='BlockMove'
  ;   K[7]='id'
  ;   K[8]='moved'
  ;   upvals: _ENV
  ;   locals: self(0-14), index(0-14), hasMoved(0-14), id(4-14)
  0000  GETTABLE  R3 = R0[K0('m_boardModel')]
  0001  SELF      R4 = R3[K1('GetBlockSelectItemId')] (self)
  0002  MOVE      R5 = R0
  0003  CALL      R3 = call(R3, 1 args, 2 rets)
  0004  GETTABUP  R4 = _ENV[K2('GM')]
  0005  GETTABLE  R4 = R4[K3('BIManager')]
  0006  SELF      R5 = R4[K4('LogAction')] (self)
  0007  GETTABUP  R6 = _ENV[K5('EBIType')]
  0008  GETTABLE  R6 = R6[K6('BlockMove')]
  0009  NEWTABLE  R7 = {} (0 items)
  0010  SETTABLE  R7[K7('id')] = R3
  0011  SETTABLE  R7[K8('moved')] = R2
  0012  CALL      R4 = call(R4, 0 args, 3 rets)
  0013  RETURN    return R0..R-1
; ---------- proto49 [_OnViewChanged] ----------
  ; fn ?  line 895-897 np=1 va=0 ms=3 code=3 consts=1 upvals=0 protos=0
  ;   K[0]='_UpdateTestText'
  ;   locals: self(0-3)
  0000  SELF      R2 = R0[K0('_UpdateTestText')] (self)
  0001  CALL      R1 = call(R1, 0 args, 1 rets)
  0002  RETURN    return R0..R-1
; ---------- proto50 [_OnTestAddCube] ----------
  ; fn ?  line 901-905 np=2 va=0 ms=6 code=13 consts=8 upvals=1 protos=0
  ;   K[0]='XY2Index'
  ;   K[1]='x'
  ;   K[2]='y'
  ;   K[3]='m_arrCubeView'
  ;   K[4]='SetViewState'
  ;   K[5]='EBlockCubeViewState'
  ;   K[6]='Valid'
  ;   K[7]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-13), msg(0-13), index(4-13)
  0000  SELF      R3 = R0[K0('XY2Index')] (self)
  0001  GETTABLE  R4 = R1[K1('x')]
  0002  GETTABLE  R5 = R1[K2('y')]
  0003  CALL      R2 = call(R2, 1 args, 3 rets)
  0004  GETTABLE  R3 = R0[K3('m_arrCubeView')]
  0005  GETTABLE  R3 = R3[R2]
  0006  SELF      R4 = R3[K4('SetViewState')] (self)
  0007  GETTABUP  R5 = _ENV[K5('EBlockCubeViewState')]
  0008  GETTABLE  R5 = R5[K6('Valid')]
  0009  CALL      R3 = call(R3, 0 args, 2 rets)
  0010  SELF      R4 = R0[K7('_OnViewChanged')] (self)
  0011  CALL      R3 = call(R3, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto51 [_OnTestRemoveCube] ----------
  ; fn ?  line 907-911 np=2 va=0 ms=6 code=13 consts=8 upvals=1 protos=0
  ;   K[0]='XY2Index'
  ;   K[1]='x'
  ;   K[2]='y'
  ;   K[3]='m_arrCubeView'
  ;   K[4]='SetViewState'
  ;   K[5]='EBlockCubeViewState'
  ;   K[6]='Empty'
  ;   K[7]='_OnViewChanged'
  ;   upvals: _ENV
  ;   locals: self(0-13), msg(0-13), index(4-13)
  0000  SELF      R3 = R0[K0('XY2Index')] (self)
  0001  GETTABLE  R4 = R1[K1('x')]
  0002  GETTABLE  R5 = R1[K2('y')]
  0003  CALL      R2 = call(R2, 1 args, 3 rets)
  0004  GETTABLE  R3 = R0[K3('m_arrCubeView')]
  0005  GETTABLE  R3 = R3[R2]
  0006  SELF      R4 = R3[K4('SetViewState')] (self)
  0007  GETTABUP  R5 = _ENV[K5('EBlockCubeViewState')]
  0008  GETTABLE  R5 = R5[K6('Empty')]
  0009  CALL      R3 = call(R3, 0 args, 2 rets)
  0010  SELF      R4 = R0[K7('_OnViewChanged')] (self)
  0011  CALL      R3 = call(R3, 0 args, 1 rets)
  0012  RETURN    return R0..R-1
; ---------- proto52 [_OnTestAddBlockItem] ----------
  ; fn ?  line 913-929 np=2 va=0 ms=11 code=35 consts=15 upvals=1 protos=0
  ;   K[0]='index'
  ;   K[1]='itemConfig'
  ;   K[2]='m_arrItemView'
  ;   K[3]=nil
  ;   K[4]='GameObject'
  ;   K[5]='Destroy'
  ;   K[6]='gameObject'
  ;   K[7]='Instantiate'
  ;   K[8]='m_blockItemViewGo'
  ;   K[9]='m_blockItemContentRect'
  ;   K[10]='UIUtil'
  ;   K[11]='SetActive'
  ;   K[12]='GetLuaTable'
  ;   K[13]='Init'
  ;   K[14]='_SetItemViewInSelectArea'
  ;   upvals: _ENV
  ;   locals: self(0-35), msg(0-35), index(1-35), itemConfig(2-35), go(17-35), itemView(24-35)
  0000  GETTABLE  R2 = R1[K0('index')]
  0001  GETTABLE  R3 = R1[K1('itemConfig')]
  0002  GETTABLE  R4 = R0[K2('m_arrItemView')]
  0003  GETTABLE  R4 = R4[R2]
  0004  EQ        if R1 eq K3(nil)   -> -128759
  0005  JMP       (jump)   -> 12
  0006  GETTABUP  R4 = _ENV[K4('GameObject')]
  0007  GETTABLE  R4 = R4[K5('Destroy')]
  0008  GETTABLE  R5 = R0[K2('m_arrItemView')]
  0009  GETTABLE  R5 = R5[R2]
  0010  GETTABLE  R5 = R5[K6('gameObject')]
  0011  CALL      R4 = call(R4, 0 args, 1 rets)
  0012  GETTABUP  R4 = _ENV[K4('GameObject')]
  0013  GETTABLE  R4 = R4[K7('Instantiate')]
  0014  GETTABLE  R5 = R0[K8('m_blockItemViewGo')]
  0015  GETTABLE  R6 = R0[K9('m_blockItemContentRect')]
  0016  CALL      R4 = call(R4, 1 args, 2 rets)
  0017  GETTABUP  R5 = _ENV[K10('UIUtil')]
  0018  GETTABLE  R5 = R5[K11('SetActive')]
  0019  MOVE      R6 = R0
  0020  LOADBOOL  R7 = true
  0021  CALL      R5 = call(R5, 0 args, 2 rets)
  0022  SELF      R6 = R4[K12('GetLuaTable')] (self)
  0023  CALL      R5 = call(R5, 1 args, 1 rets)
  0024  SELF      R7 = R5[K13('Init')] (self)
  0025  MOVE      R8 = R0
  0026  MOVE      R9 = R0
  0027  MOVE      R10 = R0
  0028  CALL      R6 = call(R6, 0 args, 4 rets)
  0029  GETTABLE  R6 = R0[K2('m_arrItemView')]
  0030  SETTABLE  R6[R2] = R5
  0031  SELF      R7 = R0[K14('_SetItemViewInSelectArea')] (self)
  0032  MOVE      R8 = R0
  0033  CALL      R6 = call(R6, 0 args, 2 rets)
  0034  RETURN    return R0..R-1
; ---------- proto53 [_OnTestRefreshBoard] ----------
  ; fn ?  line 931-947 np=2 va=0 ms=9 code=42 consts=9 upvals=1 protos=0
  ;   K[0]='ipairs'
  ;   K[1]='m_arrTileGo'
  ;   K[2]='GameObject'
  ;   K[3]='Destroy'
  ;   K[4]='m_arrCubeView'
  ;   K[5]='gameObject'
  ;   K[6]=nil
  ;   K[7]='m_arrItemView'
  ;   K[8]='_Init'
  ;   upvals: _ENV
  ;   locals: self(0-42), msg(0-42), (for generator)(6-13), (for state)(6-13), (for control)(6-13), _(7-11), tileGo(7-11), (for generator)(21-28), (for state)(21-28), (for control)(21-28), _(22-26), cubeView(22-26), (for generator)(32-39), (for state)(32-39), (for control)(32-39), _(33-37), itemView(33-37)
  0000  GETTABUP  R2 = _ENV[K0('ipairs')]
  0001  GETTABLE  R3 = R0[K1('m_arrTileGo')]
  0002  TEST      if not R3 then   -> -131067
  0003  JMP       (jump)   -> 5
  0004  NEWTABLE  R3 = {} (0 items)
  0005  CALL      R2 = call(R2, 3 args, 1 rets)
  0006  JMP       (jump)   -> 11
  0007  GETTABUP  R7 = _ENV[K2('GameObject')]
  0008  GETTABLE  R7 = R7[K3('Destroy')]
  0009  MOVE      R8 = R0
  0010  CALL      R7 = call(R7, 0 args, 1 rets)
  0011  TFORCALL  tforcall R2
  0012  TFORLOOP  tforloop R4(sBx=-6)   -> 7
  0013  NEWTABLE  R2 = {} (0 items)
  0014  SETTABLE  R0[K1('m_arrTileGo')] = R2
  0015  GETTABUP  R2 = _ENV[K0('ipairs')]
  0016  GETTABLE  R3 = R0[K4('m_arrCubeView')]
  0017  TEST      if not R3 then   -> -131052
  0018  JMP       (jump)   -> 20
  0019  NEWTABLE  R3 = {} (0 items)
  0020  CALL      R2 = call(R2, 3 args, 1 rets)
  0021  JMP       (jump)   -> 26
  0022  GETTABUP  R7 = _ENV[K2('GameObject')]
  0023  GETTABLE  R7 = R7[K3('Destroy')]
  0024  GETTABLE  R8 = R6[K5('gameObject')]
  0025  CALL      R7 = call(R7, 0 args, 1 rets)
  0026  TFORCALL  tforcall R2
  0027  TFORLOOP  tforloop R4(sBx=-6)   -> 22
  0028  SETTABLE  R0[K4('m_arrCubeView')] = K6(nil)
  0029  GETTABUP  R2 = _ENV[K0('ipairs')]
  0030  GETTABLE  R3 = R0[K7('m_arrItemView')]
  0031  CALL      R2 = call(R2, 3 args, 1 rets)
  0032  JMP       (jump)   -> 37
  0033  GETTABUP  R7 = _ENV[K2('GameObject')]
  0034  GETTABLE  R7 = R7[K3('Destroy')]
  0035  GETTABLE  R8 = R6[K5('gameObject')]
  0036  CALL      R7 = call(R7, 0 args, 1 rets)
  0037  TFORCALL  tforcall R2
  0038  TFORLOOP  tforloop R4(sBx=-6)   -> 33
  0039  SELF      R3 = R0[K8('_Init')] (self)
  0040  CALL      R2 = call(R2, 0 args, 1 rets)
  0041  RETURN    return R0..R-1
; ---------- proto54 [_UpdateTestText] ----------
  ; fn ?  line 949-955 np=1 va=0 ms=6 code=15 consts=8 upvals=1 protos=0
  ;   K[0]='GameConfig'
  ;   K[1]='IsTestMode'
  ;   K[2]='m_testText'
  ;   K[3]='text'
  ;   K[4]='边数：'
  ;   K[5]='m_boardModel'
  ;   K[6]='_CalculateBoardEdgeCount'
  ;   K[7]='m_curArrBoardPos'
  ;   upvals: _ENV
  ;   locals: self(0-15)
  0000  GETTABUP  R1 = _ENV[K0('GameConfig')]
  0001  GETTABLE  R1 = R1[K1('IsTestMode')]
  0002  CALL      R1 = call(R1, 1 args, 0 rets)
  0003  TEST      if not R1 then   -> -131066
  0004  JMP       (jump)   -> 6
  0005  RETURN    return R0..R-1
  0006  GETTABLE  R1 = R0[K2('m_testText')]
  0007  LOADK     R2 = K4 '边数：'
  0008  GETTABLE  R3 = R0[K5('m_boardModel')]
  0009  SELF      R4 = R3[K6('_CalculateBoardEdgeCount')] (self)
  0010  GETTABLE  R5 = R0[K7('m_curArrBoardPos')]
  0011  CALL      R3 = call(R3, 1 args, 2 rets)
  0012  CONCAT    R2 = concat(R2..R2)
  0013  SETTABLE  R1[K3('text')] = R2
  0014  RETURN    return R0..R-1
