- 一切事情都无意义。法无自性,都是空性的。它本身是中性的。~心想生
觉当下
一切事情都无意义。法无自性,都是空性的。它本身是中性的。如果现在有一个人冲你发火,有一个人对你大声咆哮,有一个人对你大声怒骂,冷落你,不关心你其实啊,这个本身的所谓的咆哮,怒骂,发火,它不是这个所谓的人,这个咆哮发火的人,本身是咆哮发火的或者怒骂的状态它是什么?它是你的大脑这样解码的也就是讲,同一个事情你把它解码成发火了那什么让你解码的?业力或者说种子,阿赖耶识里的种子你的念,你的业力,它不受你的
- Maxwell监听mysql的binlog日志变化写入kafka消费者
澄绪猿
mysqlkafka数据库
一.环境:maxwell:v1.29.2(从1.30开始maxwell停止了对java8的使用,改为为11)maxwell1.29.2这个版本对mysql8.0以后的缺少utf8mb3字符的解码问题,需要对原码中加上一个部分内容:具体也给大家做了总结:关于v1.29.2版本的Maxwell存在于mysql8.0后版本部分源码字符集处理确实问题-CSDN博客二.程序这里还是那一个kafka模拟器来实
- 添加视频AVPacket到队列中
张俊峰0613
视频解码流程创建C++类-JfVideo,保存Video相关参数:JfVideo.hclassJfVideo{public:intstreamIndex=-1;AVCodecContext*avCodecContext=NULL;AVCodecParameters*codecpar=NULL;JfQueue*queue=NULL;JfPlayStatus*playStatus=NULL;JfCal
- 【算法 & 动态规划 & 斐波那契数列模型】解码方法
杰深入学习计算机
算法动态规划算法动态规划
解码方法题目链接解题思路:动态规划状态表示:dp[i]表示前i个字符,可以解码方法的总数状态转移方程以i位置为结尾的字符,可以有两种情况进行解码单独解码如果该字符不为0,就可以解码成功,就相当于在区间[0,i-1]上,在添上一个字符,所以此时的dp[i]=dp[i-1]如果该字符为0,就说明单独解码失败与前一个字符一起解码如果两个字符的整数值在[10,26]之间,就表示解码成功,那么此时[0,i]
- STM32 LL库 定时器捕获NEC红外解码
xiaoqi976633690
stm32嵌入式硬件单片机
/*USERCODEBEGINHeader*//*********************************************************************************@filestm32f1xx_it.c*@briefInterruptServiceRoutines.********************************************
- 构建jdk1.8+ffmpeg镜像
wcy10086
ffmpegdockerjdk
FROMharbor.**.cn/library/jdk1.8:v2.0MAINTAINERwcyRUNyuminstall-yepel-releaseRUNrpm--importhttp://li.nux.ro/download/nux/RPM-GPG-KEY-nux.roRUNrpm-Uvhhttp://li.nux.ro/download/nux/dextop/el7/x86_64/nux-
- FFmpeg-- c++实现:音频流aac和视频流h264封装
八月的雨季997
FFmpegffmpegc++音视频
文章目录流程api核心代码muxer.hmuxer.cppaac和h264封装为视频流,封装为c++的Muxter类流程分配视频文件上下文intInit(constchar*url);创建流,赋值给视频的音频流和视频流intAddStream(AVCodecContext*codec_ctx);写视频流的headintSendHeader();写视频流的packet,需要转换packet的pts和
- android pdf框架-8,图片缓存
archko
pdfpdfandroid
解码会产生很多图片,滑过后不要显示,如果直接回收,会浪费不少资源.在没有缓存的情况下,会看到gc还是比较频繁的.有了缓存后,明显gc少了.目录常用的缓存自定义缓存显示相关的内存缓存解码缓存池内存缓存实现:解码缓存池实现:常用的缓存lrucache,这是最常用的,也是androidsdk里面有的.就是按访问时间顺序,内部使用linkedhashmap,会记录访问时间.androidx.core.ut
- 异常GPT:使用LVLMs检测工业异常
DUT_LYH
gpt人工智能算法
AnomalyGPT:利用LVLMs进行工业异常检测摘要本文介绍了一种名为AnomalyGPT的新型工业异常检测方法,该方法基于大型视觉语言模型(LVLMs)。AnomalyGPT能够检测并定位图像中的异常,无需手动设置阈值。此外,AnomalyGPT还可以提供与图像相关的详细信息,以交互方式与用户进行交流。本文详细阐述了AnomalyGPT的模型架构、解码器、提示学习器以及异常模拟方法,并在Vi
- 音视频实战---音视频解码
weixin_45673259
音视频音视频
该方法只能解码裸流。1、使用avcodec_find_decoder查找解码器根据使用解码器类型,决定是解码音频还是解码视频。2、使用av_parser_init获取裸流解析器和方法3、使用avcodec_alloc_context3分配编解码器上下文4、使用avcodec_open2将解码器和解码器上下文进行关联5、使用fopen打开输入、输出文件6、使用fread读取文件7、使用av_fram
- qt+ffmpeg 实现音视频播放(一)
码农客栈
音视频Qtffmpegqtffmpeg音视频
一、ffmpeg下载官网:点击跳转二、模块介绍1.libavcodec:音视频编解码库,提供了多种编解码器,可以支持多种音视频格式的编解码操作。2.libavformat:音视频封装和解封装库,提供了多种封装格式的支持,可以读取和写入多种音视频文件格式。3.libavfilter:音视频过滤器库,提供了多种音视频过滤器,可以对音视频流进行各种处理,如添加水印、调整亮度、对比度等。4.libavde
- FFmpeg将视频包AVPacket通过视频流方式写入本地文件
林鸿群
ffmpeg音视频
1.写视频头voidwriteVideoHeader(constchar*videoFileName){intr=avformat_alloc_output_context2(&pFormatCtx,nullptr,nullptr,videoFileName);if(rstreams[0]->codecpar->width=1280;pFormatCtx->streams[0]->codecpar
- Spring Boot 多媒体(音频/视频)文件处理FFmpegFrameGrabber 方法(例子:获取视频总时长)
编程社区管理员
springboot音视频java
1.pom.xml坐标org.bytedecojavacv-platform1.5.62.FFmpegFrameGrabber类提供了多种方法来处理多媒体文件,以下是一些常用的方法start():开始抓取帧。在调用此方法之前,可以设置格式和选项,之后可以调用grab()方法来获取帧。stop():停止抓取帧。通常在完成帧的抓取后调用此方法来释放资源。getLengthInTime():获取视频的长
- 分享一波纪录片单子,准备慢慢看
戚禾
监视资本主义:智能陷阱(经济)资本主义,一个爱情故事美国商业大亨传奇隐姓亿万富翁成为沃伦·巴菲特金钱与我超级顾客巨富与我们无节制消费的元凶金钱通解为什么贫穷资本的故事经济机器是如何运行的十分钟速成课:经济学走进比尔·解码比尔盖茨习惯的奴隶身份的焦虑读书的力量学习的背叛睡眠的科学学习的人瘦身十律一千零一夜但是还有书籍书房里的世界观一本好书书迷盯书机一本书一座城我的时代和我·谷爱凌人生第一次遇见最极致
- 基于Node.js 和 FFmpeg构建自动化脚本用来转码视频
接着奏乐接着舞。
工作经验总结node.jsffmpeg自动化
这个脚本将监控一个特定的目录,自动转码新添加的视频文件,并将转码后的视频保存到指定目录。准备环境安装Node.js:访问Node.js官网,下载并安装适合你操作系统的Node.js版本。安装FFmpeg(不清楚的可以看我的上篇博客里有详细的安装步骤):对于Windows用户,可以从FFmpeg官方网站下载预编译的二进制文件,解压,并将bin目录添加到系统的环境变量中。macOS用户可以使用Home
- FFmpeg封装函数avformat_open_input()
肖爱Kun
RTSP网络视屏协议c++
FFmpeg在调用avformat_open_input()之后,可能码流信息不够完整,可以使用avformat_find_stream_info()获取更多的码流信息。比如获取视频帧率、视频宽高,重新计算最大分析时长,打开解码器解码获取codec数据。函数原型如下:intavformat_find_stream_info(AVFormatContext*ic,AVDictionary**opti
- 客户端向服务端传参5个方式
xh的世界
chrome前端http后端安全
/***get:parmas方式例子:/:id*get:query方式例子:/home?name=xxx&age=xxx*get:json方式例子:{"name":"xxx","age":"xxx"}*post:x-www-form-urlencoded方式例子:name=xxx&age=xxx*post:from-data方式*/告知编码方式后,服务器再进行解码HTTP数据编码方式HTTP数据编
- android pdf框架-7,白边切割
archko
pdfpdfandroid
图片的切边操作有时是比较有用的.看着舒服多了,页面间的空白如果比较大的图片在显示上,需要缩放,缩放后通常滚动会有偏移.这里先说算法思路.列表与切边在解析列表中每一页,先解析白边,得到后,再去解码图片,最终显示.对于分块加载的处理就比较麻烦了.对于recyclerview中使用单页面一个图片还是相对容易的多的.由于切边算昂贵的操作,可以缓存在内存中,甚至可以存储在文件中,下次读取pdf后,可以直接把
- html前端的几种加密/解密方式
可爱的秋秋啊
js前端html
HTML前端的加密解密方式有以下几种:一、base64加密Base64编码:Base64是一种将二进制数据转换为可打印字符的编码方式。在前端,可以使用JavaScript的btoa()函数进行Base64编码,使用atob()函数进行解码。varstr="hello";varstr64=window.btoa("hello");console.log("定义的字符串为:"+str);console
- 使用asn1tools进行asn1编解码
red_leaf_412
python学习
最近在做3GPP的编解码,发现有两个第三方库比较好用。一个是ASN1C(c语言编译环境),一个是python第三方库asn1tools。这里介绍下asn1tools的使用方法:1第一步:生成asn文件将需要编码的数据结构保存在asn后缀名的文件中3GPP中的结构如下:--ASN1STARTBCCH-BCH-Message-NB::=SEQUENCE{messageBCCH-BCH-MessageT
- ubuntu nginx
linux实践操作记录
ubuntunginxlinux
FFmpeg+nginx-http-flv-module+flv.js实现视频流播放-一只小松徐吖(xaoxu.cn)cat/etc/nginx/sites-enabled/default###YoushouldlookatthefollowingURL'sinordertograspasolidunderstanding#ofNginxconfigurationfilesinordertoful
- FFmpeg --播放器框架及api使用
八月的雨季997
FFmpegffmpeg音视频
播放器框架1媒体文件:AVFormatContextavformat_alloc_contextavformat_open_input2解复用器:AVStreamav_read_frame—3音频(视频)包队列:AVPacket4音频(视频)解码:AVCodecContextavcodec_send_packetavcodec_receive_frame采样(音频)/图像帧队列:AVFrame音频
- FFmepg-- H264格式
八月的雨季 最後的冰吻
FFmpegffmpeg
文章目录H264IPB帧NALU结构H264封装模式1annexb模式2MP4模式写H264文件H264视频编解码协议,为MPEG-4AVC或AVCIPB帧I帧:可独立解码P帧:前向预测编码帧,参考I帧或者P帧B帧:双向预测帧,参考I帧,P帧压缩率:B>P>INALU结构H.264原始码流由一个接一个的NALU组成⼀个原始的H.264NALU单元通常由[StartCode][NALUHeader]
- Transformer、BERT和GPT 自然语言处理领域的重要模型
Jiang_Immortals
人工智能自然语言处理transformerbert
Transformer、BERT和GPT都是自然语言处理领域的重要模型,它们之间有一些区别和联系。区别:架构:Transformer是一种基于自注意力机制的神经网络架构,用于编码输入序列和解码输出序列。BERT(BidirectionalEncoderRepresentationsfromTransformers)是基于Transformer架构的双向编码模型,用于学习上下文无关的词向量表示。GP
- 真快!几分钟就把视频语音识别为文本了,不到10行代码
诗者才子酒中仙
音视频语音识别人工智能
虽然已经很简单了,但是对于程序员来说还是不够简洁,毕竟程序员都很“懒”,Whisper虽说安装和调用已经很简单了,但还是需要独立安装PyTorch、ffmpeg甚至Rust。将音视频文件中的音频转为文字内容,这个需求放到两年前还不大好实现,但是放到今天,几分钟就解决了。听说有的公司为了抓取训练数据,已经把抖音、快手这些短视频平台上的视频扒了个遍,然后将其中的音频提取成文本,用作大数据模型的训练语料
- 蓝桥杯 2020 第一轮省赛 A 组 F 题(B 组 G 题)解码
下雪了 ~
蓝桥杯算法c++开发语言
蓝桥杯2020第一轮省赛A组F题(B组G题)解码题目描述小明有一串很长的英文字母,可能包含大写和小写。在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母+出现次数的形式。例如,连续的555个a,即aaaaa,小明可以简写成a5(也可能简写成a4a、aa3a等)。对于这个例子:HHHellllloo,小明可以简写成H3el5o2。为了方便表达,小明
- 《解密青春期》
特训学校李老师
读完本文约需36分钟各位好,今天我们向大家推荐的这本书,叫作《解码青春期》。这是应很多我们的书友的要求讲的一本书。因为青春期是我们人生发展过程当中,应该是最迷茫,也最危险,也最关键的一个阶段。这本书的作者乔希•西普,本身是一个孤儿。所以乔希•西普说,我将来会是一个一无所成的人,甚至会给这个世界带来很多的危险。而且他从小生活在孤儿院,在他很小的时候,有一次被隔壁房间的大男孩,侵入到他们的房间里边,对
- 怎么快速编辑视频
拓源
视频音视频ffmpeg
背景:怎么简单快速编辑视频利用FFmpeg功能,简单快速编辑视频,如按9:16提前剪切视频、替换背景音乐。下载FFmpeg:https://ffmpeg.org/download.html将FFmpeg的路径添加到环境变量中:Windows:在系统的环境变量中添加FFmpeg的路径。Linux/MacOS:在shell配置文件(例如~/.bashrc或~/.bash_profile)中添加FFmp
- QT MinGW64编译vlc源码
小条小杂鱼
QT学习实战qt开发语言
编译环境搭建参考文章《QTMingw32/64编译ffmpeg源码生成32/64bit库以及测试》,搭建msys64环境;运行msys.exe,运行:pacman-Sgitsubversioncvsautomakeautoconflibtoolm4makegettextpkg-configmingw-w64-i686-luafindutilsmingw-w64-i686-headersyasmpa
- 【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-NR编解码LDPC和Polar概述(一)
瑶光守护者
5GNR5G网络算法学习
目录NRLDPC和Polar编码技术概述LDPC(低密度奇偶校验码)LDPC工作原理LDPC应用场景:LDPC与其他编码技术相比的优势:Polar极化码Polar工作原理Polar应用场景:Polar与其他编码技术相比的优势:NRLDPC和Polar编码技术概述在5GNR(新无线)标准中,LDPC(低密度奇偶校验码)和Polar(极化码)编码技术是两种关键的信道编码方案,它们分别在不同的传输场景中
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include