codewordsInts[i] = codewordBytes[i] & 0xFF;
    }
    try {
      rsDecoder.decode(codewordsInts, codewordBytes.length - numDataCodewords);
    } catch (ReedSolomonException ignored) {
      throw ChecksumException.getChecksumInstance();
    }
    // Copy back into array of bytes -- only need to worry about the bytes that were data
    // We don't care about errors in the error-correction codewords
    for (int i = 0; i < numDataCodewords; i++) {
      codewordBytes[i] = (byte) codewordsInts[i];
    }
  }

}
/*
 * Copyright 2011 ZXing authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.ailiwean.core.zxing.core.pdf417.encoder;

/**
 * @author Jacob Haynes
 */
final class BarcodeRow {

  private final byte[] row;
  //A tacker for position in the bar
  private int currentLocation;

  /**
   * Creates a Barcode row of the width
   */
  BarcodeRow(int width) {
    this.row = new byte[width];
    currentLocation = 0;
  }

  /**
   * Sets a specific location in the bar
   *
   * @param x The location in the bar
   * @param value Black if true, white if false;
   */
  void set(int x, byte value) {
    row[x] = value;
  }

  /**
   * Sets a specific location in the bar
   *
   * @param x The location in the bar
   * @param black Black if true, white if false;
   */
  private void set(int x, boolean black) {
    row[x] = (byte) (black ? 1 : 0);
  }

  /**
   * @param black A boolean which is true if the bar black false if it is white
   * @param width How many spots wide the bar is.
   */
  void addBar(boolean black, int width) {
    for (int ii = 0; ii < width; ii++) {
      set(currentLocation++, black);
    }
  }

  /*
  byte[] getRow() {
    return row;
  }
   */

