0
  2   ˆl—ß=¿J	µ2ÛR‚ œP,ÜdiLZ7ÿÅƒî5_�uÐb&=LyZof¯ÁÃ ¬    ‹     ½W{sÚÆÿÛúgèL¹’Æv‚Û´ÁFn45�J8¥g!­`Çb—êa ·÷»ßsvyœÜæÎdŠ=H»ìyŸó;g_>T 7lü¾‘‹uÊ§³­V:Á� Ëò0HbÕˆÖï)ÏævÄæRØ¡´‹Çš¢DT¢?«×ß˜pÇE±‚[Yˆ(È¹&,SžçLÀd]Î–À/,EŽ�Š	}~˜ç�ö<‹`Ê²wÓyÀ”3ÿ‘¨Cþ 3²îxÈDÆ,7b"ç1gé•g!©¥h­ÕIXœï(=³”‰�eJ‘IÎ¢«�`­mÂ'!d²HC†‡"¶ÿ™-¹`/3ú¾;‚A*§i0Ÿ³÷~.xÄÆPí¿ôO’5¼€v–É�9ËLrg£¶ãÔ|syíw ¥èN¿®ŒÈ”H¹ßª¿¶ÎÎÉS„Û€ç3¨Æôxfv!B›EEí�Ý~fÕßX�:ü u)¼Ò¹pR]ª{F;ï¸ˆe:Ç¨<"+nÉý8)Ò)ö9Ï¦ÕhX(¾Ÿ#s«~›h½‡ï!e%¡¸&9CÕ›V³íÑ]@àÒ®Ÿ#…ÿzí®cDHg}Çú‘˜{V¥×¸ôžÀƒFœHÔ]L­…ä"/)£c(Õ””;÷Úk{¿Ý }‡�MƒtmØžUZÍ¡bBù%s¨©óþï½þÀw}Ã±a_Ãw\„I1ÌIä`Ï0üÁ…J$‹IÂö‚«›�
¬ˆínµ†Ú÷šB©\2ªª76ÛÅþ|"ÅŽÅ$Õòö†öpKs@=O_A’É„å²µ�b=ÏàÕ©æþñcÄ)1?£OŸ¶Ô„¿·äˆV«®Âøw6Q–WñÿZëb®#áù`�·,È‹”Á�e9tƒ0•Xé9"8d€™SU×ÕŒaA_{k’1Vg>žIÕ×µ¢�çl¢ì•ÒªJ¿`RPùŽ]¿Ój�ýþ½wãÀ_ma|³Ýúñ-UJ£qv§èC§Fý�Ó+�¹¨×·˜ðìç/7ÆÎhèô:N§Ì#ìcŠ²�ugv£u…†qÇ¹mßß7´G$úðoKçŽÊæøÜízïë²?btˆy¸•|ýÓQÖílQ)|°:4êS¡¨ãø7ž;ºýž1œ±Œ[d£Þ5_XÔù¬„ cˆ86hDEÃvaeLë\+Æ&x3^ÀS�xf<Äîê!<Xø"ðå>×ø4�å»$ñÏ”E¤¸UVpú ë
˜FJ�;D.Õ!Á‚”*™M±Ñn¬ö!ÒW‹–ñE“¸º}aîd‡3™á´€&Ø¶Šœrì‚r¡A³�…Z&É‹›=B.©‰^�9¶ó2ˆ'¨6kµÏrFìÜ�Ðƒ�‹@‹g,Ñœ³`NÞGž¶
–çï½|hßÝ;F_@V„8c`ßÏ�"·‰ñøR3¿è��C�"	ux³@Ç*ãSAN¦h­@çÆ:%dJÏ5¹6€^Ð3õƒ˜h¦,:$ ƒ#sÁóµià”·ã d¾ábè%Òp–C°•!úÍ§ÓÿS€âó'K¥©€ðÖu°ÁYÎ‚ÈÜÔÎ”?1Rø@eðMÜ³Unu¤qv1')9ÑáÉZ�ƒ¯£K‡gÁÛw‘Jì7sûÿµ“Áñ¼¾çþ&Íhrkbl0õ¢Ýì…Ù…ÿ3¹¤�°O§s1ëIÉóš�B«$§,¢ê€yB)�VÂ.•±ç%‰\ÒÅK	¹)ˆgÃ�Ñ)Yu›”ƒÃp«™~“|Pö)y)…$Og,Gõi\r:ý®Q�9î1¸¾ÿÙÇÚj?LU¼I¥<[…l¡g5ïG²[gìö°†ÜŽcäÖ +Žœê>¯øH*mPö^r-%™š1ûóVnM¡œÃ´ø8�”²“bŠ8%ŸØ§­Ñ«¯3ÚSVÃ7±“§=zîõýÐñ�[©3`µH±I]ÿ”'H„"µÉõk‹nAž§CÁÔ\ƒÌƒìd3ô‹o`öLäê{#™à…g‚ÿFø‡Cu!;ioœ|Pà?ü÷×6LóÙìd~Õô`ÿs2œ¥XøXƒ1Ë×'Ý¡åãªŒ�q¶&#;[@COëÃv¯Óö:¾®pç.ë-ùcpó×çZ<ßUŠÜ4&¨yÅnXt•ÝóÜ¶‡-áÖŠIO
¦ƒúÞõ‡}¼†|s5[­5ÏÕ<·›8lî^ÝaZ\žo÷LëMl\3¬«ÒÈs¡u–ç‹ìêôt¹\Úú¶¼Ä.lËtzŠµô'Þ�ƒÓ‘mŒ+;œòŸxôöòõë–¡:3æŸÁ0ÿuŽ…áŒŒýUJ¢Z©ÔL¨Ó¬ï8tLßí®yeTªé›@¸³L%<
PÕqÞ¶q4½]PûËxBCAy•ÛÌ6±âÈjÏ›×7õÉ›æY–A¶Åµ2¦jdc‡­(ŸáåJ÷#êâs>Û¯7}jÔîîh†›ˆ@e‚³–�SEÓ®×*Û3¼(74¥ï8Ð¾óû:�¸š¢t=Ç8bíWºËÒÚø/£$d       �_’I|¥‰ÓMjqØ‚¦ð¬÷ÂÄ      File not found.
     ˆÈÇƒhBwÆÂÄ ƒ    /* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * AEAD: Authenticated Encryption with Associated Data
 * 
 * Copyright (c) 2007-2015 Herbert Xu <herbert@gondor.apana.org.au>
 */

#ifndef _CRYPTO_INTERNAL_AEAD_H
#define _CRYPTO_INTERNAL_AEAD_H

#include <crypto/aead.h>
#include <crypto/algapi.h>
#include <linux/stddef.h>
#include <linux/types.h>

struct rtattr;

struct aead_instance {
	void (*free)(struct aead_instance *inst);
	union {
		struct {
			char head[offsetof(struct aead_alg, base)];
			struct crypto_instance base;
		} s;
		struct aead_alg alg;
	};
};

struct crypto_aead_spawn {
	struct crypto_spawn base;
};

struct aead_queue {
	struct crypto_queue base;
};

static inline void *crypto_aead_ctx(struct crypto_aead *tfm)
{
	return crypto_tfm_ctx(&tfm->base);
}

static inline struct crypto_instance *aead_crypto_instance(
	struct aead_instance *inst)
{
	return container_of(&inst->alg.base, struct crypto_instance, alg);
}

static inline struct aead_instance *aead_instance(struct crypto_instance *inst)
{
	return container_of(&inst->alg, struct aead_instance, alg.base);
}

static inline struct aead_instance *aead_alg_instance(struct crypto_aead *aead)
{
	return aead_instance(crypto_tfm_alg_instance(&aead->base));
}

static inline void *aead_instance_ctx(struct aead_instance *inst)
{
	return crypto_instance_ctx(aead_crypto_instance(inst));
}

static inline void *aead_request_ctx(struct aead_request *req)
{
	return req->__ctx;
}

static inline void aead_request_complete(struct aead_request *req, int err)
{
	req->base.complete(&req->base, err);
}

static inline u32 aead_request_flags(struct aead_request *req)
{
	return req->base.flags;
}

static inline struct aead_request *aead_request_cast(
	struct crypto_async_request *req)
{
	return container_of(req, struct aead_request, base);
}

int crypto_grab_aead(struct crypto_aead_spawn *spawn,
		     struct crypto_instance *inst,
		     const char *name, u32 type, u32 mask);

static inline void c