/third_party/node/deps/openssl/openssl/crypto/rsa/ |
H A D | rsa_gen.c | 83 BN_CTX *ctx = NULL; in rsa_multiprime_keygen() local 106 ctx = BN_CTX_new_ex(rsa->libctx); in rsa_multiprime_keygen() 107 if (ctx == NULL) in rsa_multiprime_keygen() 109 BN_CTX_start(ctx); in rsa_multiprime_keygen() 110 r0 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 111 r1 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 112 r2 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 192 cb, ctx)) in rsa_multiprime_keygen() 221 if (BN_mod_inverse(r1, r2, rsa->e, ctx) != NULL) { in rsa_multiprime_keygen() 242 if (!BN_mul(r1, rsa->p, rsa->q, ctx)) in rsa_multiprime_keygen() [all...] |
/third_party/rust/crates/bindgen/bindgen/ir/ |
H A D | var.rs | 118 fn default_macro_constant_type(ctx: &BindgenContext, value: i64) -> IntKind { in default_macro_constant_type() 120 ctx.options().default_macro_constant_type == in default_macro_constant_type() 125 } else if !ctx.options().fit_macro_constants || in default_macro_constant_type() 139 } else if !ctx.options().fit_macro_constants || in default_macro_constant_type() 176 ctx: &mut BindgenContext, in parse() 183 for callbacks in &ctx.options().parse_callbacks { in parse() 198 let value = parse_macro(ctx, &cursor); in parse() 207 let previously_defined = ctx.parsed_macro(&id); in parse() 212 ctx.note_parsed_macro(id.clone(), value.clone()); in parse() 248 ctx, in parse() [all...] |
H A D | function.rs | 301 ctx: &BindgenContext, in cursor_mangling() 304 if !ctx.options().enable_mangling { in cursor_mangling() 365 ctx: &mut BindgenContext, in args_from_ty_and_cursor() 395 (name, Item::from_ty_or_ref(ty, cursor, None, ctx)) in args_from_ty_and_cursor() 405 ctx: &mut BindgenContext, in from_ty() 448 args_from_ty_and_cursor(ty, &cursor, ctx) in from_ty() 457 Item::from_ty_or_ref(c.cur_type(), c, None, ctx); in from_ty() 471 args_from_ty_and_cursor(ty, &cursor, ctx) in from_ty() 479 if ctx.options().enable_function_attribute_detection { in from_ty() 511 let class = Item::parse(parent, None, ctx) in from_ty() [all...] |
/third_party/openssl/crypto/rsa/ |
H A D | rsa_gen.c | 83 BN_CTX *ctx = NULL; in rsa_multiprime_keygen() local 106 ctx = BN_CTX_new_ex(rsa->libctx); in rsa_multiprime_keygen() 107 if (ctx == NULL) in rsa_multiprime_keygen() 109 BN_CTX_start(ctx); in rsa_multiprime_keygen() 110 r0 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 111 r1 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 112 r2 = BN_CTX_get(ctx); in rsa_multiprime_keygen() 192 cb, ctx)) in rsa_multiprime_keygen() 221 if (BN_mod_inverse(r1, r2, rsa->e, ctx) != NULL) { in rsa_multiprime_keygen() 242 if (!BN_mul(r1, rsa->p, rsa->q, ctx)) in rsa_multiprime_keygen() [all...] |
/kernel/linux/linux-5.10/drivers/dma/idxd/ |
H A D | cdev.c | 70 struct idxd_user_context *ctx; in idxd_cdev_open() local 82 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); in idxd_cdev_open() 83 if (!ctx) in idxd_cdev_open() 93 ctx->wq = wq; in idxd_cdev_open() 94 filp->private_data = ctx; in idxd_cdev_open() 101 kfree(ctx); in idxd_cdev_open() 107 struct idxd_user_context *ctx = filep->private_data; in idxd_cdev_release() local 108 struct idxd_wq *wq = ctx->wq; in idxd_cdev_release() 118 kfree(ctx); in idxd_cdev_release() 143 struct idxd_user_context *ctx = filp->private_data; idxd_cdev_mmap() local 169 struct idxd_user_context *ctx = filp->private_data; idxd_cdev_poll() local [all...] |
/kernel/linux/linux-5.10/net/netfilter/ |
H A D | nft_connlimit.c | 59 static int nft_connlimit_do_init(const struct nft_ctx *ctx, in nft_connlimit_do_init() argument 83 return nf_ct_netns_get(ctx->net, ctx->family); in nft_connlimit_do_init() 86 static void nft_connlimit_do_destroy(const struct nft_ctx *ctx, in nft_connlimit_do_destroy() argument 89 nf_ct_netns_put(ctx->net, ctx->family); in nft_connlimit_do_destroy() 117 static int nft_connlimit_obj_init(const struct nft_ctx *ctx, in nft_connlimit_obj_init() argument 123 return nft_connlimit_do_init(ctx, tb, priv); in nft_connlimit_obj_init() 126 static void nft_connlimit_obj_destroy(const struct nft_ctx *ctx, in nft_connlimit_obj_destroy() argument 131 nft_connlimit_do_destroy(ctx, pri in nft_connlimit_obj_destroy() 181 nft_connlimit_init(const struct nft_ctx *ctx, const struct nft_expr *expr, const struct nlattr * const tb[]) nft_connlimit_init() argument 190 nft_connlimit_destroy(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_connlimit_destroy() argument 210 nft_connlimit_destroy_clone(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_connlimit_destroy_clone() argument [all...] |
H A D | nft_dynset.c | 108 static int nft_dynset_init(const struct nft_ctx *ctx, in nft_dynset_init() argument 112 struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id); in nft_dynset_init() 114 u8 genmask = nft_genmask_next(ctx->net); in nft_dynset_init() 135 set = nft_set_lookup_global(ctx->net, ctx->table, in nft_dynset_init() 186 priv->expr = nft_set_elem_expr_alloc(ctx, set, in nft_dynset_init() 213 err = nf_tables_bind_set(ctx, set, &priv->binding); in nft_dynset_init() 225 nft_expr_destroy(ctx, priv->expr); in nft_dynset_init() 229 static void nft_dynset_deactivate(const struct nft_ctx *ctx, in nft_dynset_deactivate() argument 235 nf_tables_deactivate_set(ctx, pri in nft_dynset_deactivate() 238 nft_dynset_activate(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_dynset_activate() argument 246 nft_dynset_destroy(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_dynset_destroy() argument [all...] |
/kernel/linux/linux-5.10/drivers/staging/media/sunxi/cedrus/ |
H A D | cedrus_hw.c | 34 int cedrus_engine_enable(struct cedrus_ctx *ctx, enum cedrus_codec codec) in cedrus_engine_enable() argument 62 if (ctx->src_fmt.width == 4096) in cedrus_engine_enable() 64 if (ctx->src_fmt.width > 2048) in cedrus_engine_enable() 67 cedrus_write(ctx->dev, VE_MODE, reg); in cedrus_engine_enable() 115 struct cedrus_ctx *ctx; in cedrus_irq() local 119 ctx = v4l2_m2m_get_curr_priv(dev->m2m_dev); in cedrus_irq() 120 if (!ctx) { in cedrus_irq() 126 status = dev->dec_ops[ctx->current_codec]->irq_status(ctx); in cedrus_irq() 130 dev->dec_ops[ctx in cedrus_irq() [all...] |
/kernel/linux/linux-6.6/arch/x86/crypto/ |
H A D | aria_aesni_avx2_glue.c | 19 asmlinkage void aria_aesni_avx2_encrypt_32way(const void *ctx, u8 *dst, 22 asmlinkage void aria_aesni_avx2_decrypt_32way(const void *ctx, u8 *dst, 25 asmlinkage void aria_aesni_avx2_ctr_crypt_32way(const void *ctx, u8 *dst, 30 asmlinkage void aria_aesni_avx2_gfni_encrypt_32way(const void *ctx, u8 *dst, 33 asmlinkage void aria_aesni_avx2_gfni_decrypt_32way(const void *ctx, u8 *dst, 36 asmlinkage void aria_aesni_avx2_gfni_ctr_crypt_32way(const void *ctx, u8 *dst, 69 struct aria_ctx *ctx = crypto_skcipher_ctx(tfm); in aria_avx2_ecb_encrypt() local 71 return ecb_do_encrypt(req, ctx->enc_key[0]); in aria_avx2_ecb_encrypt() 77 struct aria_ctx *ctx = crypto_skcipher_ctx(tfm); in aria_avx2_ecb_decrypt() local 79 return ecb_do_decrypt(req, ctx in aria_avx2_ecb_decrypt() 92 struct aria_ctx *ctx = crypto_skcipher_ctx(tfm); aria_avx2_ctr_encrypt() local [all...] |
/kernel/linux/linux-6.6/net/netfilter/ |
H A D | nft_connlimit.c | 59 static int nft_connlimit_do_init(const struct nft_ctx *ctx, in nft_connlimit_do_init() argument 88 err = nf_ct_netns_get(ctx->net, ctx->family); in nft_connlimit_do_init() 99 static void nft_connlimit_do_destroy(const struct nft_ctx *ctx, in nft_connlimit_do_destroy() argument 102 nf_ct_netns_put(ctx->net, ctx->family); in nft_connlimit_do_destroy() 131 static int nft_connlimit_obj_init(const struct nft_ctx *ctx, in nft_connlimit_obj_init() argument 137 return nft_connlimit_do_init(ctx, tb, priv); in nft_connlimit_obj_init() 140 static void nft_connlimit_obj_destroy(const struct nft_ctx *ctx, in nft_connlimit_obj_destroy() argument 145 nft_connlimit_do_destroy(ctx, pri in nft_connlimit_obj_destroy() 196 nft_connlimit_init(const struct nft_ctx *ctx, const struct nft_expr *expr, const struct nlattr * const tb[]) nft_connlimit_init() argument 205 nft_connlimit_destroy(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_connlimit_destroy() argument 229 nft_connlimit_destroy_clone(const struct nft_ctx *ctx, const struct nft_expr *expr) nft_connlimit_destroy_clone() argument [all...] |
/third_party/ffmpeg/libavfilter/ |
H A D | vf_elbg.c | 38 struct ELBGContext *ctx; member 70 static av_cold int init(AVFilterContext *ctx) in init() argument 72 ELBGFilterContext *const elbg = ctx->priv; in init() 75 av_log(ctx, AV_LOG_ERROR, "pal8 output allows max 256 codebook length.\n"); in init() 86 static int query_formats(AVFilterContext *ctx) in query_formats() argument 88 ELBGFilterContext *const elbg = ctx->priv; in query_formats() 97 return ff_set_common_formats_from_list(ctx, pix_fmts); in query_formats() 103 if ((ret = ff_formats_ref(ff_make_format_list(pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0 || in query_formats() 104 (ret = ff_formats_ref(ff_make_format_list(pal8_fmt), &ctx->outputs[0]->incfg.formats)) < 0) in query_formats() 114 AVFilterContext *ctx in config_input() local 235 uninit(AVFilterContext *ctx) uninit() argument [all...] |
H A D | vf_blackdetect.c | 101 AVFilterContext *ctx = inlink->dst; in config_input() local 102 BlackDetectContext *s = ctx->priv; in config_input() 109 s->nb_threads = ff_filter_get_nb_threads(ctx); in config_input() 129 static void check_black_end(AVFilterContext *ctx) in check_black_end() argument 131 BlackDetectContext *s = ctx->priv; in check_black_end() 142 static int black_counter(AVFilterContext *ctx, void *arg, in black_counter() argument 145 BlackDetectContext *s = ctx->priv; in black_counter() 182 AVFilterContext *ctx = inlink->dst; in filter_frame() local 183 BlackDetectContext *s = ctx->priv; in filter_frame() 186 ff_filter_execute(ctx, black_counte in filter_frame() 222 uninit(AVFilterContext *ctx) uninit() argument [all...] |
H A D | af_rubberband.c | 84 static av_cold void uninit(AVFilterContext *ctx) in uninit() argument 86 RubberBandContext *s = ctx->priv; in uninit() 94 AVFilterContext *ctx = inlink->dst; in filter_frame() local 95 RubberBandContext *s = ctx->priv; in filter_frame() 96 AVFilterLink *outlink = ctx->outputs[0]; in filter_frame() 124 ff_filter_set_ready(ctx, 100); in filter_frame() 130 AVFilterContext *ctx = inlink->dst; in config_input() local 131 RubberBandContext *s = ctx->priv; in config_input() 148 static int activate(AVFilterContext *ctx) in activate() argument 150 AVFilterLink *inlink = ctx in activate() 173 process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) process_command() argument [all...] |
H A D | vf_amplify.c | 81 static av_cold int init(AVFilterContext *ctx) in init() argument 83 AmplifyContext *s = ctx->priv; in init() 145 static int amplify_frame(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) in amplify_frame() argument 147 AmplifyContext *s = ctx->priv; in amplify_frame() 172 AVFilterContext *ctx = outlink->src; in config_output() local 173 AmplifyContext *s = ctx->priv; in config_output() 174 AVFilterLink *inlink = ctx->inputs[0]; in config_output() 192 static av_cold void uninit(AVFilterContext *ctx) in uninit() argument 194 AmplifyContext *s = ctx->priv; in uninit() 206 AVFilterContext *ctx in filter_frame() local [all...] |
H A D | vf_grayworld.c | 128 * @param ctx Filter context 133 static int convert_frame(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) in convert_frame() argument 135 GrayWorldContext *s = ctx->priv; in convert_frame() 139 AVFilterLink *outlink = ctx->outputs[0]; in convert_frame() 196 * @param ctx Filter context 201 static int correct_frame(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) in correct_frame() argument 203 GrayWorldContext *s = ctx->priv; in correct_frame() 206 AVFilterLink *outlink = ctx->outputs[0]; in correct_frame() 251 static av_cold void uninit(AVFilterContext *ctx) in uninit() argument 253 GrayWorldContext *s = ctx in uninit() 262 AVFilterContext *ctx = inlink->dst; filter_frame() local [all...] |
H A D | vf_swaprect.c | 58 static int query_formats(AVFilterContext *ctx) in query_formats() argument 64 return ff_set_common_formats(ctx, ff_formats_pixdesc_filter(0, reject_flags)); in query_formats() 72 AVFilterContext *ctx = inlink->dst; in filter_frame() local 73 AVFilterLink *outlink = ctx->outputs[0]; in filter_frame() 74 SwapRectContext *s = ctx->priv; in filter_frame() 98 0, 0, ctx); in filter_frame() 105 0, 0, ctx); in filter_frame() 112 0, 0, ctx); in filter_frame() 119 0, 0, ctx); in filter_frame() 126 0, 0, ctx); in filter_frame() 193 AVFilterContext *ctx = inlink->dst; config_input() local 212 uninit(AVFilterContext *ctx) uninit() argument [all...] |
H A D | vf_palettegen.c | 98 static int query_formats(AVFilterContext *ctx) in query_formats() argument 104 if ((ret = ff_formats_ref(ff_make_format_list(in_fmts) , &ctx->inputs[0]->outcfg.formats)) < 0) in query_formats() 106 if ((ret = ff_formats_ref(ff_make_format_list(out_fmts), &ctx->outputs[0]->incfg.formats)) < 0) in query_formats() 256 static void write_palette(AVFilterContext *ctx, AVFrame *out) in write_palette() argument 258 const PaletteGenContext *s = ctx->priv; in write_palette() 269 av_log(ctx, AV_LOG_WARNING, "Duped color: %08"PRIX32"\n", pal[x]); in write_palette() 320 static AVFrame *get_palette_frame(AVFilterContext *ctx) in get_palette_frame() argument 323 PaletteGenContext *s = ctx->priv; in get_palette_frame() 324 AVFilterLink *outlink = ctx->outputs[0]; in get_palette_frame() 332 av_log(ctx, AV_LOG_ERRO in get_palette_frame() 520 AVFilterContext *ctx = inlink->dst; filter_frame() local 558 AVFilterContext *ctx = outlink->src; request_frame() local 582 init(AVFilterContext *ctx) init() argument 592 uninit(AVFilterContext *ctx) uninit() argument [all...] |
/third_party/ffmpeg/libavformat/ |
H A D | rtpdec_jpeg.c | 214 static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg, in jpeg_parse_packet() argument 226 av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n"); in jpeg_parse_packet() 241 av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n"); in jpeg_parse_packet() 250 avpriv_report_missing_feature(ctx, "RTP/JPEG type %"PRIu8, type); in jpeg_parse_packet() 263 av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n"); in jpeg_parse_packet() 274 av_log(ctx, AV_LOG_WARNING, "Only 8-bit precision is supported.\n"); in jpeg_parse_packet() 278 av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n"); in jpeg_parse_packet() 288 av_log(ctx, AV_LOG_WARNING, in jpeg_parse_packet() 298 av_log(ctx, AV_LOG_ERROR, in jpeg_parse_packet() 303 av_log(ctx, AV_LOG_ERRO in jpeg_parse_packet() [all...] |
/third_party/mesa3d/src/gallium/targets/osmesa/ |
H A D | test-render.cpp | 69 std::unique_ptr<osmesa_context, decltype(&OSMesaDestroyContext)> ctx{ in TEST_P() 71 ASSERT_TRUE(ctx); in TEST_P() 73 auto ret = OSMesaMakeCurrent(ctx.get(), &pixels, p.type, w, h); in TEST_P() 168 std::unique_ptr<osmesa_context, decltype(&OSMesaDestroyContext)> ctx{ in TEST() 170 ASSERT_TRUE(ctx); in TEST() 174 auto ret = OSMesaMakeCurrent(ctx.get(), &pixels, GL_UNSIGNED_SHORT_5_6_5, w, h); in TEST() 182 ASSERT_EQ(true, OSMesaGetDepthBuffer(ctx.get(), &dw, &dh, &depth_cpp, (void **)&depth)); in TEST() 221 std::unique_ptr<osmesa_context, decltype(&OSMesaDestroyContext)> ctx{ in TEST() 223 ASSERT_TRUE(ctx); in TEST() 226 auto ret = OSMesaMakeCurrent(ctx in TEST() [all...] |
/third_party/node/src/ |
H A D | node_realm.cc | 53 Local<Context> ctx = context(); in CreateProperties() local 57 GetPerContextExports(ctx).ToLocalChecked(); in CreateProperties() 59 per_context_bindings->Get(ctx, env_->primordials_string()) in CreateProperties() 71 ->Get(ctx, \ in CreateProperties() 76 ctor.As<Object>()->Get(ctx, prototype_string).ToLocalChecked(); \ in CreateProperties() 97 Local<Context> ctx = context(); in Serialize() local 109 size_t index = creator->AddData(ctx, field); \ in Serialize() 121 info.context = creator->AddData(ctx, ctx); in Serialize() 126 Local<Context> ctx in DeserializeProperties() local 168 Local<Context> ctx = context(); ExecuteBootstrapper() local [all...] |
/third_party/mesa3d/src/panfrost/bifrost/ |
H A D | gen_disasm.py | 143 # Compiles a logic expression to Python expression, ctx -> { T, F } 165 return "ctx[{}]".format(keys.index(expr)) 168 return eval('lambda ctx, ordering: ' + compile_derived_inner(expr, keys)) 173 def evaluate_forward_derived(vals, ctx, ordering): 175 if expr(ctx, ordering): 180 def evaluate_forward(keys, derivf, testf, ctx, ordering): 181 if not testf(ctx, ordering): 187 evaled = evaluate_forward_derived(vals, ctx, ordering) 207 for (i, deriveds), ctx in zip(enumerate(forward), itertools.product(*mod_vals)): 219 backwards[param] = ctx [all...] |
/third_party/rust/crates/rust-openssl/openssl/src/ |
H A D | hash.rs | 235 ctx: *mut ffi::EVP_MD_CTX, 249 let ctx = unsafe { cvt_p(EVP_MD_CTX_new())? }; in new() 252 ctx, in new() 270 cvt(ffi::EVP_DigestInit_ex(self.ctx, self.md, ptr::null_mut()))?; in init() 283 self.ctx, in update() 304 self.ctx, in finish() 325 self.ctx, in finish_xof() 349 let ctx = unsafe { in clone() 350 let ctx = EVP_MD_CTX_new(); in clone() 351 assert!(!ctx in clone() [all...] |
H A D | sha.rs | 127 let mut ctx = MaybeUninit::uninit(); in new() variables 128 ffi::SHA1_Init( ctx.as_mut_ptr()); in new() 129 Sha1(ctx.assume_init()) in new() 173 let mut ctx = MaybeUninit::uninit(); in new() variables 174 ffi::SHA224_Init(ctx.as_mut_ptr()); in new() 175 Sha224(ctx.assume_init()) in new() 219 let mut ctx = MaybeUninit::uninit(); in new() variables 220 ffi::SHA256_Init(ctx.as_mut_ptr()); in new() 221 Sha256(ctx.assume_init()) in new() 265 let mut ctx in new() variables 311 let mut ctx = MaybeUninit::uninit(); new() variables [all...] |
/kernel/linux/linux-5.10/drivers/acpi/apei/ |
H A D | einj.c | 140 static void einj_exec_ctx_init(struct apei_exec_context *ctx) in einj_exec_ctx_init() argument 142 apei_exec_ctx_init(ctx, einj_ins_type, ARRAY_SIZE(einj_ins_type), in einj_exec_ctx_init() 148 struct apei_exec_context ctx; in __einj_get_available_error_type() local 151 einj_exec_ctx_init(&ctx); in __einj_get_available_error_type() 152 rc = apei_exec_run(&ctx, ACPI_EINJ_GET_ERROR_TYPE); in __einj_get_available_error_type() 155 *type = apei_exec_ctx_get_output(&ctx); in __einj_get_available_error_type() 405 struct apei_exec_context ctx; in __einj_error_inject() local 409 einj_exec_ctx_init(&ctx); in __einj_error_inject() 411 rc = apei_exec_run_optional(&ctx, ACPI_EINJ_BEGIN_OPERATION); in __einj_error_inject() 414 apei_exec_ctx_set_input(&ctx, typ in __einj_error_inject() 675 struct apei_exec_context ctx; einj_init() local 773 struct apei_exec_context ctx; einj_exit() local [all...] |
/kernel/linux/linux-6.6/drivers/acpi/apei/ |
H A D | einj.c | 141 static void einj_exec_ctx_init(struct apei_exec_context *ctx) in einj_exec_ctx_init() argument 143 apei_exec_ctx_init(ctx, einj_ins_type, ARRAY_SIZE(einj_ins_type), in einj_exec_ctx_init() 149 struct apei_exec_context ctx; in __einj_get_available_error_type() local 152 einj_exec_ctx_init(&ctx); in __einj_get_available_error_type() 153 rc = apei_exec_run(&ctx, ACPI_EINJ_GET_ERROR_TYPE); in __einj_get_available_error_type() 156 *type = apei_exec_ctx_get_output(&ctx); in __einj_get_available_error_type() 407 struct apei_exec_context ctx; in __einj_error_inject() local 411 einj_exec_ctx_init(&ctx); in __einj_error_inject() 413 rc = apei_exec_run_optional(&ctx, ACPI_EINJ_BEGIN_OPERATION); in __einj_error_inject() 416 apei_exec_ctx_set_input(&ctx, typ in __einj_error_inject() 691 struct apei_exec_context ctx; einj_init() local 787 struct apei_exec_context ctx; einj_exit() local [all...] |