  /**
   * This function scales the row
   *
   * @param scale How much you want the image to be scaled, must be greater than or equal to 1.
   * @return the scaled row
   */
  byte[] getScaledRow(int scale) {
    byte[] output = new byte[row.length * scale];
    for (int i = 0; i < output.length; i++) {
      output[i] = row[i / scale];
    }
    return output;
  }
}
/*
 * Copyright 2011 ZXing authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.ailiwean.core.zxing.co


stRouter()
		routers[replaceIdx] = newRouter
		for _, r := range routers {
			addLink(newRouter, r)
			addLink(r, newRouter)
		}
		replaceIdx--
		entityHelper.discardControllerEvents()
	}
}

func BenchmarkShortestPathPerfWithRouterChanges(b *testing.B) {
	b.StopTimer()
	pfxlog.GlobalInit(logrus.WarnLevel, pfxlog.DefaultOptions())

	ctx := model.NewTestContext(b)
	defer ctx.Cleanup()

	config := newTestConfig(ctx)
	defer close(config.closeNotify)

	network, err := NewNetwork(config, ctx)
	ctx.NoError(err)

	entityHelper := newTestEntityHelper(ctx, network)

	var routers []*model.Router

	for i := 0; i < 50; i++ {
		router := entityHelper.addTestRouter()
		routers = append(routers, router)
	}

	linkIdx := 0

	r := rand.New(rand.NewSource(1))

	nextCost := func() int64 {
		v := r.Uint32()
		return int64(v % 1000)
	}

	addLink := func(srcRouter, dstRouter *model.Router) {
		if srcRouter != dstRouter {
			link := model.NewTestLink(fmt.Sprintf("link-%04d", linkIdx), srcRouter, dstRouter)
			link.SetStaticCost(int32(nextCost()))
			link.SetDstLatency(nextCost() * 100_000)
			link.SetSrcLatency(nextCost() * 100_000)
			link.SetState(model.Connected)
			network.Link.Add(link)
			linkIdx++
		}
	}

	for _, srcRouter := range routers {
		for _, dstRouter := range routers {
			addLink(srcRouter, dstRouter)
		}
	}

	b.StartTimer()
	replaceIdx := len(routers) - 1
	srcIndex := 0
	dstIndex := 1
	for i := 0; i < b.N; i++ {
		srcRouter := routers[srcIndex]
		dstRouter := routers[dstIndex]
		_, _, err := network.shortestPath(srcRouter, dstRouter)
		ctx.NoError(err)

		network.DisconnectRouter(routers[replaceIdx])
		newRouter := entityHelper.addTestRouter()
		routers[replaceIdx] = newRouter
		for _, r := range routers {
			addLink(newRouter, r)
			addLink(r, newRouter)
		}
		replaceIdx--
		if replaceIdx < 0 {
			replaceIdx = len(routers) - 1
		}
		entityHelper.discardControllerEvents()

		dstIndex++
		for dstIndex >= len(routers) {
			srcIndex++
			if srcIndex >= len(routers) {
				srcIndex = 0
			}
			dstIndex = 0
			if dstIndex == srcIndex {
				dstIndex++
			}
		}

	}
}

type expectedRoute struct {
	cost int64
	path []string
}

func BenchmarkShortestPathPerf(b *testing.B) {
	b.StopTimer()
	pfxlog.GlobalInit(logrus.WarnLevel, pfxlog.DefaultOptions())

	ctx := model.NewTestContext(b)
	defer ctx.Cleanup()

	config := newTestConfig(ctx)
	defer close(config.closeNotify)

	network, err := NewNetwork(config, ctx)
	ctx.NoError(err)

	entityHelper := newTestEntityHelper(ctx, network)

	var routers []*model.Router

	for i := 0; i < 400; i++ {
		router := entityHelper.addTestRouter()
		routers = append(routers, router)
	}

	linkIdx := 0

	r := rand.New(rand.NewSource(1))

	nextCost := func() int64 {
		v := r.


REPUTATION_STATUS_NOT_AT_PEACE = "Solange diese Option aktiviert ist, befindet Ihr Euch mit dieser Fraktion im Krieg.";
REPUTATION_STATUS_PERMANENT_AT_PEACE = "Ihr könnt Eurer eigenen Fraktion nicht den Krieg erklären!";
REPUTATION_STATUS_PERMANENT_AT_WAR = "Zwischen der Fraktion '%s' und Euch kann es niemals Frieden geben.";
REPUTATION_TOOLTIP_ACCOUNT_WIDE_LABEL = "Kriegsmeutenruf";
REQUEST_GUILD_MEMBERSHIP = "Mitgliedschaft beantragen";
REQUEST_INVITE = "Gruppeneinladung anfragen";
REQUEST_INVITE_CROSS_FACTION = "Einladung zu Instanzgruppe erbitten";
REQUEST_ROLL = "Um Wurf bitten";
REQUEST_SIGNATURE = "Unterschrift";
REQUEUE_CONFIRM_YOUR_ROLE = "Euer Teammitglied hat Euch für ein weiteres Geplänkel angemeldet.\n\nBestätigt Eure Rolle:";
REQUIRED_MONEY = "Benötigtes Geld:";
REQUIRED_REAGENT_TOOLTIP_CLICK_TO_ADD = "Linksklick, um ein benötigtes Reagenz hinzuzufügen";
REQUIREMENTS = "Voraussetzungen";
REQUIRES_AZERITE_LEVEL_TOOLTIP = "Erfordert Stufe %d des Herzens von Azeroth.";
REQUIRES_CHI = "Benötigt Energie";
REQUIRES_GUILD_ACHIEVEMENT = "Benötigt Gildenerfolg";
REQUIRES_GUILD_FACTION = "Benötigt: |cffff0000%s|r";
REQUIRES_GUILD_FACTION_TOOLTIP = "Benötigt den Ruf \"%s\" bei dieser Gilde.";
REQUIRES_HOLY_POWER = "Benötigt Heilige Kraft";
REQUIRES_LABEL = "Benötigt:";
REQUIRES_OR_SPECIALIZATIONS = "Erfordert die Spezialisierung %s oder %s.";
REQUIRES_RELOAD = "Erfordert Neuladen";
REQUIRES_RUNIC_POWER = "Benötigt Runenmacht";
REQUIRES_SPECIALIZATION = "Erfordert die Spezialisierung %s.";
REQ_LEVEL_ABBR = "St.";
RESAMPLE_QUALITY = "Rekonstruktionsqualität";
RESAMPLE_QUALITY_BICUBIC = "Bikubisch";
RESAMPLE_QUALITY_BILINEAR = "Bilinear";
RESAMPLE_QUALITY_FSR = "FidelityFX Super Resolution 1.0";
RESAMPLE_QUALITY_POINT = "Punkt";
RESAMPLE_SHARPNESS = "Rekonstruktionsschärfe";
RESAMPLE_SHARPNESS_FORMAT = "%2.1f";
RESEARCH_COST = "Forschungskosten: %s";
RESEARCH_CURRENCY_COST = "Forschungskosten: |cffffffff%d|r |T%s:16:16:0:0|t";
RESEARCH_TIME_LABEL = "Dauer der Forschung:";
RESET = "Rücksetzen";
RESETGAME = "Spiel zurücksetzen";
RESETS_IN = "Läuft aus in";
RESET_ALL_BUTTON_TEXT = "Alle zurücksetzen";
RESET_ALL_WINDOWS = "Chatfenster zurücksetzen";
RESET_CAMERA = "Kamera zurücksetzen";
RESET_CHALLENGE_MODE = "Mythischen Dungeon zurücksetzen";
RESET_CHAT_POSITION = "Zurücksetzen";
RESET_CHAT_WINDOW = "Eure Chatfenster werden auf ihre Standardeinstellungen zurückgesetzt.\nAlle benutzerdefinierten Einstellungen gehen verloren.";
RESE


依前款规定，自动转为诉讼、仲裁中的保全措施或者执行中的查封、扣押、冻结措施的，期限连续计算，人民法院无需重新制作裁定书。

第十八条 申请保全人申请续行财产保全的，应当在保全期限届满七日前向人民法院提出；逾期申请或者不申请的，自行承担不能续行保全的法律后果。

人民法院进行财产保全时，应当书面告知申请保全人明确的保全期限届满日以及前款有关申请续行保全的事项。

第十九条 再审审查期间，债务人申请保全生效法律文书确定给付的财产的，人民法院不予受理。

再审审理期间，原生效法律文书中止执行，当事人申请财产保全的，人民法院应当受理。

第二十条 财产保全期间，被保全人请求对被保全财产自行处分，人民法院经审查，认为不损害申请保全人和其他执行债权人合法权益的，可以准许，但应当监督被保全人按照合理价格在指定期限内处分，并控制相应价款。

被保全人请求对作为争议标的的被保全财产自行处分的，须经申请保全人同意。

人民法院准许被保全人自行处分被保全财产的，应当通知申请保全人；申请保全人不同意的，可以依照民事诉讼法第二百二十五条规定提出异议。

第二十一条 保全法院在首先采取查封、扣押、冻结措施后超过一年未对被保全财产进行处分的，除被保全财产系争议标的外，在先轮候查封、扣押、冻结的执行法院可以商请保全法院将被保全财产移送执行。但司法解释另有特别规定的，适用其规定。

保全法院与在先轮候查封、扣押、冻结的执行法院就移送被保全财产发生争议的，可以逐级报请共同的上级法院指定该财产的执行法院。

共同的上级法院应当根据被保全财产的种类及所在地、各债权数额与被保全财产价值之间的关系等案件具体情况指定执行法院，并督促其在指定期限内处分被保全财产。

第二十二条 财产纠纷案件，被保全人或第三人提供充分有效担保请求解除保全，人民法院应当


import os, json
from azureml.core import Workspace
from azureml.core import Experiment
from azureml.core.model import Model
import azureml.core
from azureml.core import Run

# Get workspace
ws = Workspace.from_config()

# Paramaterize the matrics on which the models should be compared

# Add golden data set on which all the model performance can be evaluated

# Get the latest run_id
with open("aml_config/run_id.json") as f:
    config = json.load(f)

new_model_run_id = config["run_id"]
experiment_name = config["experiment_name"]
exp = Experiment(workspace = ws, name = experiment_name)

try:
  # Get most recently registered model, we assume that is the model in production. Download this model and compare it with the recently trained model by running test with same data set.
  model_list = Model.list(ws)
  production_model = next(filter(lambda x: x.created_time == max(model.created_time for model in model_list),  model_list))
  production_model_run_id = production_model.tags.get('run_id')
  run_list = exp.get_runs()
  # production_model_run = next(filter(lambda x: x.id == production_model_run_id, run_list))

  # Get the run history for both production model and newly trained model and compare mse
  production_model_run = Run(exp,run_id=production_model_run_id)
  new_model_run = Run(exp,run_id=new_model_run_id)

  production_model_metric = production_model_run.get_metrics().get('accuracy')
  new_model_metric = new_model_run.get_metrics().get('accuracy')
  print('Current Production model accuracy: {}, New trained model accuracy: {}'.format(production_model_metric, new_model_metric))

  promote_new_model=False
  if new_model_metric < production_model_metric:
    promote_new_model=True
    print('New trained model performs better, thus it will be registered')
except:
  promote_new_model=True
  print('This is the first model to be trained, thus nothing to evaluate for now')

run_id = {}
run_id['run_id'] = ''
# Writing the run id to /aml_config/run_id.json
if promote_new_model:
  run_id['run_id'] = new_model_run_id

run_id['experiment_name'] = experiment_name
with open('aml_config/run_id.json', 'w') as outfile:
  json.dump(run_id,outfile)


Options & InternalFormatterOptions.InstructionBytes) != 0) {
						var code = instrs[j].Code;
						var codeBytes = code.Array!;
						for (int k = 0; k < code.Count; k++) {
							byte b = codeBytes[k + code.Offset];
							output.Write(b.ToString(uppercaseHex ? "X2" : "x2"), BoxedTextColor.AsmHexBytes);
						}
						int missingBytes = HEXBYTES_COLUMN_BYTE_LENGTH - code.Count;
						for (int k = 0; k < missingBytes; k++)
							output.Write("  ", BoxedTextColor.Text);
						output.Write(" ", BoxedTextColor.Text);
					}

					formatter.Format(instr, formatterOutput);
					output.Write(Environment.NewLine, BoxedTextColor.Text);
				}
			}
		}

		internal static string GetCodeSizeString(Block[] blocks) {
			ulong codeSize = GetCodeSi


start_idx:]:
                end_idx = full_path.index(target_pos, start_idx)
                # 返回從下一步到終點的路徑段
                result_path = full_path[start_idx + 1:end_idx + 1]
                print(f"返回 S-shape 路徑段: {len(result_path)} 步")
                return result_path if result_path else None
            else:
                print("目標點不在 S-shape 路徑中，回退到 A* 演算法")
                return plan_route_a_star(start_pos, target_pos, warehouse_matrix, dynamic_obstacles, forbidden_cells, cost_map)
        except ValueError:
            print("起點不在 S-shape 路徑中，回退到 A* 演算法")
            return plan_route_a_star(start_pos, target_pos, warehouse_matrix, dynamic_obstacles, forbidden_cells, cost_map)

    # 不使用 S-shape 策略，使用標準 A* 演算法
    return plan_route_a_star(start_pos, target_pos, warehouse_matrix, dynamic_obstacles, forbidden_cells, cost_map)

def plan_route_a_star(start_pos, target_pos, warehouse_matrix, dynamic_obstacles, forbidden_cells, cost_map):
    """標準 A* 路徑規劃演算法 (原始實作)"""
    rows, cols = warehouse_matrix.shape

    def neighbors(pos: Coord) -> List[Coord]:
        r, c = pos
        candidates = [(r + 1, c), (r - 1, c), (r, c + 1), (r, c - 1)] # 四個方向
        valid_neighbors = []
        for nr, nc in candidates:
            if 0 <= nr < rows and 0 <= nc < cols:
                # 檢查動態障礙物 (除非它是我們的最終目標)
                if dynamic_obstacles and (nr, nc) in dynamic_obstacles and (nr, nc) != target_pos:
                    continue

                # 檢查呼叫者提供的絕對禁止區域 (除非它是我們的最終目標)
                if (nr, nc) in forbidden_cells and (nr, nc) != target_pos:
                    continue

                # 檢查靜態倉庫佈局。所有非障礙物的格子都是可通行的。
                cell_type = warehouse_matrix[nr, nc]
                if cell_type in [0, 4, 5, 6, 7] or (nr, nc) == target_pos:
                    valid_neighbors.append((nr, nc))
        return valid_neighbors

    def heuristic(pos):
        # 啟發函式 (Heuristic): 使用曼哈頓距離，這在網格地圖上通常很有效。
        return abs(pos[0] - target_pos[0]) + abs(pos[1] - target_pos[1])

    # --- A* 演算法主體 ---
    open_list = [(heuristic(start_pos), 0, start_pos, [])]  # (f_score, g_score, pos, path)
    closed_set = set()

    while open_list:
        f, g, current, path = heapq.heappop(open_list)

        if current in closed_set:
            continue

        # 如果到達目標，重建並返回路徑
        if current == target_pos:
            # 根據「合約」，我們需要返回從「下一步」開始的路徑。
            return (path + [current])[1:]

        closed_set.add(current)

        # 探索所有有效的鄰居節點
        for neighbor in neighbors(current):
            if neighbor in closed_set:
                continue

            # 計算移動到鄰居的成本 (g_score)
            move_cost = cost_map.get(neighbor, 1) if isinstance(cost_map.get(neighbor), int) else 1
            new_g = g + move_cost
            # 計算 f_score = g_score + h_score
            new_f = new_g + heuristic(neighbor)
            # 將鄰居節點加入優先佇列
            heapq.heappush(open_list, (new_f, new_g, neighbor, path + [current]))

    return None  # 如果 open_list 為空仍未找到路徑，則表示無解

# --- S-shape 策略全域狀態管理 ---
# 儲存每個機器人的 S-shape 路徑狀態
# 格式: robot_position_key -> {"full_path": [...], "picks_remaining": [...], "current_target": Coord}
_s_shape_cache = {}

def get_robot_key(start_pos: Coord, picks: List[Coord]) -> str:
    """生成機器人狀態的唯一鍵值"""
    picks_str = "_".join([f"{p[0]}-{p[1]}" for p in sorted(picks)])
    return f"{start_pos[0]}-{start_pos[1]}_{picks_str}"

def clear_s_shape_cache():
    """清除所有 S-shape 快取"""
    global _s_shape_cache
    _s_shape_cache = {}

def plan_s_shape_complete_route(start_pos: Coord, pick_locations: List[Coord], warehouse_matrix: np.ndarray, dynamic_obstacles: List[Coord], forbidden_cells: Set[Coord], cost_map: Dict) -> List[Coord]:
    """
    實作完整 S-shape 路徑規劃

    此版本為純正的 S-Shape 策略，會依序由左至右清掃所有需要作業的巷道。

    S-Shape 策略步驟：
    1. 找出所有需要撿貨的巷道 (sub roads)。
    2. 依巷道順序 (由左至右) 進行排序。
    3. 交替上下方向，清掃每個巷道內的所有貨物。
    4. 從巷道一端進入，另一端離開，形成 S 形路徑。
    5. 重複直到所有巷道清掃完畢。

    返回包含起點的完整路徑
    """
    if not pick_locations:
        return [start_pos]

    path = [start_pos]
    curr = start_pos

    # 1. 找出所有需要撿貨的巷道並排序
    remaining_picks = pick_locations.copy()
    aisles_to_visit = sorted(list(set(p[1] for p in remaining_picks)))

    print(f" 開始純正 S-shape 路徑計算，起點: {start_pos}，目標巷道: {aisles_to_visit}")

    # 2. 交替清掃方向，1=向下, -1=向上
    sweep_direction = 1

    for aisle_col in aisles_to_visit:
        print(f"\n  清掃巷道: {aisle_col}, 方向: {'下' if sweep_direction == 1 else '上'}")

        # 3. 決定入口和出口轉彎點
        if


  if (holder.ItemView is ViewGroup viewGroup)
                        {
                            viewGroup.RemoveAllViews();
                        }

                        holder.ItemView?.Dispose();
                    }
                }

                _views.Clear();
            }
        }

        public RecyclerView.ViewHolder Dequeue()
        {
            lock (_views)
            {
                if (_views.Count > 0 && _views.Dequeue().TryGetTarget(out var result))
                {
                    return result;
                }
            }

            return _viewFactory();
        }

        private Task BuildViewsAsync()
        {
            return Task.Run(
                () =>
                {
                    for (int i = 0; i < _initialSize; i++)
                    {
                        var view = _viewFactory();
                        lock (_views)
                        {
                            _views.Enqueue(new JniWeakReference<RecyclerView.ViewHolder>(view));
                        }
                    }
                });
        }
    }
}


_MAX_COUNT];      // PowerSavingClock Mode Clock Minimum array In MHz
} ATOM_VEGA20_POWER_SAVING_CLOCK_RECORD;

typedef struct _ATOM_VEGA20_POWERPLAYTABLE
{
      struct atom_common_table_header sHeader;
      UCHAR  ucTableRevision;
      USHORT usTableSize;
      ULONG  ulGoldenPPID;
      ULONG  ulGoldenRevision;
      USHORT usFormatID;

      ULONG  ulPlatformCaps;

      UCHAR  ucThermalControllerType;

      USHORT usSmallPowerLimit1;
      USHORT usSmallPowerLimit2;
      USHORT usBoostPowerLimit;
      USHORT usODTurboPowerLimit;
      USHORT usODPowerSavePowerLimit;
      USHORT usSoftwareShutdownTemp;

      ATOM_VEGA20_POWER_SAVING_CLOCK_RECORD PowerSavingClockTable;    //PowerSavingClock Mode Clock Min/Max array

      ATOM_VEGA20_OVERDRIVE8_RECORD OverDrive8Table;       //OverDrive8 Feature capabilities and Settings Range (Max and Min)

      USHORT usReserve[5];

      PPTable_t smcPPTable;

} ATOM_Vega20_POWERPLAYTABLE;

#pragma pack(pop)

#endif


C30.325 58.483 31.954 58.333 34.246 58.333c2.321 0 3.971 0.442 5.083 1.329c1.058 0.842 1.775 2.221 1.775 3.846C41.1 65.142 40.558 66.521 39.575 67.458zM55.438 73.104c-1.75 1.454 -4.412 2.146 -7.667 2.146c-1.95 0 -3.329 -0.125 -4.267 -0.25v-16.321C44.883 58.454 46.683 58.333 48.583 58.333c3.154 0 5.204 0.567 6.804 1.775c1.729 1.283 2.813 3.329 2.813 6.267C58.2 69.554 57.038 71.75 55.438 73.104zM70.833 61.542h-6.383v3.796h5.967v3.058h-5.967v6.683h-3.775v-16.621H70.833V61.542zM58.333 37.5c-2.304 0 -4.167 0 -4.167 0V16.667l20.833 20.833H58.333z"></path></svg>');
}
body:not(.cc-no-custom-icons) svg.pencil {
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="red" d="M79.354 30.838c1.575 -1.575 2.442 -3.667 2.442 -5.892s-0.867 -4.317 -2.442 -5.892l-6.608 -6.608c-1.575 -1.575 -3.667 -2.442 -5.892 -2.442s-4.317 0.867 -5.888 2.438L16.667 56.604V75h18.388L79.354 30.838zM66.854 18.338l6.613 6.604 -6.625 6.6 -6.608 -6.604L66.854 18.338zM25 66.667v-6.604l29.333 -29.242 6.608 6.608L31.613 66.667H25zM16.667 83.333H83.333V91.667H16.667z"></path></svg>');
}
body:not(.cc-no-custom-icons) svg.pin {
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path fill="red" d="M50 91.667l4.167 -8.333v-12.5h20.833c2.304 0 4.167 -1.863 4.167 -4.167v-6.608c0 -2.192 -0.892 -4.342 -2.442 -5.892L70.833 48.275V33.333c2.304 0 4.167 -1.863 4.167 -4.167V16.667c0 -4.596 -3.738 -8.333 -8.333 -8.333H33.333C28.738 8.333 25 12.071 25 16.667v12.5c0 2.304 1.867 4.167 4.167 4.167v14.942L23.275 54.167C21.721 55.717 20.833 57.867 20.833 60.058V66.667c0 2.304 1.867 4.167 4.167 4.167h20.833v12.5L50 91.667zM33.333 16.667h33.333v8.333H33.333V16.667zM29.167 60.058l7.113 -7.113C37.063 52.167 37.5 51.108 37.5 50V33.333h25v16.667c0 1.108 0.438 2.167 1.221 2.946L70.833 60.058V62.5H29.167V60.058z"></path></svg>');
}
body:not(.cc-no-custom-icons) svg.plus-with-circle


getQName(packet.Raw[ipheadlen+udpheadlen:])
			if qname == "" {
				logPrintln(2, "DNS Segmentation fault")
				continue
			}

			config, ok := domainLookup(qname)
			if ok {
				var anCount int16 = 0
				var answers []byte = nil

				if qtype == 1 {
					answers = config.Answers4
					anCount = config.ANCount4
				} else if qtype == 28 {
					answers = config.Answers6
					anCount = config.ANCount6
				}

				if anCount == 0 {
					request := packet.Raw[ipheadlen+udpheadlen:]
					udpsize := len(request) + 8

					var packetsize int
					if ipv6 {
						copy(rawbuf, []byte{96, 12, 19, 68, 0, 98, 17, 128})
						packetsize = 40 + udpsize
						binary.BigEndian.PutUint16(rawbuf[4:], uint16(udpsize))
						copy(rawbuf[8:], packet.Raw[24:40])
						copy(rawbuf[24:], packet.Raw[8:24])
					} else {
						copy(rawbuf, []byte{69, 0, 1, 32, 141, 152, 64, 0, 64, 17, 150, 46})
						packetsize = 20 + udpsize
						binary.BigEndian.PutUint16(rawbuf[2:], uint16(packetsize))
						copy(rawbuf[12:], packet.Raw[16:20])
						copy(rawbuf[16:], packet.Raw[12:16])
						ipheadlen = 20
					}

					copy(rawbuf[ipheadlen:], packet.Raw[ipheadlen+2:ipheadlen+4])
					copy(rawbuf[ipheadlen+2:], packet.Raw[ipheadlen:ipheadlen+2])
					binary.BigEndian.PutUint16(rawbuf[ipheadlen+4:], uint16(udpsize))
					copy(rawbuf[ipheadlen+8:], request)
					rawbuf[ipheadlen+10] = 0x81
					rawbuf[ipheadlen+11] = 0x80
					binary.BigEndian.PutUint16(rawbuf[ipheadlen+14:], 0)

					packet.PacketLen = uint(packetsize)
					packet.Raw = rawbuf[:packetsize]
					packet.CalcNewChecksum(winDivert)

					_, err = winDivert.Send(packet)
				} else if anCount > 0 {
					logPrintln(2, qname, qtype)
					request := packet.Raw[ipheadlen+udpheadlen:]
					udpsize := len(request) + len(answers) + 8

					var packetsize int
					if ipv6 {
						copy(rawbuf, []byte{96, 12, 19, 68, 0, 98, 17, 128})
						packetsize = 40 + udpsize
						binary.BigEndian.PutUint16(rawbuf[4:], uint16(udpsize))
						copy(rawbuf[8:], packet.Raw[24:40])
						copy(rawbuf[24:], packet.Raw[8:24])
						copy(rawbuf[ipheadlen:], packet.Raw[ipheadlen+2:ipheadlen+4])
						copy(rawbuf[ipheadlen+2:], packet.Raw[ipheadlen:ipheadlen+2])
					} else {
						copy(rawbuf, []byte{69, 0, 1, 32, 141, 152, 64, 0, 64, 17, 150, 46})
						packetsize = 20 + udpsize
						binary.BigEndian.PutUint16(rawbuf[2:], uint16(packetsize))
						copy(rawbuf[12:], packet.Raw[16:20])
						copy(rawbuf[16:], packet.Raw[12:16])
						copy(rawbuf[20:], packet.Raw[ipheadlen+2:ipheadlen+4])
						copy(rawbuf


elt - Leather_RaidMonk_M_01 - Red",
[93980] = "Art Template Leather Head - Leather_RaidMonk_M_01 - Red",
[93981] = "Art Template Leather Boot - Leather_RaidMonk_M_01 - Red",
[93982] = "Art Template Leather Chest - Leather_RaidMonk_M_01 - Red",
[93983] = "Art Template Leather Hand - Leather_RaidMonk_M_01 - Red",
[93984] = "Art Template Leather Legs - Leather_RaidMonk_M_01 - Red",
[93985] = "Art Template Leather Shoulder - Leather_RaidMonk_M_01 - Red",
[93986] = "Art Template Leather Wrist - Leather_RaidMonk_M_01 - Red",
[93987] = "Art Template Leather Belt - Leather_RaidMonk_M_01 - Yellow",
[93988] = "Art Template Leather Head - Leather_RaidMonk_M_01 - Yellow",
[93989] = "Art Template Leather Boot - Leather_RaidMonk_M_01 - Yellow",
[93990] = "Art Template Leather Chest - Leather_RaidMonk_M_01 - Yellow",
[93991] = "Art Template Leather Hand - Leather_RaidMonk_M_01 - Yellow",
[93992] = "Art Template Leather Legs - Leather_RaidMonk_M_01 - Yellow",
[93993] = "Art Template Leather Shoulder - Leather_RaidMonk_M_01 - Yellow",
[93994] = "Art Template Leather Wrist - Leather_RaidMonk_M_01 - Yellow",
[94025] = "红色小熊猫",
[94028] = "赞达拉斩首者",
[94029] = "褪色的屈魂护肩",
[94030] = "原始浸血腿甲",
[94031] = "原始浸血肩铠",
[94032] = "原始浸血护手",
[94033] = "原始浸血胫甲",
[94034] = "原始浸血胸甲",
[94035] = "原始浸血腰带",
[94036] = "被遗忘的和平守护者护腿",
[94037] = "被遗忘的和平守护者长靴",
[94038] = "被遗忘的和平守护者护手",
[94039] = "被遗忘的和平守护者胸甲",
[94040] = "被遗忘的和平守护者腰带",
[94041] = "被遗忘的和平守护者护臂",
[94042] = "被遗忘的和平守护者护肩",
[94043] = "原始浸血护臂",
[94044] = "废弃的沼泽追踪者手套",
[94045] = "废弃的沼泽追踪者腰带",
[94046] = "废弃的沼泽追踪者头带",
[94047] = "废弃的沼泽追踪者护腿",
[94048] = "废弃的沼泽追踪者护肩",
[94049] = "废弃的沼泽追踪者皮靴",
[94050] = "废弃的沼泽追踪者胸甲",
[94051] = "废弃的沼泽追踪者护腕",
[94052] = "破损的恐龙鳞片胸甲",
[94053] = "破损的恐龙鳞片护腿",


的讨论
```

#### 🧠 **多记忆类型协同查询**

**1. 偏好记忆查询** (管理风格)
```log
执行工具 [query_ltm_preference]: key='管理风格'
Key映射: '管理风格' -> 'work_decision_making_style'
观察结果: {'status': 'success', 'data': None}  # 暂无存储的管理风格偏好
```

**2. 情节记忆查询** (历史Sprint经验)
```log
执行工具 [query_episodic_memory]: query_text='历史Sprint'
观察结果: {'status': 'success', 'data': [
  {
    'metadata': {'date': '2024-06-30', 'type': 'Sprint回顾', 'project': 'ecommerce_v2'},
    'text': '第一次Sprint回顾会议：团队速度达到45 story points，发现API设计需要优化，调整了下个Sprint计划。',
    'score': 0.976
  }
]}
```

**3. 语义记忆查询** (敏捷最佳实践)
```log
执行工具 [query_semantic_memory]: query_text='敏捷开发最佳实践'
观察结果: {'status': 'success', 'data': [
  {
    'text': '敏捷开发最佳实践：Sprint周期2周，每日站会15分钟，用户故事拆分小于3天工作量，Definition of Done明确。',
    'score': 0.341
  }
]}
```

**4. 知识图谱查询** (团队技能分布)
```log
执行工具 [query_knowledge_graph]: subject='团队成员', relation='技能分布'
观察结果: {'status': 'success', 'data': [
  {'subject': '团队成员', 'target': '张三(资深后端),李四(API架构师),王五(接口设计专家)'}
]}
```

### 🎯 **智能信息融合输出**

Agent综合**4种记忆类型**的信息，生成个性化的改进策略：

```
【历史Sprint回顾要点】
- 团队速度：达到45 story points，整体节奏良好
- 痛点问题：API设计质量需优化，已被上次Sprint回顾重点关注并调整

【敏捷开发最佳实践】
- Sprint周期推荐2周，保证反馈及时且开发可控
- 每日站会控制在15分钟内，提升沟通效率
- 用户故事（User Story）建议拆分为小于3天工作量的小任务

【团队技能分


ing on the platform setting a clip might be an important
            #    performance issue. F.e. for Qt Embedded this reduces the
            #    part of the backing store that has to be copied out - maybe
            #    to an unaccelerated frame buffer device.

                xMap = self.canvasMap( self.__d_curve.xAxis() )
                yMap = self.canvasMap( self.__d_curve.yAxis() )

                br = Qwt.qwtBoundingRect( curveData,
                    self.__d_paintedPoints - 1, numPoints - 1 )

                clipRect = Qwt.QwtScaleMap.transform( xMap, yMap, br ).toRect()
                self.__d_directPainter.setClipRegion( QRegion(clipRect) )

            self.__d_directPainter.drawSeries( self.__d_curve,
                self.__d_paintedPoints - 1, numPoints - 1 )
            self.__d_paintedPoints = numPoints

        curveData.values().unlock()

    def __incrementInterval(self):
        self.__d_interval = Qwt.QwtInterval( self.__d_interval.maxValue(),
            self.__d_interval.maxValue() + self.__d_interval.width() )

        curveData = self.__d_curve.data()
        curveData.values().clearStaleValues( self.__d_interval.minValue() )

        #To avoid, that the grid is jumping, we disable
        #the autocalculation of the ticks and shift them
        #manually instead.

        scaleDiv = self.axisScaleDiv( Qwt.QwtPlot.xBottom )
        scaleDiv.setInterval( self.__d_interval )

        for i in range( 0, Qwt.QwtScaleDiv.NTickTypes):

            ticks = scaleDiv.ticks( i )
            for j in range(0 , len(ticks)):
                ticks[j] += self.__d_interval.width()
            scaleDiv.setTicks( i, ticks )

        self.setAxisScaleDiv( Qwt.QwtPlot.xBottom, scaleDiv )

        self.__d_origin.setValue( self.__d_interval.minValue() + self.__d_interval.width() / 2.0, 0.0 )

        self.__d_paintedPoints = 0
        self.replot()

    def timerEvent( self, event ):

        if ( event.timerId() == self.__d_timerId ):

            self.__updateCurve()

            elapsed = self.__d_clock.elapsed() / 1000.0
            if ( elapsed > self.__d_interval.maxValue() ):
                self.__incrementInterval()

            return

        Qwt.QwtPlot.timerEvent( self,event )

    def resizeEvent( self, event ):
        self.__d_directPainter.reset()
        Qwt.QwtPlot.resizeEvent( self,event )

    def showEvent( self, event ):
        self.replot()

    def eventFilter( self, object, event ):

        if ( object == self.canvas() and event.type() == QEvent.PaletteChange ):
            self.__d_curve.setPen( self.canvas().palette().color( QPalette.WindowText ) )

        return Qwt.QwtPlot.eventFilter( self, object, event )

    def __del__(self):
        del self.__d_directPainter


);
        // 创建作用范围显示对象
        for (var i = 0; i < grids.length; i++) {
            var grid = grids[i];
            var effectGridAni = GameBattleHelper.createEffectGrid(0, 0, 2);
            effectGridAni.data = grid;
            this.battlerEffectReleaseGridAniArr.push(effectGridAni);
        }
        // 开启释放范围
        this.openReleaseGridCursor = true;
        return grids;
    }
    /**
     * 打开释放范围光标效果（注册帧刷事件跟随光标）
     */
    private static set openReleaseGridCursor(v: boolean) {
        this._openReleaseGridCursor = v;
        if (v) {
            os.remove_ENTERFRAME(this.onUpdateReleaseGridCursor, this);
            os.add_ENTERFRAME(this.onUpdateReleaseGridCursor, this);
            this.onUpdateReleaseGridCursor();
        }
        else {
            os.remove_ENTERFRAME(this.onUpdateReleaseGridCursor, this);
        }
    }
    private static get openReleaseGridCursor(): boolean {
        return this._openReleaseGridCursor;
    }
    /**
     * 刷新释放范围光标
     */
    private static onUpdateReleaseGridCursor() {
        var cursorGridPos = GameBattleHelper.cursorGridPoint;
        var cursor = GameBattleHelper.cursor;
        // 战斗
        for (var i = 0; i < this.battlerEffectReleaseGridAniArr.length; i++) {
            var releaseAni = this.battlerEffectReleaseGridAniArr[i];
            var localGrid: Point = releaseAni.data;
            var inSceneGridX = cursorGridPos.x + localGrid.x;
            var inSceneGridY = cursorGridPos.y + localGrid.y;
            // 场景越界则忽略显示
            if (Game.currentScene.sceneUtils.isOutsideByGrid(new Point(inSceneGridX, inSceneGridY))) {
                releaseAni.visible = false;
                continue;
            }
            releaseAni.visible = true;
            var aniX = inSceneGridX * Config.SCENE_GRID_SIZE + Config.SCENE_GRID_SIZE * 0.5;
            var aniY = inSceneGridY * Config.SCENE_GRID_SIZE + Config.SCENE_GRID_SIZE * 0.5;
            // 释放函数
            releaseAni.x = aniX;
            releaseAni.y = aniY;
        }
    }
    /**
     * 关闭作用范围
     */
    private static closeBattlerEffectRangeGrid(): void {
        for (var i = 0; i < this.battlerEffectGridAniArr.length; i++) {
            this.battlerEffectGridAniArr[i].dispose();
        }
        this.battlerEffectGridAniArr.length = 0;
    }
    /**
     * 关闭释放范围
     */
    private static closeBattlerReleaseRangeGrid(): void {
        for (var i = 0; i < this.battlerEffectReleaseGridAniArr.length; i++) {
            this.battlerEffectReleaseGridAniArr[i].dispose();
        }
        this.battlerEffectReleaseGridAniArr.length = 0;
        this.openReleaseGridCursor = false


uble(),
      eccentricity: (json['eccentricity'] as num?)?.toDouble(),
      inclination: (json['inclination'] as num?)?.toDouble(),
      longitude: (json['longitude'] as num?)?.toDouble(),
      periapsisArg: (json['periapsis_arg'] as num?)?.toDouble(),
      periodDays: (json['period_days'] as num?)?.toDouble(),
      speedKph: (json['speed_kph'] as num?)?.toDouble(),
      speedMph: (json['speed_mph'] as num?)?.toDouble(),
      earthDistanceKm: (json['earth_distance_km'] as num?)?.toDouble(),
      earthDistanceMi: (json['earth_distance_mi'] as num?)?.toDouble(),
      marsDistanceKm: (json['mars_distance_km'] as num?)?.toDouble(),
      marsDistanceMi: (json['mars_distance_mi'] as num?)?.toDouble(),
      flickrImages: (json['flickr_images'] as List<dynamic>?)
          ?.map((e) => e as String)
          .toList(),
      wikipedia: json['wikipedia'] as String?,
      video: json['video'] as String?,
      details: json['details'] as String?,
      id: json['id'] as String?,
    );

Map<String, dynamic> _$NetworkRoadsterModelToJson(
        _NetworkRoadsterModel instance) =>
    <String, dynamic>{
      'name': instance.name,
      'launch_date_utc': instance.launchDateUtc,
      'launch_date_unix': instance.launchDateUnix,
      'launch_mass_kg': instance.launchMassKg,
      'launch_mass_lbs': instance.launchMassLbs,
      'norad_id': instance.noradId,
      'epoch_jd': instance.epochJd,
      'orbit_type': instance.orbitType,
      'apoapsis_au': instance.apoapsisAu,
      'periapsis_au': instance.periapsisAu,
      'semi_major_axis_au': instance.semiMajorAxisAu,
      'eccentricity': instance.eccentricity,
      'inclination': instance.inclination,
      'longitude': instance.longitude,
      'periapsis_arg': instance.periapsisArg,
      'period_days': instance.periodDays,
      'speed_kph': instance.speedKph,
      'speed_mph': instance.speedMph,
      'earth_distance_km': instance.earthDistanceKm,
      'earth_distance_mi': instance.earthDistanceMi,
      'mars_distance_km': instance.marsDistanceKm,
      'mars_distance_mi': instance.marsDistanceMi,
      'flickr_images': instance.flickrImages,
      'wikipedia': instance.wikipedia,
      'video': instance.video,
      'details': instance.details,
      'id': instance.id,
    };
// GENERATED CODE - DO NOT MODIFY BY HAND
// coverage:ignore-file
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark

part of 'network_launch_full_model.dart';

// **************************************************************************
// FreezedGenerator
// **************************************************************************

// dart format off
T _$identity<T>(T value) => value;

/// @nodoc
mixin _$NetworkLaunchFullModel {
  @JsonKey(name: '_id')
  String? get id;
  @JsonKey(name: 'flight_number')
  int? get flightNumber;
  @JsonKey(name: 'mission_name')
  String? get missionName;
  @JsonKey(name: 'mission_id')
  List<dynamic>? get missionId;
  @JsonKey(


dequeue(), isNull);
    });

    test('list input works', () {
      final queue = PriorityQueueList<num>(elements: [5, 8, 2, 1]);
      expect(queue.dequeue(), 8);
      expect(queue.dequeue(), 5);
      expect(queue.dequeue(), 2);
      expect(queue.dequeue(), 1);
      expect(queue.dequeue(), isNull);
    });
  });

  group('PriorityQueueList (min):', () {
    test('isEmpty works', () {
      final queue = PriorityQueueList<num>(priority: Priority.min);
      expect(queue.isEmpty, true);
      queue.enqueue(1);
      expect(queue.isEmpty, false);
    });

    test('peek works', () {
      final queue = PriorityQueueList<num>(priority: Priority.min);
      expect(queue.peek, isNull);
      queue.enqueue(1);
      expect(queue.peek, 1);
    });

    test('enqueue works', () {
      final queue = PriorityQueueList<num>(priority: Priority.min);
      queue.enqueue(1);
      expect(queue.isEmpty, false);
      expect(queue.peek, 1);
      final success = queue.enqueue(2);
      expect(success, true);
      expect(queue.isEmpty, false);
      expect(queue.peek, 1);
    });

    test('dequeue works', () {
      final queue = PriorityQueueList<num>(priority: Priority.min);
      queue.enqueue(1);
      queue.enqueue(2);
      queue.enqueue(3);
      expect(queue.dequeue(), 1);
      expect(queue.dequeue(), 2);
      queue.enqueue(4);
      expect(queue.dequeue(), 3);
      expect(queue.dequeue(), 4);
      expect(queue.dequeue(), isNull);
    });

    test('list input works', () {
      final queue = PriorityQueueList<num>(
        elements: [5, 8, 2, 1],
        priority: Priority.min,
      );
      expect(queue.dequeue(), 1);
      expect(queue.dequeue(), 2);
      expect(queue.dequeue(), 5);
      expect(queue.dequeue(), 8);
      expect(queue.dequeue(), isNull);
    });
  });
}
// Copyright (c) 2023 Kodeco Inc.
// For full license & permission details, see LICENSE.

class Vertex<T> {
  const Vertex({
    required this.index,
    required this.data,
  });

  final int index;
  final T data;

  @override
  String toString() => data.toString();
}

class Edge<T> {
  const Edge(
    this.source,
    this.destination, [
    this.weight,
  ]);

  final Vertex<T> source;
  final Vertex<T> destination;
  final double? weight;
}

enum EdgeType { directed, undirected }

abstract interface class Graph<E> {
  Iterable<Vertex<E>> get vertices;

  Vertex<E> createVertex(E data);

  void addEdge(
    Vertex<E> source,
    Vertex<E> destination, {
    EdgeType edgeType,
    double? weight,
  });

  List<Edge<E>> edges(Vertex<E> source);

  double? weight(
    Vertex<E> source,
    Vertex<E> destination,
  );
}

class AdjacencyList<E> implements Graph<E> {
  final Map<Vertex<E>, List<Edge<E>>> _connections = {};
  var _nextIndex = 0;

  @override
  Iterable<Vertex<E>> get vertices => _connections.keys;

  @override
  Vertex<E> createVertex(E data) {
    final vertex = Vertex(
      index: _nextIndex,
      data: data,
    );
    _nextIndex++;
    _connections[vertex] = [];
    return vertex;
  }

  @override
  void addEdge(
    Vertex<E> source,
    Vertex<E> de


lash_get_size(base, i);
		}
	}
	flash_protect_default();
	gd->bd->bi_flashstart = base;
	return 0;
}
#endif /* defined(CONFIG_SYS_UPDATE_FLASH_SIZE) */

void ft_board_setup(void *blob, bd_t *bd)
{
	int phy_addr = CONFIG_PHY_ADDR;
	char eth_path[] = "/soc5200@f0000000/mdio@3000/ethernet-phy@0";

	ft_cpu_setup(blob, bd);

#if defined(CONFIG_SYS_UPDATE_FLASH_SIZE)
#ifdef CONFIG_FDT_FIXUP_NOR_FLASH_SIZE
	/* Update reg property in all nor flash nodes too */
	fdt_fixup_nor_flash_size(blob);
#endif
	ft_adapt_flash_base(blob);
#endif
	/* fix up the phy address */
	do_fixup_by_path(blob, eth_path, "reg", &phy_addr, sizeof(int), 0);
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */


include "sql/dd/impl/system_views/routines.h"

namespace dd {
namespace system_views {

const Routines &Routines::instance() {
  static Routines *s_instance = new Routines();
  return *s_instance;
}

Routines::Routines() {
  m_target_def.set_view_name(view_name());

  m_target_def.add_field(FIELD_SPECIFIC_NAME, "SPECIFIC_NAME", "rtn.name");
  m_target_def.add_field(FIELD_ROUTINE_CATALOG, "ROUTINE_CATALOG",
                         "cat.name" + m_target_def.fs_name_collation());
  m_target_def.add_field(FIELD_ROUTINE_SCHEMA, "ROUTINE_SCHEMA",
                         "sch.name" + m_target_def.fs_name_collation());
  m_target_def.add_field(FIELD_ROUTINE_NAME, "ROUTINE_NAME", "rtn.name");
  m_target_def.add_field(FIELD_ROUTINE_TYPE, "ROUTINE_TYPE", "rtn.type");
  m_target_def.add_field(FIELD_DATA_TYPE, "DATA_TYPE",
                         "IF(rtn.type = 'PROCEDURE', '', "
                         "   SUBSTRING_INDEX(SUBSTRING_INDEX("
                         "     rtn.result_data_type_utf8, '(', 1), ' ', 1))");
  m_target_def.add_field(FIELD_CHARACTER_MAXIMUM_LENGTH,
                         "CHARACTER_MAXIMUM_LENGTH",
                         "INTERNAL_DD_CHAR_LENGTH(rtn.result_data_type,"
                         "  rtn.result_char_length, coll_result.name, 0)");
  m_target_def.add_field(FIELD_CHARACTER_OCTET_LENGTH, "CHARACTER_OCTET_LENGTH",
                         "INTERNAL_DD_CHAR_LENGTH(rtn.result_data_type,"
                         "  rtn.result_char_length, coll_result.name, 1)");
  m_target_def.add_field(FIELD_NUMERIC_PRECISION, "NUMERIC_PRECISION",
                         "rtn.result_numeric_precision");
  m_target_def.add_field(FIELD_NUMERIC_SCALE, "NUMERIC_SCALE",
                         "rtn.result_numeric_scale");
  m_target_def.add_field(FIELD_DATETIME_PRECISION, "DATETIME_PRECISION",
                         "rtn.result_datetime_precision");
  m_target_def.add_field(
      FIELD_CHARACTER_SET_NAME, "CHARACTER_SET_NAME",
      "CASE rtn.result_data_type"
      "  WHEN 'MYSQL_TYPE_STRING' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_VAR_STRING' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_VARCHAR' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_TINY_BLOB' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_MEDIUM_BLOB' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_BLOB' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_LONG_BLOB' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_ENUM' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  WHEN 'MYSQL_TYPE_SET' THEN "
      "    (IF (cs_result.name='binary',NULL, cs_result.name))"
      "  ELSE NULL END");
  m_target_def.add_field(


"""Source provider for a content root managed by git version control."""

from __future__ import annotations

import os

from ...git import (
    Git,
)

from ...encoding import (
    to_bytes,
)

from ...util import (
    SubprocessError,
)

from . import (
    SourceProvider,
)

class GitSource(SourceProvider):
    """Source provider for a content root managed by git version control."""

    @staticmethod
    def is_content_root(path: str) -> bool:
        """Return True if the given path is a content root for this provider."""
        return os.path.exists(os.path.join(path, '.git'))

    def get_paths(self, path: str) -> list[str]:
        """Return the list of available content paths under the given path."""
        paths = self.__get_paths(path)

        try:
            submodule_paths = Git(path).get_submodule_paths()
        except SubprocessError:
            if path == self.root:
                raise

            # older versions of git require submodule commands to be executed from the top level of the working tree
            # git version 2.18.1 (centos8) does not have this restriction
            # git version 1.8.3.1 (centos7) does
            # fall back to using the top level directory of the working tree only when needed
            # this avoids penalizing newer git versions with a potentially slower analysis due to additional submodules
            rel_path = os.path.relpath(path, self.root) + os.path.sep

            submodule_paths = Git(self.root).get_submodule_paths()
            submodule_paths = [os.path.relpath(p, rel_path) for p in submodule_paths if p.startswith(rel_path)]

        for submodule_path in submodule_paths:
            paths.extend(os.path.join(submodule_path, p) for p in self.__get_paths(os.path.join(path, submodule_path)))

        # git reports submodule directories as regular files
        paths = [p for p in paths if p not in submodule_paths]

        return paths

    @staticmethod
    def __get_paths(path: str) -> list[str]:
        """Return the list of available content paths under the given path."""
        git = Git(path)
        paths = git.get_file_names(['--cached', '--others', '--exclude-standard'])
        deleted_paths = git.get_file_names(['--deleted'])
        paths = sorted(set(paths) - set(deleted_paths))

        # directory symlinks are reported by git as regular files but they need to be treated as directories
        paths = [path + os.path.sep if os.path.isdir(to_bytes(path)) else path for path in paths]

        return paths


try.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory VideoPlayData.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'VideoPlayData',
      package: const $pb.PackageName(
          _omitMessageNames ? '' : 'bilibili.app.viewunite.v1'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'url')
    ..aOM<$5.Dimension>(2, _omitFieldNames ? '' : 'dimension',
        subBuilder: $5.Dimension.create)
    ..aInt64(3, _omitFieldNames ? '' : 'aid')
    ..aInt64(4, _omitFieldNames ? '' : 'epId')
    ..aInt64(5, _omitFieldNames ? '' : 'cid')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  VideoPlayData clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  VideoPlayData copyWith(void Function(VideoPlayData) updates) =>
      super.copyWith((message) => updates(message as VideoPlayData))
          as VideoPlayData;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static VideoPlayData create() => VideoPlayData._();
  @$core.override
  VideoPlayData createEmptyInstance() => create();
  static $pb.PbList<VideoPlayData> createRepeated() =>
      $pb.PbList<VideoPlayData>();
  @$core.pragma('dart2js:noInline')
  static VideoPlayData getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<VideoPlayData>(create);
  static VideoPlayData? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get url => $_getSZ(0);
  @$pb.TagNumber(1)
  set url($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasUrl() => $_has(0);
  @$pb.TagNumber(1)
  void clearUrl() => $_clearField(1);

  @$pb.TagNumber(2)
  $5.Dimension get dimension => $_getN(1);
  @$pb.TagNumber(2)
  set dimension($5.Dimension value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasDimension() => $_has(1);
  @$pb.TagNumber(2)
  void clearDimension() => $_clearField(2);
  @$pb.TagNumber(2)
  $5.Dimension ensureDimension() => $_ensure(1);

  @$pb.TagNumber(3)
  $fixnum.Int64 get aid => $_getI64(2);
  @$pb.TagNumber(3)
  set aid($fixnum.Int64 value) => $_setInt64(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAid() => $_has(2);
  @$pb.TagNumber(3)
  void clearAid() => $_clearField(3);

  @$pb.TagNumber(4)
  $fixnum.Int64 get epId => $_getI64(3);
  @$pb.TagNumber(4)
  set epId($fixnum.Int64 value) => $_setInt64(3, value);
  @$pb.TagNumber(4)
  $core.bool hasEpId() => $_has(3);
  @$pb.TagNumber(4)
  void clearEpId() => $_clearField(4);

  @$pb.TagNumber(5)
  $fixnum.Int64 get cid => $_getI64(


_flask+pandas_example folder contains the files from the previous screencast. There's nothing to do here other than to see that you can use pandas and flask together.

If you run the web app, you'll find that it still works. To run the web app:
1. In the terminal, type `cd 2_flask+pandas_example`
2. Then `python worldbank.py`
3. The data variable will print out to the terminal
4. You can open the web app in the browser as well. You can do this using the `env | grep WORK` command in the terminal to see your WORKSPACE envirnomental variables. And from there the web address is `http://WORKSPACESPACEID-3001.WORKSPACEDOMAIN` replacing WORKSPACEID and WORKSPACEDOMAIN with your values.

The next step will be to use this wrangled data in a Plotly visualization. You can do this in the back-end of the web app with Plotly's Python library and Python dictionaries. And then finally, you'll need to send these dictionaries containing the visualizations to the front-end of the web app.

This is what you're going to do next.# SDU-Touying-Simpl

一个为山东大学设计的、基于 [Touying](https://github.com/touying-typst/touying) 的 Typst 演示文稿模板。

![演示效果](./example/figures/main.png)

## 目录

- [简介](#简介)
- [特性](#特性)
- [安装](#安装)
- [快速开始](#快速开始)
- [字体支持](#字体支持)
- [许可证](#许可证)
- [致谢](#致谢)

## 简介

`sdu-touying-simpl` 是一个基于 [Typst](https://typst.app/) 和 [Touying](https://github.com/touying-typst/touying) 的演示文稿模板，专为山东大学师生设计。本项目旨在提供一个简单易用、美观大方的学术演示模板，同时保持与山东大学视觉形象的一致性。

通过多个月的开发，终于是做出了一款自己还算比较满意的，效果不错的模板供大家使用。

## 特性

- **现代化排版系统**：基于 Typst 构建，提供快速的编译速度和清晰的语法。
- **完整的幻灯片功能**：
  - 支持渐进式显示（`#pause`、`#uncover`、`#only` 等）；
  - 灵活的幻灯片布局系统；
  - 演讲者备注支持；
  - 讲义模式。
- **山大特色设计**：
  - 内置山东大学校徽和视觉元素；
  - 采用山大标准红色（`#880000`）作为主


hecking Z axis
                if ((nodes[i*9 + j*3][3] + nodes[i*9+1 + j*3][3] + nodes[i*9+2 + j*3][3] == sign*3) ||
                    // checking Y axis
                    (nodes[i + j*9][3] + nodes[i + j*9 + 3][3] + nodes[i + j*9 + 6][3] == sign*3))
                    return true;
        // checking X axis
        for (int i = 0; i < 9; i++)
            if (nodes[i][3] + nodes[i + 9][3] + nodes[i + 18][3] == sign*3)
                return true;
        // checking diagonals of surfaces
        if ((nodes[0][3] + nodes[4][3] + nodes[8][3] == sign*3) ||
            (nodes[0][3] + nodes[10][3] + nodes[20][3] == sign*3) ||
            (nodes[0][3] + nodes[12][3] + nodes[24][3] == sign*3) ||
            (nodes[2][3] + nodes[4][3] + nodes[6][3] == sign*3) ||
            (nodes[2][3] + nodes[10][3] + nodes[18][3] == sign*3) ||
            (nodes[2][3] + nodes[14][3] + nodes[26][3] == sign*3) ||
            (nodes[6][3] + nodes[12][3] + nodes[18][3] == sign*3) ||
            (nodes[6][3] + nodes[16][3] + nodes[26][3] == sign*3) ||
            (nodes[8][3] + nodes[14][3] + nodes[20][3] == sign*3) ||
            (nodes[8][3] + nodes[16][3] + nodes[24][3] == sign*3) ||
            (nodes[18][3] + nodes[22][3] + nodes[26][3] == sign*3) ||
            (nodes[20][3] + nodes[22][3] + nodes[24][3] == sign*3))
             return true;
        // checking internal diagonals
        for (int i = 0; i < 9; i++)
            if (nodes[i][3] + nodes[13][3] + nodes[26 - i][3] == sign*3)
                return true;
        if ((nodes[9][3] + nodes[13][3] + nodes[17][3] == sign*3) ||
            (nodes[11][3] + nodes[13][3] + nodes[15][3] == sign*3))
                return true;
        return false;
    }

    private void scale(double s) {
        for (double[] node : nodes) {
            node[0] *= s;
            node[1] *= s;
            node[2] *= s;
        }
    }

    private void rotate(double angleX, double angleY) {
        double sinX = sin(angleX);
        double cosX = cos(angleX);

        double sinY = sin(angleY);
        double cosY = cos(angleY);

        for (double[] node : nodes) {
            double x = node[0];
            double y = node[1];
            double z = node[2];

            node[0] = x * cosX - z * sinX;
            node[2] = z * cosX + x * sinX;

            z = node[2];

            node[1] = y * cosY - z * sinY;
            node[2] = z * cosY + y * sinY;
        }
    }

    void draw(Graphics2D g) {
        g.translate(getWidth() / 2, getHeight() / 2);

        g.setStroke(new BasicStroke(2));

        g.setColor(Color.gray);
        for (int[] edge : edges) {
            double[] xy1 = nodes[edge[0]];
            double[] xy2 = nodes[edge[1]];
            g.drawLine((int) round(xy1[0]), (int) round(xy1[1]),
                    (int) round(xy2[0]), (int) round(xy2[1]));
        }

        for (double[] node : nodes)
            if (node[3] == 0) {
                g.setColor(Color.black);
                g.fillOval((int) round(node[0]) - RD/2, (int) round(node[1]) - RD/2, RD, RD);
                g.setColor(Color.gray);
                g


43-3", "43343-4", "47239-9");

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(LOINC_URI);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.EQUAL)
				.setValue("43343-3");
			outcome = myTermSvc.expandValueSet(null, vs);
			codes = toCodesContains(outcome.getExpansion().getContains());
			assertThat(codes).containsExactlyInAnyOrder("43343-4", "47239-9");

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(LOINC_URI);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.EQUAL)
				.setValue("43343-4");
			outcome = myTermSvc.expandValueSet(null, vs);
			assertThat(outcome.getExpansion().getContains()).isEmpty();

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(LOINC_URI);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.EQUAL)
				.setValue("47239-9");
			outcome = myTermSvc.expandValueSet(null, vs);
			assertThat(outcome.getExpansion().getContains()).isEmpty();
		}

		@Test
		public void testAncestorWithIncludeAndIn() {
			createLoincSystemWithSomeCodes();

			List<String> codes;
			ValueSet vs;
			ValueSet outcome;
			ValueSet.ConceptSetComponent include;

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(LOINC_URI);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.IN)
				.setValue("50015-7,43343-3,43343-4,47239-9");
			outcome = myTermSvc.expandValueSet(null, vs);
			codes = toCodesContains(outcome.getExpansion().getContains());
			assertThat(codes).containsExactlyInAnyOrder("43343-3", "43343-4", "47239-9");
		}

		@Test
		public void testAncestorWithUnsupportedOp() {
			createLoincSystemWithSomeCodes();

			ValueSet vs;
			ValueSet.ConceptSetComponent include;

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(LOINC_URI);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.ISA)
				.setValue("50015-7");

			try {
				myTermSvc.expandValueSet(null, vs);
				fail("");
			} catch (InvalidRequestException e) {
				assertEquals(Msg.code(892) + "Don't know how to handle op=ISA on property ancestor", e.getMessage());
			}

		}

		@Test
		public void testAncestorWithUnsupportedSystem() {
			createCodeSystem();
			createLoincSystemWithSomeCodes();

			ValueSet vs;
			ValueSet.ConceptSetComponent include;

			// Include
			vs = new ValueSet();
			include = vs.getCompose().addInclude();
			include.setSystem(CS_URL);
			include
				.addFilter()
				.setProperty("ancestor")
				.setOp(ValueSet.FilterOperator.EQUAL)
				.setValue("50015-7");

			try {
				myTermSvc.expandValueSet(null, vs);
				fail("");
			} catch (InvalidRequestException e) {
				assertEquals(Msg.


d_fn(self, fn): pass
        >>> gc = general_command(stub())
        >>> ctxt = contexts.simple_context()
        >>> ctxt.dump()
        >>> mgr = gc.lookup(ctxt, ctxt,
        ...                 (contexts.variable('ans'),
        ...                  pattern.pattern_literal(('echo', 'hi'))))
        >>> gen = iter(mgr.__enter__())
        >>> gen.next()
        >>> ctxt.dump()
        ans: (0, 'hi\n', '')
        >>> gen.next()
        Traceback (most recent call last):
            ...
        StopIteration
        >>> ctxt.dump()
        >>> mgr.__exit__(None, None, None)
    '''
    def __init__(self, special_base):
        super(general_command, self).__init__(special_base, 'general_command')

    def lookup(self, bindings, pat_context, patterns):
        if len(patterns) < 2: return knowledge_base.Gen_empty
        ans = run_cmd(pat_context, patterns[1],
                      patterns[2] if len(patterns) > 2 else None,
                      patterns[3] if len(patterns) > 3 else None)

        def gen():
            mark = bindings.mark(True)
            try:
                if patterns[0].match_data(bindings, pat_context, ans):
                    bindings.end_save_all_undo()
                    yield
                else:
                    bindings.end_save_all_undo()
            finally:
                bindings.undo_to_mark(mark)

        return contextlib.closing(gen())

def create_for(engine):
    special_base = special_knowledge_base(engine)
    claim_goal(special_base)
    check_command(special_base)
    command(special_base)
    general_command(special_base)


AnonFuncDef(FuncBody funcbody) {
			this.body = funcbody;
		}

		public void accept(Visitor visitor) {
			visitor.visit(this);
		}
	}

}
/*******************************************************************************
* Copyright (c) 2011 Luaj.org. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
package org.luaj.vm2.lib.jse;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.luaj.vm2.LuaError;
import org.luaj.vm2.LuaFunction;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.Varargs;

/**
 * LuaValue that represents a Java method.
 *

 * Can be invoked via call(LuaValue...) and related methods.
 *

 * This class is not used directly.
 * It is returned by calls to calls to {@link JavaInstance#get(LuaValue key)}
 * when a method is named.
 * @see CoerceJavaToLua
 * @see CoerceLuaToJava
 */
class JavaMethod extends JavaMember {

	static final Map methods = Collections.synchronizedMap(new HashMap());

	static JavaMethod forMethod(Method m) {
		JavaMethod j = (JavaMethod) methods.get(m);
		if ( j == null )
			methods.put( m, j = new JavaMethod(m) );
		return j;
	}

	static LuaFunction forMethods(JavaMethod[] m) {
		return new Overload(m);
	}

	final Method method;

	private JavaMethod(Method m) {
		super( m.getParameterTypes(), m.getModifiers() );
		this.method = m;
		try {
			if (!m.isAccessible())
				m.setAccessible(true);
		} catch (SecurityException s) {
		}
	}

	public LuaValue call() {
		return error("method cannot be called without instance");
	}

	public LuaValue call(LuaValue arg) {
		return invokeMethod(arg.checkuserdata(), LuaValue.NONE);
	}

	public LuaValue call(LuaValue arg1, LuaValue arg2) {
		return invokeMethod(arg1.checkuserdata(), arg2);
	}

	public LuaValue call(LuaValue arg1, LuaValue arg2, LuaValue arg3) {
		return invokeMethod(arg1.checkuserdata(), LuaValue.varargsOf(arg2, arg3));
	}

	public Varargs invoke(Varargs args) {
		return invokeMethod(args.checkuserdata(1), args.subargs(2));
	}

	LuaValue invokeMethod(Object instance, Varargs args) {
		Object[] a = convertArgs(args);
		try {
			return CoerceJavaToLua.coerce( method.invoke(instance, a) );
		} catch (InvocationTargetException e) {
			throw new LuaError(e.getTargetException());
		} catch (Exception e)


tr>

当り前じゃ普通過ぎてつまんない ピンチはチャンス

ヤバい状況を乗り越えて 不思議を暴きたい!

これが

Nightmare! 素敵な Nightmare! 秘密の Nightmare! 何も怖くないわ

Nightmare! ハマれば Nightmare! 全ては Nightmare!

Everything is interesting dream

Nightmare! 不満も Nightmare! 怒りも Nightmare! 捉え方次第だ

Nightmare! 危険も Nightmare! 退屈も Nightmare!
	<div class


oleNames)
            {
                if (_allRoles.TryGetValue(roleName, out Role? role))
                {
                    roles.Add(role);
                }
                else
                {
                    _log.LogError("No role named {Role}", roleName);
                }
            }

            roles = roles.OrderByDescending(n => n.Priority).ToList();

            _immunity = roles.FirstOrDefault()?.Priority ?? 0;

            _color = (from role in roles where role.Color != null select role.Color).FirstOrDefault();

            _permission = 0;
            roles.ForEach(n => _permission |= n.Permission);
        }
    }
}


22 0 00-.13-1.21A6.09 6.09 0 0017 8.49a6.29 6.29 0 00-.73-.89 5.67 5.67 0 00-.89-.73 6.3 6.3 0 00-1-.56A6.17 6.17 0 0013.21 6a6.11 6.11 0 00-2.41 0 5.51 5.51 0 00-1.13.36 5.57 5.57 0 00-1 .55 5.67 5.67 0 00-.89.73 6.29 6.29 0 00-.78.85 6.09 6.09 0 00-.9 2.14 6.21 6.21 0 00-.1 1.21 6.06 6.06 0 00.12 1.21 5.89 5.89 0 00.35 1.13 5.57 5.57 0 00.55 1 6.24 6.24 0 001.62 1.62 5.33 5.33 0 00.58.31L9 14.51a4.7 4.7 0 01-.35-.43 3.44 3.44 0 01-.37-.68 3.83 3.83 0 01-.23-.75 3.65 3.65 0 01-.05-.81 3.56 3.56 0 01.08-.8 3.83 3.83 0 01.23-.75 3.44 3.44 0 01.37-.68 4 4 0 01.5-.61 3.87 3.87 0 01.59-.48 3.44 3.44 0 01.68-.37 3.86 3.86 0 01.75-.24 4.36 4.36 0 011.61 0 3.86 3.86 0 01.75.24 3.58 3.58 0 011.27.85 3.49 3.49 0 01.49.61z"/></svg>';
  static const String pointer =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M20.978 13.21a1 1 0 00-.396-1.024l-14-10a.999.999 0 00-1.575.931l2 17a1 1 0 001.767.516l3.612-4.416 3.377 5.46 1.701-1.052-3.357-5.428 6.089-1.218a.995.995 0 00.782-.769zm-8.674.31a1 1 0 00-.578.347l-3.008 3.677L7.257 5.127l10.283 7.345-5.236 1.048z"/></svg>';
  static const String poll =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M7 11h7v2H7zm0-4h10.97v2H7zm0 8h13v2H7zM4 4h2v16H4z"/></svg>';
  static const String polygon =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M16.707 2.293A.996.996 0 0016 2H8a.996.996 0 00-.707.293l-5 5A.996.996 0 002 8v8c0 .266.105.52.293.707l5 5A.996.996 0 008 22h8c.266 0 .52-.105.707-.293l5-5A.996.996 0 0022 16V8a.996.996 0 00-.293-.707l-5-5zM20 15.586 15.586 20H8.414L4 15.586V8.414L8.414 4h7.172L20 8.414v7.172z"/></svg>';
  static con


E_VIEW.disabled = false;
		WTL_USE_VIEW_LABEL.disabled = false;

		WTL_USE_VIEW.checked = window.external.FindSymbol("WTL_USE_VIEW");
	}

	OnViewType();
	OnUseView();
}

function OnUseView()
{
	if(WTL_USE_VIEW.checked)
	{
		WTL_COMBO_VIEW_TYPE.disabled = false;
		WTL_COMBO_VIEW_TYPE_LABEL.disabled = false;
	}
	else
	{
		WTL_COMBO_VIEW_TYPE.disabled = true;
		WTL_COMBO_VIEW_TYPE_LABEL.disabled = true;
	}
}

function OnViewType()
{
	var strView = "";
	var oViewType = document.all.tags("SELECT").item("WTL_COMBO_VIEW_TYPE");
	if(oViewType != null)
	{
		oView = oViewType.options[oViewType.selectedIndex];
		strView = oViewType.value;
	}

	if(window.external.FindSymbol("WTL_ENABLE_AX") &&
			(window.external.FindSymbol("WTL_APPTYPE_DLG") || strView == "WTL_VIEWTYPE_FORM"))
	{
		WTL_HOST_AX.disabled = false;
		WTL_HOST_AX_LABEL.disabled = false;
		WTL_HOST_AX.checked = window.external.FindSymbol("WTL_HOST_AX");
	}
	else if(strView == "WTL_VIEWTYPE_HTML")
	{
		WTL_HOST_AX.checked = true;
		WTL_HOST_AX.disabled = true;
		WTL_HOST_AX_LABEL.disabled = true;
	}
	else
	{
		WTL_HOST_AX.checked = false;
		WTL_HOST_AX.disabled = true;
		WTL_HOST_AX_LABEL.disabled = true;
	}
}

		</SCRIPT>
		<SCRIPT ID="INCLUDE_SCRIPT" LANGUAGE="JSCRIPT"></SCRIPT>
		<SCRIPT ID="INCLUDE_COMMON" LANGUAGE="JSCRIPT"></SCRIPT>
		<!--
Common.js is a script file which contains the helper functions
used by the wizards.  Include this line if you want to
call these functions from your html scripts.
//-->
		<SCRIPT>
	var strPath = window.external.FindSymbol("PRODUCT_INSTALLATION_DIR");
	strPath += "VCWizards/";
	strPath += window.external.GetHostLocale();
	var strScriptPath = strPath + "/Script.js";
	var strCommonPath = strPath + "/Common.js";
	document.scripts("INCLUDE_SCRIPT").src = strScriptPath;
	document.scripts("INCLUDE_COMMON").src = strCommonPath;
		</SCRIPT>
	</BODY>
</HTML>
<!--
// Windows Template Library - WTL version 8.0
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// This file is a part of the Windows Template Library.
// The use and distribution terms for this software are covered by the
// Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
// which can be found in the file CPL.TXT at the root of this distribution.
// By using this software in any fashion, you are agreeing to be bound by
// the terms of this license. You must not remove this notice, or
// any other, from this software.
-->

<HTML DIR="ltr">
	<HEAD>
		<TITLE>'ATL/WTL Application Wizard for Windows CE'</TITLE>
		<META NAME="vs_targetSchema" CONTENT="http://schemas.microsoft.com/intellisense/ie5">
		<META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">
	    <LINK ID="LINKURL" REL="stylesheet" HREF="../../1033/NewStyles.css">
		<OBJECT id="ProjWiz" classid="CLSID:D245F352


                                          Y: trY[start:end],\
                                          p_keep_conv: 0.8,\
                                          p_keep_hidden: 0.5})
```

同时，我们得到了打乱的一批测试样本：

```py
        test_indices = np.arange(len(teX))
        np.random.shuffle(test_indices)
        test_indices = test_indices[0:test_size]
```

对于每次迭代，我们显示批次的评估`accuracy`：

```py
        print(i, np.mean(np.argmax(teY[test_indices], axis=1) ==\
                         sess.run\
                         (predict_op,\
                          feed_dict={X: teX[test_indices],\
                                     Y: teY[test_indices], \
                                     p_keep_conv: 1.0,\
                                     p_keep_hidden: 1.0})))
```

根据所使用的计算资源，训练网络可能需要几个小时。我机器上的结果如下：

```py
Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Successfully extracted to train-images-idx3-ubyte.mnist 9912422 bytes.
Loading ata/train-images-idx3-ubyte.mnist
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Successfully extracted to train-labels-idx1-ubyte.mnist 28881 bytes.
Loading ata/train-labels-idx1-ubyte.mnist
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Successfully extracted to t10k-images-idx3-ubyte.mnist 1648877 bytes.
Loading ata/t10k-images-idx3-ubyte.mnist
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Successfully extracted to t10k-labels-idx1-ubyte.mnist 4542 bytes.
Loading ata/t10k-lab


 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples)"]
pub const AVPixelFormat_AV_PIX_FMT_YUV411P: AVPixelFormat = 7;
#[doc = "<        Y        ,  8bpp"]
pub const AVPixelFormat_AV_PIX_FMT_GRAY8: AVPixelFormat = 8;
#[doc = "<        Y        ,  1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb"]
pub const AVPixelFormat_AV_PIX_FMT_MONOWHITE: AVPixelFormat = 9;
#[doc = "<        Y        ,  1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb"]
pub const AVPixelFormat_AV_PIX_FMT_MONOBLACK: AVPixelFormat = 10;
#[doc = "< 8 bits with AV_PIX_FMT_RGB32 palette"]
pub const AVPixelFormat_AV_PIX_FMT_PAL8: AVPixelFormat = 11;
#[doc = "< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range"]
pub const AVPixelFormat_AV_PIX_FMT_YUVJ420P: AVPixelFormat = 12;
#[doc = "< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range"]
pub const AVPixelFormat_AV_PIX_FMT_YUVJ422P: AVPixelFormat = 13;
#[doc = "< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range"]
pub const AVPixelFormat_AV_PIX_FMT_YUVJ444P: AVPixelFormat = 14;
#[doc = "< XVideo Motion Acceleration via common packet passing"]
pub const AVPixelFormat_AV_PIX_FMT_XVMC_MPEG2_MC: AVPixelFormat = 15;
pub const AVPixelFormat_AV_PIX_FMT_XVMC_MPEG2_IDCT: AVPixelFormat = 16;
pub const AVPixelFormat_AV_PIX_FMT_XVMC: AVPixelFormat = 16;
#[doc = "< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1"]
pub const AVPixelFormat_AV_PIX_FMT_UYVY422: AVPixelFormat = 17;
#[doc = "< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3"]
pub const AVPixelFormat_AV_PIX_FMT_UYYVYY411: AVPixelFormat = 18;
#[doc = "< packed RGB 3:3:2,  8bpp, (msb)2B 3G 3R(lsb)"]
pub const AVPixelFormat_AV_PIX_FMT_BGR8: AVPixelFormat = 19;
#[doc = "< packed RGB 1:2:1 bitstream,  4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits"]
pub const AVPixelFormat_AV_PIX_FMT_BGR4: AVPixelFormat = 20;
#[doc = "< packed RGB 1:2:1,  8bpp, (msb)1B 2G 1R(lsb)"]
pub const AVPixelFormat_AV_PIX_FMT_BGR4_BYTE: AVPixelFormat = 21;
#[doc = "< packed RGB 3:3:2,  8bpp, (msb)2R 3G 3B(lsb)"]
pub const AVPixelFormat_AV_PIX_FMT_RGB8: AVPixelFormat = 22;
#[doc = "< packed RGB 1:2:1 bitstream,  4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits"]
pub const AVPixelFormat_AV_PIX_FMT_RGB4: AVPixelFormat = 2


weakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA{background-color:#dcdcdc;display:inline-block;height:50px;position:relative;transition:1.5s;width:50px;z-index:1;z-index:2}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA:before{background-color:#fff;content:"";height:100%;left:-40px;position:absolute;transform:skewY(45deg);transform-origin:right;transition:1.5s;width:40px}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA:after{background-color:#f2f2f2;content:"";height:40px;position:absolute;top:-40px;transform:skewX(45deg);transform-origin:bottom;transition:1.5s;width:100%}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA:hover{background-color:#ef4149;filter:drop-shadow(0 0 30px #ef4149);transition:0s}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA:hover:before{background-color:#f75d64;transition:0s}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span1__IzddA:hover:after{background-color:#f14e55;transition:0s}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span2__fmd2S{background-color:#dcdcdc;display:inline-block;height:50px;position:relative;transition:1.5s;width:50px;z-index:2;z-index:1}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span2__fmd2S:before{background-color:#fff;content:"";height:100%;left:-40px;position:absolute;transform:skewY(45deg);transform-origin:right;transition:1.5s;width:40px}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span2__fmd2S:after{background-color:#f2f2f2;content:"";height:40px;position:absolute;top:-40px;transform:skewX(45deg);transform-origin:bottom;transition:1.5s;width:100%}.TweakCube_container__J\+C94 .TweakCube_content__Mr06c .TweakCube_cube__lBLW- .TweakCube_column1__zwP0s .TweakCube_span2__fmd2S:hover{background-color:#ef4149;filter:drop-shadow(0 0 30


ol+"//"+e.location.host;t=b(function(t){"*"!=i&&t.origin!=i||t.data!=n||this.port1.onmessage()},this),e.addEventListener("message",t,!1),this.port1={},this.port2={postMessage:function(){e.postMessage(n,i)}}}),void 0===t||st("Trident")||st("MSIE"))return function(t){l.setTimeout(t,0)};var e=new t,n={},i=n;return e.port1.onmessage=function(){var t;void 0!==n.next&&(t=(n=n.next).Fb,n.Fb=null,t())},function(t){i.next={Fb:t},i=i.next,e.port2.postMessage(0)}}())(t):l.setImmediate(t)}}}(),he||(re(),he=!0),le.add(t,e)}var he=!1,le=new M;function fe(){for(var t,e,n;n=e=void 0,n=null,(e=le).a&&(n=e.a,e.a=e.a.next,e.a||(e.b=null),n.next=null),t=n;){try{t.a.call(t.b)}catch(t){ue(t)}x(j,t)}he=!1}function de(t,e){if(this.a=pe,this.h=void 0,this.f=this.b=this.c=null,this.g=this.i=!1,t!=a)try{var n=this;t.call(e,function(t){Se(n,ve,t)},function(t){if(!(t instanceof Pe))try{if(t instanceof Error)throw t;throw Error("Promise rejected.")}catch(t){}Se(n,me,t)})}catch(t){Se(this,me,t)}}var pe=0,ve=2,me=3;function ge(){this.next=this.f=this.b=this.g=this.a=null,this.c=!1}ge.prototype.reset=function(){this.f=this.b=this.g=this.a=null,this.c=!1};var be=new L(function(){return new ge},function(t){t.reset()});function ye(t,e,n){var i=be.get();return i.g=t,i.b=e,i.f=n,i}function we(t){if(t instanceof de)return t;var e=new de(a);return Se(e,ve,t),e}function Ie(n){return new de(function(t,e){e(n)})}function Te(t,e,n){Ne(t,e,n,null)||ce(y(e,t))}function Ee(n){return new de(function(i){var r=n.length,o=[];if(r)for(var t=function(t,e,n){r--,o[t]=e?{Ob:!0,value:n}:{Ob:!1,reason:n},0==r&&i(o)},e=0;e<n.length;e++)Te(n[e],y(t,e,!0),y(t,e,!1));else i(o)})}function Ae(t,e){t.b||t.a!=ve&&t.a!=me||_e(t),t.f?t.f.next=e:t.b=e,t.f=e}function ke(t,r,o,a){var e=ye(null,null,null);return e.a=new de(function(n,i){e.g=r?function(t){try{var e=r.call(a,t);n(e)}catch(t){i(t)}}:n,e.b=o?function(t){try{var e=o.call(a,t);void 0===e&&t instanceof Pe?i(t):n(e)}catch(t){i(t)}}:i}),Ae(e.a.c=t,e),e.a}function Se(t,e,n){var i,r;t.a==pe&&(t===n&&(e=me,n=new TypeError("Promise cannot resolve to itself")),t.a=1,Ne(n,t.Zc,t.$c,t)||(t.h=n,t.a=e,t.c=null,_e(t),e!=me||n instanceof Pe||(r=n,(i


its = false
  currentDoc.url = `/project/display-content/${currentDoc.type}/${newDocumentID}`

  delete (currentDoc._rev)

  const documentNameIndex = currentDoc.extraFields.findIndex(e => e.id === "name")

  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
  currentDoc.extraFields[documentNameIndex].value = `Copy of - ${currentDoc.extraFields[documentNameIndex].value}`

  return currentDoc
}
import { Args, Query, Mutation, Resolver } from '@nestjs/graphql';
import { CelebsService } from './celebs.service';
import {
  CheckIfCelebExistsInput,
  CheckIfCelebExistsOutput,
  CreateCelebInput,
  CreateCelebOutput,
  DeleteCelebInput,
  DeleteCelebOutput,
  EditCelebInput,
  EditCelebOutput,
  GetAllCelebsOutput,
  GetAllCelebsPaginatedInput,
  GetAllCelebsPaginatedOutput,
  GetCelebByIdInput,
  GetCelebByIdOutput,
  GetCelebObjectByIdInput,
  GetCelebObjectByIdOutput,
  GetCelebsByMonthInput,
  GetCelebsByMonthOutput,
  GetCelebsByRoleInput,
  GetCelebsByRoleOutput,
  SearchCelebByNameInput,
  SearchCelebByNameOutput,
  SearchCelebsByMonthInput,
  SearchCelebsByMonthOutput,
  SearchCelebsInput,
  SearchCelebsOutput,
} from './dtos';
import { Celeb } from './entities/celeb.entity';

@Resolver(of => Celeb)
export class CelebsResolver {
  constructor(private readonly celebsService: CelebsService) {}

  @Mutation(returns => CreateCelebOutput)
  createCeleb(
    @Args('input') createCelebInput: CreateCelebInput,
  ): Promise<CreateCelebOutput> {
    return this.celebsService.createCeleb(createCelebInput);
  }

  @Query(returns => CheckIfCelebExistsOutput)
  checkIfCelebExists(
    @Args('input') checkIfCelebExistsInput: CheckIfCelebExistsInput,
  ): Promise<CheckIfCelebExistsOutput> {
    return this.celebsService.checkIfCelebExists(checkIfCelebExistsInput);
  }

  @Query(returns => GetAllCelebsOutput)
  getAllCelebs(): Promise<GetAllCelebsOutput> {
    return this.celebsService.getAllCelebs();
  }

  @Query(returns => GetAllCelebsPaginatedOutput)
  getAllCelebsPaginated(
    @Args('input') getAllCelebsPaginatedInput: GetAllCelebsPaginatedInput,
  ): Promise<GetAllCelebsPaginatedOutput> {
    return this.celebsService.getAllCelebPaginated(getAllCelebsPaginatedInput);
  }

  @Query(returns => GetCelebObjectByIdOutput)
  getCelebObjectById(
    @Args('input') getCelebObjectByIdInput: GetCelebObjectByIdInput,
  ): Promise<GetCelebObjectByIdOutput> {
    return this.celebsService.getCelebObjectById(getCelebObjectByIdInput);
  }

  @Query(returns => GetCelebByIdOutput)
  getCelebById(
    @Args('input') getCelebByIdInput: GetCelebByIdInput,
  ): Promise<GetCelebByIdOutput> {
    return this.celebsService.getCelebById(getCelebByIdInput);
  }

  @Query(returns => GetCelebsByMonthOutput)
  getCelebsByMonth(
    @Args('input') getCelebsByMonthInput: GetCelebsByMonthInput,
  ): Promise<GetCelebsByMonthOutput> {
    return this.celebsService.getCelebsByMonth(getCelebsByMonthInput);
  }

  @Query(returns => GetCelebsByRoleOutput)
  getCelebsByRole(
    @Args('input') getCelebs


en.isEmpty) {
        return {
          "status": "error",
          "message": "Cart token is required. Please provide it manually or ensure it's saved in storage.",
          "timestamp": DateTime.now().toIso8601String(),
        };
      }

      if (jwtToken == null || jwtToken.isEmpty) {
        return {
          "status": "error",
          "message": "JWT token is required. Please provide it manually or ensure you're logged in.",
          "timestamp": DateTime.now().toIso8601String(),
        };
      }

      debugPrint('🗑 Starting remove coupon from cart:');
      debugPrint('  - Coupon Code: $couponCode');
      debugPrint('  - API Version: $apiVersion');

      // Get CartService from DI
      final cartService = GetIt.I<CartService>();

      // Format JWT token with Bearer prefix if not already present
      final formattedJwtToken = jwtToken.startsWith('Bearer ')
          ? jwtToken
          : 'Bearer $jwtToken';

      // Call the service
      final response = await cartService.removeCoupon(
        apiVersion: apiVersion,
        cartToken: cartToken,
        jwtToken: formattedJwtToken,
        code: couponCode,
      );

      debugPrint('🔍 Remove Coupon Response Debug:');
      debugPrint('  - Items Count: ${response.itemsCount}');
      debugPrint('  - Items Weight: ${response.itemsWeight}');
      debugPrint('  - Remaining Coupons Count: ${response.coupons?.length ?? 0}');
      debugPrint('  - Total Items: ${response.totals?.totalItems}');
      debugPrint('  - Total Discount: ${response.totals?.totalDiscount}');
      debugPrint('  - Total Price: ${response.totals?.totalPrice}');
      debugPrint('  - Needs Payment: ${response.needsPayment}');
      debugPrint('  - Needs Shipping: ${response.needsShipping}');
      debugPrint('  - Errors: ${response.errors}');

      // Check if there are any errors in the response
      if (response.errors != null && response.errors!.isNotEmpty) {
        debugPrint('❌ Remove coupon failed with errors: ${response.errors}');

        return {
          "status": "error",
          "message": "Failed to remove coupon from cart",
          "error_details": {
            "type": "cart_error",
            "errors": response.errors,
          },
          "params": params,
          "timestamp": DateTime.now().toIso8601String(),
        };
      }

      // Check if coupon was actually removed by looking at coupons array
      final remainingCoupons = response.coupons ?? [];
      final wasCouponRemoved = !remainingCoupons.any((coupon) =>
        coupon is Map && coupon['code'] == couponCode);

      debugPrint('✅ Coupon removal completed');
      debugPrint('   - Coupon Removed: $wasCouponRemoved');
      debugPrint('   - Remaining Coupons: ${remainingCoupons.length}');

      return {
        "status": "success",
        "message": wasCouponRemoved
            ? "Coupon '$couponCode' removed successfully from cart"
            : "Coupon processing completed (check response for details)",
        "auth_info": {
          "cart_token_source": params.containsKey('cart_token') && params['cart_token']!.isNotEmpty ? "manual" : "auto_storage",
          "jwt_token_source": params.containsKey('jwt_token') && params['jwt_token']!.isNotEmpty ? "manual" : "auto_storage",
          "cart_token_available": cartToken.isNotEmpty,
          "jwt_token_available": jwtToken.isNotEmpty,
        },
        "coupon_info": {
          "removed_coupon_code": couponCode,
          "coupon_was_removed": wasCouponRemoved


0.0, 1.0 );",

			// get us a sine and cosine
			"vec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );",

			// add scanlines
			"cResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;",

			// interpolate between source and result by intensity
			"cResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );",

			// convert to grayscale if desired
			"if( grayscale ) {",

				"cResult = vec3( cResult.r * 0.3 + cResult.g * 0.59 + cResult.b * 0.11 );",

			"}",

			"gl_FragColor =  vec4( cResult, cTextureScreen.a );",

		"}"

	].join( "\n" )

};
/*
 * @author Daosheng Mu / https://github.com/DaoshengMu/
 * @author mrdoob / http://mrdoob.com/
 * @author takahirox / https://github.com/takahirox/
 */

THREE.TGALoader = function ( manager ) {

	this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;

};

THREE.TGALoader.prototype = {

	constructor: THREE.TGALoader,

	load: function ( url, onLoad, onProgress, onError ) {

		var scope = this;

		var texture = new THREE.Texture();

		var loader = new THREE.FileLoader( this.manager );
		loader.setResponseType( 'arraybuffer' );
		loader.setPath( this.path );

		loader.load( url, function ( buffer ) {

			texture.image = scope.parse( buffer );
			texture.needsUpdate = true;

			if ( onLoad !== undefined ) {

				onLoad( texture );

			}

		}, onProgress, onError );

		return texture;

	},

	parse: function ( buffer ) {

		// reference from vthibault, https://github.com/vthibault/roBrowser/blob/master/src/Loaders/Targa.js

		function tgaCheckHeader( header ) {

			switch ( header.image_type ) {

				// check indexed type

				case TGA_TYPE_INDEXED:
				case TGA_TYPE_RLE_INDEXED:
					if ( header.colormap_length > 256 || header.colormap_size !== 24 || header.colormap_type !== 1 ) {

						console.error( 'THREE.TGALoader: Invalid type colormap data for indexed type.' );

					}
					break;

				// check colormap type

				case TGA_TYPE_RGB:
				case TGA_TYPE_GREY:
				case TGA_TYPE_RLE_RGB:
				case TGA_TYPE_RLE_GREY:
					if ( header.colormap_type ) {

						console.error( 'THREE.TGALoader: Invalid type colormap data for colormap type.' );

					}
					break;

				// What the need of a file without data ?

				case TGA_TYPE_NO_DATA:
					console.error( 'THREE.TGALoader: No data.' );

				// Invalid type ?

				default:
					console.error( 'THREE.TGALoader: Invalid type "%s".', header.image_type );

			}

			// check image width and height

			if ( header.width <= 0 || header.height <= 0 ) {

				console.error( 'THREE.TGALoader: Invalid image size.' );

			}

			// check image pixel size

			if ( header.pixel_size !== 8 && header.pixel_size !== 16 &&
				header.pixel_size !== 24 && header.pixel_size !== 32 ) {

				console.error( 'THREE.TGALoader: Invalid pixel size "%s".', header.


AnalyzerFromCamlFactory(reOperandBuilder);
            var analyzer = constructor(XmlHelper.Get(xml), reOperandBuilder, reAnalyzerFactory);
            var operation = analyzer.GetOperation();
            Assert.IsInstanceOf<TOperation>(operation);
            var operationT = (TOperation)operation;
            Assert.That(operationT.ToExpression().ToString(), Is.EqualTo(
                string.Format("((Convert(x.get_Item(\"Title\")) == \"testValue\") {0} (Convert(x.get_Item(\"Title\")) == \"testValue\"))", operationSymbol)));
        }
   }
}


",
		},
	},
	{
		body: `
#syz fix: abcd
#syz fix: xyz
`,
		// Should only extract the first one.
		cmd: &SingleCommand{
			Command: CmdFix,
			Str:     "fix:",
			Args:    "abcd",
		},
	},
}

type ParseTest struct {
	email string
	res   Email
}

var parseTestZone = time.FixedZone("", -7*60*60)

// nolint: lll
var parseTests = []ParseTest{
	{`Date: Sun, 7 May 2017 19:54:00 -0700
Message-ID: <123>
Subject: test subject
From: Bob <bob@example.com>
To: syzbot <foo+4564456@bar.com>
Content-Type: text/plain; charset="UTF-8"

text body
second line
#syz fix: 	 arg1 arg2 arg3
last line
--
You received this message because you are subscribed to the Google Groups "syzkaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller+unsubscribe@googlegroups.com.
To post to this group, send email to syzkaller@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller/abcdef@google.com.
For more options, visit https://groups.google.com/d/optout.`,
		Email{
			BugIDs:    []string{"4564456"},
			MessageID: "<123>",
			Date:      time.Date(2017, time.May, 7, 19, 54, 0, 0, parseTestZone),
			Link:      "https://groups.google.com/d/msgid/syzkaller/abcdef@google.com",
			Subject:   "test subject",
			Author:    "bob@example.com",
			Cc:        []string{"bob@example.com"},
			RawCc:     []string{"bob@example.com", "foo+4564456@bar.com"},
			Body: `text body
second line
#syz fix: 	 arg1 arg2 arg3
last line
--
You received this message because you are subscribed to the Google Groups "syzkaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller+unsubscribe@googlegroups.com.
To post to this group, send email to syzkaller@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller/abcdef@google.com.
For more options, visit https://groups.google.com/d/optout.`,
			Patch: "",
			Commands: []*SingleCommand{
				{
					Command: CmdFix,
					Str:     "fix:",
					Args:    "arg1 arg2 arg3",
				},
			},
		}},
	{`Date: Sun, 7 May 2017 19:54:00 -0700
Message-ID: <123>
Subject: new footer
From: Bob <bob@example.com>
To: syzbot <foo+4564456@bar.com>
Content-Type: text/plain; charset="UTF-8"

some title

--
You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com.
To view this discussion visit https://


事件
 */
class CacheFileLoadedEventPublisher(
    private val publisher: ApplicationEventPublisher,
    private val credentials: StorageCredentials,
) : CacheFileWriterListener {
    override fun onCacheFileWritten(sha256: String, cacheFilePath: Path) {
        val fullPath = cacheFilePath.toString()
        val data = CacheFileEventData(credentials, sha256, fullPath, File(fullPath).length())
        publisher.publishEvent(CacheFileLoadedEvent(data))
    }
}
/*
 * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.
 *
 * Copyright (C) 2019 Tencent.  All rights reserved.
 *
 * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.
 *
 * A copy of the MIT License is included in this file.
 *
 *
 * Terms of the MIT License:
 * ---------------------------------------------------
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
 * the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.tencent.com.bkrepo.fs.storage

import com.tencent.bkrepo.common.api.constant.StringPool
import com.tencent.bkrepo.common.artifact.hash.md5
import com.tencent.bkrepo.common.artifact.hash.sha1
import com.tencent.bkrepo.common.artifact.hash.sha256
import com.tencent.bkrepo.common.storage.config.UploadProperties
import com.tencent.bkrepo.common.storage.config.StorageProperties
import com.tencent.bkrepo.common.storage.config.ReceiveProperties
import com.tencent.bkrepo.common.storage.credentials.FileSystemCredentials
import com.tencent.bkrepo.common.storage.config.MonitorProperties
import com.tencent.bkrepo.common.storage.monitor.StorageHealthMonitor
import com.tencent.bkrepo.fs.server.storage.CoArtifactFile
import java.io.ByteArrayOutputStream
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.springframework.core.io.buffer.DefaultDataBufferFactory
import org.springframework.util.unit.DataSize

class CoArtifactFileTest {

    private val tempDir = System.getProperty("java.io.tmpdir")

    private val uploadProperties = UploadProperties(location = tempDir)

    private val storageCredentials = FileSystemCredentials(upload = uploadProperties)

    private val shortContent = StringPool.randomString(DEFAULT_BUFFER_SIZE).toByteArray()
    private val longContent = StringPool.randomString(DEFAULT_BUFFER_SIZE * 20).toByteArray()

    private fun buildArtifactFile(
        threshold: Long
    ): CoArtifactFile {
        val storageProperties = StorageProperties(
            filesystem = storageCredentials,
            receive = ReceiveProperties(
                fileSizeThreshold = DataSize.ofBytes(threshold)
            ),
            monitor = MonitorProperties()
        )
        val monitor = StorageHealthMonitor(storageProperties, tempDir)
        return CoArtifactFile(storageCredentials, storageProperties, monitor)
    }

    @Test
    fun testInMemory() {
        runB


人们焦急地等待着……10时30分左右来了一位男交警，人们潮水般拥进室内。
- 5月6日，我们到[长春市交警支队南关区个体机动车辆管委会](ORG)（以下简称[南关办理处](ORG)）办理转籍手续，没想到这里每个窗口都贴有“今日不办公”或“星期二、三不办公”的启事，来办各种手续的数百人被拒于门外。
- 看来，学生的文明意识还须强化，学校讲文明、树新风活动有待进一步加强。
- 校园本是一方净土，但是，其间也不乏不文明者。
- 』商检人员以不卑不亢的态度，向外商一一介绍了整个检验情况。
- 但仍然担心万一商检结果不准，索赔不成反而影响与外商的合作关系。
- 厂方接到商检部门出具的前三份索赔证书时，竟认为商检证书不可信，怀疑商检检验技术和数据的准确性，对『洋货』的质量依然深信不疑。
- 然而，厂方称，这些原料质量绝对不会有什么问题。
- 今年二月，[湖北](LOC)一家生产高支轻薄毛纺呢绒布料的企业，分别从[意大利](LOC)、[澳大利亚](LOC)进口了十三批总重一百八十九点二吨、货值达一百九十八万美元的高支羊毛条原料。
- [河渠乡](LOC)开设这门课后，许多学生家长反映自己的孩子“像换了一个人”，“好像一下子懂事了许多”，这就是一个很好的证明。
- 据悉，[河北](LOC)[宁晋县](LOC)[河渠乡](LOC)在35所中小学为1万多名学生开设了孝敬父母教育课，培养青少年孝敬父母、尊敬长者的良好品德。
- 一旦顾客买回家后发现是劣品假货，回头再找商家理论时，商家转眼就成了“上帝”，或不认人、不认账，或推卸责任、胡乱扯皮，早把自己的承诺丢到了脑后。
- 因此，企业在提高产品质量的同时，也应切实采取措施，提高产品说明书的质量。
- 可是，对消费者来说，不知产品如何使用，或者难以判断如何使用，于消费者于企业都


      arrowFunction = js_ast.ArrowFun(const [], transformedFunction.body);
    }
    final call = js_ast.Call(arrowFunction, const []);
    return isAsyncIife ? js_ast.Await(call) : call;
  }

  @override
  js_ast.Expression visitInstantiation(Instantiation node) {
    return _runtimeCall('gbind(#, #)', [
      _visitExpression(node.expression),
      node.typeArguments.map(_emitType).toList(),
    ]);
  }

  @override
  js_ast.Expression visitLoadLibrary(LoadLibrary node) =>
      _runtimeCall('loadLibrary(#, #, #)', [
        js.string(node.import.enclosingLibrary.importUri.toString()),
        js.string(node.import.name!),
        js.string(
          _libraryToModule(node.import.targetLibrary, throwIfNotFound: false),
        ),
      ]);

  // TODO(jmesserly): DDC loads all libraries eagerly.
  // See
  // https://github.com/dart-lang/sdk/issues/27776
  // https://github.com/dart-lang/sdk/issues/27777
  @override
  js_ast.Expression visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) =>
      _runtimeCall('checkDeferredIsLoaded(#, #)', [
        js.string(node.import.enclosingLibrary.importUri.toString()),
        js.string(node.import.name!),
      ]);

  bool _reifyFunctionType(FunctionNode f) {
    var parent = f.parent;
    if (parent is FunctionDeclaration &&
        (isLateLoweredLocalGetter(parent.variable) ||
            isLateLoweredLocalSetter(parent.variable))) {
      // Late local variables are lowered to local get and set functions.
      // These functions should never need to be tagged with their types.
      return false;
    }
    if (!_currentLibrary!.importUri.isScheme('dart')) return true;

    // SDK libraries can skip reification if they request it.
    bool reifyFunctionTypes(Expression a) =>
        isBuiltinAnnotation(a, '_js_helper', 'ReifyFunctionTypes');
    while (parent != null) {
      var a = findAnnotation(parent, reifyFunctionTypes);
      if (a != null) {
        var value = _constants.getFieldValueFromAnnotation(a, 'value');
        if (value is bool) return value;
      }
      parent = parent.parent;
    }
    return true;
  }

  bool _reifyTearoff(Member member) {
    return member is Procedure &&
        !member.isAccessor &&
        !member.isFactory &&
        !(_isInForeignJS && _isBuildingSdk) &&
        !usesJSInterop(member) &&
        _reifyFunctionType(member.function);
  }

  /// Returns the name value of the `JSExportName` annotation (when compiling
  /// the SDK), or `null` if there's none. This is used to control the name
  /// under which functions are compiled and exported.
  String? _jsExportName(NamedNode n) {
    var library = getLibrary(n);
    if (!library.importUri.isScheme('dart')) return null;

    return _annotationName(n, isJSExportNameAnnotation);
  }

  /// If [node] has annotation matching [test] and the first argument is a
  /// string, this returns the string value.
  ///
  /// Calls [findAnnotation] followed by [getNameFromAnnotation].
  String? _annotationName(NamedNode node, bool Function(Expression) test) {
    var annotation = findAnnotation(node, test);
    return annotation != null
        ? _constants.getFieldValueFromAnnotation(annotation, 'name') as String?
        : null;
  }

  @override
  js_ast.Expression visitConstant(Constant node) {
    if (node is StaticTearOffConstant) {
      // JS() or external JS consts should not be lazily loaded.
      var isSdk = node.target.enclo


 defined(TARGET_ARCH_IA32)
    x86_insn_encode_begin();
    __ Emit8(0xE9);
    emit_rel32_label(code_buffer, x86_insn_encode_start, curr_relo_ip, orig_dst_ip);
#else
    // jmp *(rip)
    codegen_x64_jmp_absolute_addr(code_buffer, orig_dst_ip);
#endif
  } else if (insn.primary_opcode == 0xE8 || insn.primary_opcode == 0xE9) { // call or jmp rel32
    DEBUG_LOG("[x86 relo] %p:jmp or call rel32", buffer_cursor);

    int32_t offset = insn.immediate;
    addr_t orig_dst_ip = curr_orig_ip + offset;

    assert(insn.immediate_offset == 1);

#if defined(TARGET_ARCH_IA32)
    x86_insn_encode_begin();

    __ EmitBuffer(buffer_cursor, insn.immediate_offset);
    emit_rel32_label(code_buffer, x86_insn_encode_start, curr_relo_ip, orig_dst_ip);
#else
    __ Emit8(0xFF);
    if (insn.primary_opcode == 0xE8) {
      // call *(rip + 2)
      __ Emit8(0x15); // ModR/M: 00 010 101
      __ Emit32(2);

      // jmp 8
      __ Emit8(0xEB);
      __ Emit8(0x08);

      // dst
      __ Emit64(orig_dst_ip);
    } else {
      // jmp *(rip)
      __ Emit8(0x25); // ModR/M: 00 100 101
      __ Emit32(0);

      // dst
      __ Emit64(orig_dst_ip);
    }
#endif
  } else if (insn.primary_opcode >= 0xE0 && insn.primary_opcode <= 0xE2) { // LOOPNZ/LOOPZ/LOOP/JECXZ
    // LOOP/LOOPcc
    UNIMPLEMENTED();
  } else if (insn.primary_opcode == 0xE3) {
    // JCXZ JCEXZ JCRXZ
    UNIMPLEMENTED();
  } else {
    __ EmitBuffer(buffer_cursor, insn.length);
  }

  // insn -> relocated insn
  {
    int relo_offset = code_buffer->GetBufferSize();
    int relo_len = relo_offset - last_relo_offset;
    DEBUG_LOG("insn -> relocated insn: %d -> %d", insn.length, relo_len);
  }
  return relocated_insn_len;
}

void GenRelocateCodeX86Shared(void *buffer, CodeMemBlock *origin, CodeMemBlock *relocated, bool branch) {
  int expected_relocated_mem_size = 32;
x86_try_again:
  if (!relocated->addr) {
    auto relocated_mem = MemoryAllocator::SharedAllocator()->allocateExecMemory(expected_relocated_mem_size);
    if (relocated_mem == nullptr) {
      return;
    }
    relocated->reset((addr_t)relocated_mem, expected_relocated_mem_size);
  }

  int ret = GenRelocateCodeFixed(buffer, origin, relocated, branch);
  if (ret != 0) {
    const int step_size = 16;
    expected_relocated_mem_size += step_size;
    relocated->reset(0, 0);

    goto x86_try_again;
  }
}

#endif
#include "dobby_import_replace.h"

#include <mach-o/dyld.h>
#include <mach-o/loader.h>
#include <mach-o/nlist.h>
#include <mach-o/dyld_images.h>

#include <stdint.h>
#include <stdio.h>
#include <string.h>

#include <mach/vm_map.h>
#include <mach/mach.h>
#include <sys/mman.h>

#include <vector>

#in