From ea1c8ad7438e69127865740acfb9b86f45065d74 Mon Sep 17 00:00:00 2001 From: huzongyao Date: Tue, 14 May 2019 18:05:50 +0800 Subject: [PATCH] update magic version 5.36 --- README.md | 18 +- app/build.gradle | 34 +- .../magic/app/ExampleInstrumentedTest.java | 26 - app/src/main/AndroidManifest.xml | 4 +- .../hzy/magic/app/activity/MainActivity.java | 17 +- .../magic/app/adapter/FileItemAdapter.java | 3 +- .../magic/app/adapter/PathItemAdapter.java | 14 +- .../com/hzy/magic/app/ExampleUnitTest.java | 17 - build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- libmagic/build.gradle | 15 +- .../hzy/libmagic/ExampleInstrumentedTest.java | 26 - libmagic/src/main/assets/magic.mgc.gz | Bin 275731 -> 283796 bytes libmagic/src/main/cpp/file/apprentice.c | 294 ++++++----- libmagic/src/main/cpp/file/apptype.c | 12 +- libmagic/src/main/cpp/file/ascmagic.c | 60 ++- libmagic/src/main/cpp/file/asprintf.c | 6 +- libmagic/src/main/cpp/file/buffer.c | 10 +- libmagic/src/main/cpp/file/cdf.c | 171 +++--- libmagic/src/main/cpp/file/cdf.h | 6 +- libmagic/src/main/cpp/file/cdf_time.c | 24 +- libmagic/src/main/cpp/file/compress.c | 125 +++-- libmagic/src/main/cpp/file/config.h | 14 +- libmagic/src/main/cpp/file/der.c | 37 +- libmagic/src/main/cpp/file/dprintf.c | 6 +- libmagic/src/main/cpp/file/elfclass.h | 18 +- libmagic/src/main/cpp/file/encoding.c | 72 ++- libmagic/src/main/cpp/file/file.c | 41 +- libmagic/src/main/cpp/file/file.h | 22 +- libmagic/src/main/cpp/file/fmtcheck.c | 2 +- libmagic/src/main/cpp/file/fsmagic.c | 30 +- libmagic/src/main/cpp/file/funcs.c | 99 ++-- libmagic/src/main/cpp/file/getopt_long.c | 498 ------------------ libmagic/src/main/cpp/file/is_json.c | 455 ++++++++++++++++ libmagic/src/main/cpp/file/is_tar.c | 15 +- libmagic/src/main/cpp/file/localtime_r.c | 19 - libmagic/src/main/cpp/file/magic.c | 86 ++- libmagic/src/main/cpp/file/magic.h | 6 +- libmagic/src/main/cpp/file/mygetopt.h | 2 +- libmagic/src/main/cpp/file/print.c | 35 +- libmagic/src/main/cpp/file/readcdf.c | 53 +- libmagic/src/main/cpp/file/readelf.c | 194 ++++--- libmagic/src/main/cpp/file/readelf.h | 8 +- libmagic/src/main/cpp/file/seccomp.c | 14 +- libmagic/src/main/cpp/file/softmagic.c | 434 ++++++++------- libmagic/src/main/cpp/file/vasprintf.c | 12 +- .../com/hzy/libmagic/ExampleUnitTest.java | 17 - 47 files changed, 1609 insertions(+), 1466 deletions(-) delete mode 100644 app/src/androidTest/java/com/hzy/magic/app/ExampleInstrumentedTest.java delete mode 100644 app/src/test/java/com/hzy/magic/app/ExampleUnitTest.java delete mode 100644 libmagic/src/androidTest/java/com/hzy/libmagic/ExampleInstrumentedTest.java delete mode 100644 libmagic/src/main/cpp/file/getopt_long.c create mode 100644 libmagic/src/main/cpp/file/is_json.c delete mode 100644 libmagic/src/main/cpp/file/localtime_r.c delete mode 100644 libmagic/src/test/java/com/hzy/libmagic/ExampleUnitTest.java diff --git a/README.md b/README.md index 989628e..28f59b3 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,18 @@ AndroidMagic(使用LibMagic识别文件类型) ================== An android project to query file info with LibMagic +[![Travis](https://img.shields.io/appveyor/ci/gruntjs/grunt.svg)](https://github.com/huzongyao/AndroidMagic/releases) +[![Travis](https://img.shields.io/badge/file-v5.36-brightgreen.svg)](https://github.com/file/file) + +### Introduction +The file command is "a file type guesser", that is, a command-line tool that tells you in words + what kind of data a file contains. Unlike most GUI systems, command-line UNIX systems - with this + program leading the charge - don't rely on filename extentions to tell you the type of a file, + but look at the file's actual contents. This is, of course, more reliable, but requires a bit of I/O. + +### Screenshot +![screenshot](https://github.com/huzongyao/AndroidMagic/blob/master/misc/screen.gif?raw=true) + ### Details This project is for me to learn Java, NDK, and for fun. * learn how to build ndk and sign apk with android gradle-experimental @@ -9,8 +21,9 @@ This project is for me to learn Java, NDK, and for fun. * libmagic is "a file type guesser", that tells you in words what kind of data a file contains ### 学习记录 +* 使用libmagic,我们不用看文件的后缀,就可以识别出常用文件类型 * 移植LibMagic到安卓平台上, 使文件类型的识别不仅通过扩展名 -* 使用gradle-experimental编译NDK +* 使用cmake编译NDK * Java与本地代码之间内存拷贝GetByteArrayRegion * butterknife 以及 rxjava的使用 @@ -18,9 +31,6 @@ This project is for me to learn Java, NDK, and for fun. * Official Site: http://www.darwinsys.com/file/ * GitHub:https://github.com/file/file -### Screenshot -![screenshot](https://github.com/huzongyao/AndroidMagic/blob/master/misc/screen.gif?raw=true) - ### About Me * GitHub: [https://huzongyao.github.io/](https://huzongyao.github.io/) * ITEye博客:[http://hzy3774.iteye.com/](http://hzy3774.iteye.com/) diff --git a/app/build.gradle b/app/build.gradle index fc535ca..f248562 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,8 +1,7 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion "27.0.3" + compileSdkVersion 28 signingConfigs { demokey { @@ -15,10 +14,9 @@ android { defaultConfig { applicationId "com.hzy.magic.app" minSdkVersion 15 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 2 - versionName "1.0.1" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + versionName "1.1.1" } compileOptions { targetCompatibility JavaVersion.VERSION_1_8 @@ -35,20 +33,26 @@ android { signingConfig signingConfigs.demokey } } + applicationVariants.all { variant -> + variant.outputs.all { + def fileName = project.name + '-' + variant.name + '-V' + + defaultConfig.versionName + ".apk" + outputFileName = fileName + } + } + lintOptions { + abortOnError false + } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - testImplementation 'junit:junit:4.12' - androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support:cardview-v7:27.1.1' - implementation 'com.android.support:design:27.1.1' - implementation 'com.blankj:utilcode:1.16.1' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support:cardview-v7:28.0.0' + implementation 'com.android.support:design:28.0.0' + implementation 'com.blankj:utilcode:1.23.7' api 'io.reactivex.rxjava2:rxandroid:2.0.2' - api 'com.jakewharton:butterknife:8.8.1' - annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' + api 'com.jakewharton:butterknife:9.0.0' + annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0' implementation project(':libmagic') } diff --git a/app/src/androidTest/java/com/hzy/magic/app/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/hzy/magic/app/ExampleInstrumentedTest.java deleted file mode 100644 index d751092..0000000 --- a/app/src/androidTest/java/com/hzy/magic/app/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hzy.magic.app; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.hzy.magic.app", appContext.getPackageName()); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9b1495c..146fb71 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -10,7 +11,8 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + tools:ignore="GoogleAppIndexingWarning"> diff --git a/app/src/main/java/com/hzy/magic/app/activity/MainActivity.java b/app/src/main/java/com/hzy/magic/app/activity/MainActivity.java index 61caf3e..2de7cf8 100644 --- a/app/src/main/java/com/hzy/magic/app/activity/MainActivity.java +++ b/app/src/main/java/com/hzy/magic/app/activity/MainActivity.java @@ -1,6 +1,6 @@ package com.hzy.magic.app.activity; -import android.Manifest; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.ProgressDialog; import android.os.Build; @@ -15,6 +15,7 @@ import android.view.MenuItem; import android.view.View; +import com.blankj.utilcode.constant.PermissionConstants; import com.blankj.utilcode.util.PermissionUtils; import com.hzy.libmagic.MagicApi; import com.hzy.magic.app.R; @@ -61,7 +62,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_main); ButterKnife.bind(this); initUI(); - PermissionUtils.permission(Manifest.permission.READ_EXTERNAL_STORAGE) + PermissionUtils.permission(PermissionConstants.STORAGE) .callback(new PermissionUtils.SimpleCallback() { @Override public void onGranted() { @@ -80,12 +81,14 @@ private void initUI() { mProgressDialog.setCancelable(false); mProgressDialog.setTitle("Please Wait..."); mPathList.setAdapter(mPathAdapter = new PathItemAdapter(this, this)); - mPathList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); + mPathList.setLayoutManager(new LinearLayoutManager(this, + LinearLayoutManager.HORIZONTAL, false)); mFileList.setAdapter(mFileAdapter = new FileItemAdapter(this, this)); mFileList.setLayoutManager(new LinearLayoutManager(this)); mSwipeRefresh.setOnRefreshListener(this); } + @SuppressLint("CheckResult") private void loadInitPath() { final String path = Environment.getExternalStorageDirectory().getPath(); Observable.create((ObservableOnSubscribe>) e -> { @@ -98,6 +101,7 @@ private void loadInitPath() { .subscribe(this); } + @SuppressLint("CheckResult") private void loadPathInfo(final String path) { Observable.create((ObservableOnSubscribe>) e -> { List infoList = FileUtils.getInfoListFromPath(path); @@ -132,6 +136,11 @@ public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } + @Override + public void onBackPressed() { + super.onBackPressed(); + } + private boolean initMagicFromAssets() { try { InputStream inputStream = getAssets().open("magic.mgc"); @@ -168,7 +177,7 @@ public void onRefresh() { } @Override - public void accept(List fileInfos) throws Exception { + public void accept(List fileInfos) { mFileAdapter.setDataList(fileInfos); mPathAdapter.setPathView(mCurPath); mPathList.scrollToPosition(mPathAdapter.getItemCount() - 1); diff --git a/app/src/main/java/com/hzy/magic/app/adapter/FileItemAdapter.java b/app/src/main/java/com/hzy/magic/app/adapter/FileItemAdapter.java index 89652ef..7196080 100644 --- a/app/src/main/java/com/hzy/magic/app/adapter/FileItemAdapter.java +++ b/app/src/main/java/com/hzy/magic/app/adapter/FileItemAdapter.java @@ -35,7 +35,8 @@ public FileItemAdapter(Activity activity, View.OnClickListener listener) { @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View rootView = LayoutInflater.from(mActivity).inflate(R.layout.storage_list_item, parent, false); + View rootView = LayoutInflater.from(mActivity) + .inflate(R.layout.storage_list_item, parent, false); rootView.setOnClickListener(mItemClickListener); return new ViewHolder(rootView); } diff --git a/app/src/main/java/com/hzy/magic/app/adapter/PathItemAdapter.java b/app/src/main/java/com/hzy/magic/app/adapter/PathItemAdapter.java index bf6ecea..1d45b2d 100644 --- a/app/src/main/java/com/hzy/magic/app/adapter/PathItemAdapter.java +++ b/app/src/main/java/com/hzy/magic/app/adapter/PathItemAdapter.java @@ -1,6 +1,7 @@ package com.hzy.magic.app.adapter; import android.app.Activity; +import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -39,20 +40,21 @@ public void setPathView(String path) { } @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View rootView = LayoutInflater.from(mActivity).inflate(R.layout.path_list_item, parent, false); + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View rootView = LayoutInflater.from(mActivity) + .inflate(R.layout.path_list_item, parent, false); rootView.setOnClickListener(mItemClickListener); return new ViewHolder(rootView); } @Override - public void onBindViewHolder(ViewHolder holder, int position) { + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { String item = mPathStringList[position]; - String curPath = ""; + StringBuilder curPath = new StringBuilder(); for (int i = 0; i < position + 1; i++) { - curPath += mPathStringList[i] + File.separator; + curPath.append(mPathStringList[i]).append(File.separator); } - holder.itemView.setTag(curPath); + holder.itemView.setTag(curPath.toString()); holder.pathText.setText(item); } diff --git a/app/src/test/java/com/hzy/magic/app/ExampleUnitTest.java b/app/src/test/java/com/hzy/magic/app/ExampleUnitTest.java deleted file mode 100644 index 68c7630..0000000 --- a/app/src/test/java/com/hzy/magic/app/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hzy.magic.app; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 55db43f..ae9fbaf 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' + classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5670ebe..f90d248 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/libmagic/build.gradle b/libmagic/build.gradle index 0aa1625..e713296 100644 --- a/libmagic/build.gradle +++ b/libmagic/build.gradle @@ -1,20 +1,19 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 27 - buildToolsVersion "27.0.3" + compileSdkVersion 28 defaultConfig { minSdkVersion 15 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 2 - versionName "1.1.0" + versionName "1.1.1" ndk { - abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86' + abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' } externalNativeBuild { cmake { - arguments '-DANDROID_PLATFORM=android-18' + arguments '-DANDROID_PLATFORM=android-21' } } } @@ -36,8 +35,4 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - testImplementation 'junit:junit:4.12' } diff --git a/libmagic/src/androidTest/java/com/hzy/libmagic/ExampleInstrumentedTest.java b/libmagic/src/androidTest/java/com/hzy/libmagic/ExampleInstrumentedTest.java deleted file mode 100644 index cea170f..0000000 --- a/libmagic/src/androidTest/java/com/hzy/libmagic/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hzy.libmagic; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("com.hzy.libmagic.test", appContext.getPackageName()); - } -} diff --git a/libmagic/src/main/assets/magic.mgc.gz b/libmagic/src/main/assets/magic.mgc.gz index efbcab099c542f85f7a2ed92367f8cf3b4a6423d..06994168577de250149cb5f9af493431d32c6110 100644 GIT binary patch literal 283796 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 z zzQ2sy27xtV1bK$Ap|dq0n~Y*;U`ln|A`m<~0kdwNXL_sCSRZKhAX8DUj~w1xDIip; zRg2!)!J~h(cV@qh6LB1$v~(#g_a#6GhNBRm>A4grEs*AD15F#^Y?m8N>`7zRv5h@W zTW$moNIb(6LgGf^0sapD1|E?R_stuJk2W3G-qIu;H<{*(kg|%_-u>*aznS^X?*MF+ z7vRn)lO=A-o@1?os)H+s)X23NjQR7t|tFZBosj&%;{VN?OTvyBmye_MY%R(G5 zkp0}JOPNPXfI9`bR%v_HYZ9tzL^m`h8~8%10I63%QBy1OA=P3XrFQD%>9~L#=!4(& z!O+NMb9Lr%`ue~>1EN!WZ6q;0HqA%N*Z(;eyhfi3#`9mWMudWsEOw@%RO)(r$BT_Z!A5|a{c@9EIF*K*pHV*=xkq>Hek z88y_M{YlTx^-4P5Pusdd$CZk{p)=VJct!UPM_AA{uu(|CLMHqF{q;LvL9W-uD0`~p zi$e_WyQ%vv_wrCgVzql&?$7lvDo1{?@p74ac{|jy9pazx_Sleb(p@B zNhh;H@_~Y|{50t4;BwEg+xypxLi)QfDJq~;u*$Z7go0J6$eVCkHp#ZxYC4f?@^iRL z&9%=t7wqXna={VZb@8NrXU*Tk^+M`RYm< zW62~2Mribt2_bumD{otxVpVD7IbQ*=`mPv4pGdB>rZv9Gq>#ZYXOJ@{t+IQXZ zD(Aa$=?Yu7ego0zIIUa1_tvep6}E2u(Ob9LmbY#V`PQvJL3BC}>(-8L@1y+0;PBwj z;N7W-nMuGxg;OcRQpGCt2FJBHC8iS<bS7!VJI{xLW~q`%EJ@a&sM&ABrirE2Sa*hk zTrDb|b$Ye1Je|m`2#hMMoaaMXHHpzmmS*S5-e(2!3F{HY390?71-MesUN-{vx{zFX z2r$tedxd4Bo&g*v%w9Kp_Ie0en* zXsT$#`3?3)zqDBMwu82Fxk8$&Z=T7*k#OBb3gh1NZuhKk zTeooy+A9pP*XI~>c;}X_2^2C!v=K~gc z*pkIFZU@aWGBL~})uwE8^;N-Hxh8#F)0x6*DRQn|oI0>A*yr@wr{_qIQ*oDN$YSg9lq zdiLpQe|xMvc5u$FRq*#cRLpIg*J@qJjL}Kz*a8T zCClj2HZDzZy)PDB{%id18K)IAXH>(v-XEiTK(bX_&=h3I-1UDA!?zMd~EXDN#z*a8TwY+c~xGqv$ zF9d8AUn;;AO%;fy!-ue;VucUFVO*Cet``BeiYJS!0xV(^JB3Ejwq64fSzU*MTh`UJ zki)p+Ed0QO&MzaH%^6>@Hf5MnG)qb@3-?Le*b|rb01uZ8k`TIJE3aX)cqTPocg53P9z5!nhdxrXc zmW`P<6t`4UUROJApCwxD^_y|HZi0Rv*EtZK;u|ul!m=eR5|L}TW9W*CG%nWd{}ogt zHGRBU&M}Xx&krO)bZWQJNQfUel#vUvT4}4}zc-K5w|`|cIsSOb?MpU%iH|E?QT5d0 zPt890{KV+g^oxLnMmd~t>gBav3g(9{@#SPL1-MR*&alC1bLDe_>^TnCVL#UgL%2>( zumS7XD|B`Qh*$>Z2kk(Jy)K7vJ;?^E%~ip5tZ-(n&e^puV6UqoT&JfPf#p=^I$Y29 zb1jB&ox1bR9@r){7~)?`5!&mhcP79FXP)4^5I=A_!gY&R(Q%i5w!uCYVcdmRdHss7 z^7<6_Z`&w{PNQ%`CTvht#16MWcW;~kQ9*+6jTEzerW zK=x<#z|%ea@mJ(LE%EFj{8`(5hMVtlk;nBN;K`!%CQb>3Tq?JEN_aY(Th4%<4kqs& z<}%>uE8uAZL?^yZS$=!HVUN9T_UyH7(f0Z^@bnyrPCVP|Cb-ad5Bma$PKa<8aM{NX zywvjpZL81i2k+P^fAflD46;d0%vb z+3o(XcQkwhl?R{CgWCZ^m2%lElxt`m@6O^)G|^Dk{jK9fu5{SM_og<~8Px#gOa-aZX+tI$ zG98o5*@;YE4x78b@-s0vHcmw!gTvIwNkNe;X`hhE{&vQ$e zqvh4M(Z0amf1ck?X6gK>p)p8D-iT`+XP(CqBvY&sL=5vk%DBC?2}su5h) zv@?y=&8e|Xa73z=L7NJ4z1h!o$OhZv+O&dP&!_Gb7cz^vmD#mavdAVozMevc1naUX zyInFwWHh&>bLSb=oBnOg6?5}4F86p+y&S%n@wl#Kib8I6g>khJf9eC5x^Y5Umx1U+ z<-sS$rg@5R@A`oq5BfLNOt+X^Sjd$Yi^;+gV4)%^mu0eOAic`jh5*jZ576-ee-F)( zLOPoO>|{T_t@8k#KcGvU6C`lw$L`E8h^QywS^R(qI1)kJZome)eoK9pbz&e9JAY%qLdo1CaOWK&(w*XCPRItieiy=Z zs>iiS1-V{8`#-aqz>-}ZJ9!UaA*T(rAS}U5+IaFx#9H@b9x^ zlt4yD?6qP}{Z{O9UtHiK_lxLbFg&RbTm$ZNAx76zn--_XSX&QB^CvF%#a%w9k~D^D z=DOTrcSqfznA3mY+{*#2FZOUX37cFONA|clxQ>Z?)T&|AMC;Ceiy%c?x3GHx1GK{L z4L1{dTTR562-wSB;o@#LI*=?&j$Lsgz%g0!=x&8t?{Q`Pw zMFZPhX`QC*^?Sfp=~ZDozfgo_O(W36BGK5zBBIm@aMjK}t3me>)^`Z$3$J%`K$>OF|dXv z?X?du)qm`rd2BRe7{H%?J>6&A_tu&%?<`5U;wxd919k z^R4ZGVhHr=s8P`Oae_4Ma4)V^qelkbQcRdcC5?)23;TUdtHpYwoM}sFz041bs`UpIO76& z(kt}S{Q_Sf_i{(Px;x z21C}huaDNX+h)l5XK(27oj-B|6R%PE>)O~1b_saBQD`1mm|wBfGS-k{s!K$US*#PU z%)B55l$(Tlt?$FgVszE(-c94ITNtmr9~}v#7#2DPjUSRk8N;xPv_2#5O6GlUo(zSI zUvG81{sELYM63ljzb@CtSqA{+HlcaIBBqKpq%T%WM3P0qzlqn|1?B-+*$lRYV+Q+y zZH&8v@p|fM?#m1Ky?-x(G+ZLuQBM8q=;$G%qq0=Mx?YcM@_J|FwQXFl6HQ+466$qP z_sst1H%E5|Vf9&eNAuXW@#^4fUJnDxJxsjj)2EN}^h)bp;-e{4Qf-MIl3`x&ZSr~; z@T2baFzLLy=aBUJyxu2p{3kXW@%nfN^1wM8U_9^y)_e`*f>z07wVNP+eG({grC*$oF&PQEbH|kpu8y5>#TJqJ?vScXmz|Y>n;hP zyd<>0!0k6wR1?W{UIrVlNuazUw7)>rXN{s{r@K(E$256;HS*dvj@QPyx+$Q%CUpH( zH&6zbD~k(Ko&6Z*^>v}oEm^(NeM8pk8v?z`${_9I^m%<#px1;iSmimLj2&l<1LZBD zUhDPRqms-Bf?kgR%G(|Bnv&M*F+h2zBVNZO^Sat+bUaYrjrxq*hV~o!y}ldbUS;ivq4NT^e&DmHp0I5Om_DP!fbzM( zz71I!gk50*w%D9K=jjXg{adw-f^Ru*7$nfFp=rit^pzX=^y$zVP4DTiVptzIc_46J z@mB)JS+YXs1^#n&zmB}N4XuCmpR4;#QdcFwKv6;7?-sB=*Ij+}gg zH&C`?ykfoEXFi?5dr$vBzwf;e+q3x(jad;|$V#{a&&yjc+9Ih7}XYCY?v)ZP|%LD##*3OLAL!yD! zn%KmQU$+O!E{xY%RU-+AXccdqHPr8`%h;9ixnod2VeH(qkB}J-8sEC3t!xO&gVm}7*Ada5iPRG^}3he>qU&$^OD0yUT{U~%Hi|U!{=Ub#hCM<_FvEyW0CK_ zrPuYko!{%lHLu$`UR|A@$nh%=xngwu%KaeXztHD;-NNq`H{zA`$|pDrrePCRM>%X` zl)-uhDbA+^n#`fBp%4_a;2$Z^ld9XD;4~X9DC=nM(&zSb@86;sHBiFHfEHn$rIC+PLs9_D+`V-auNs!Et)S_`7&3HZXbL*jsHhk%%o{rC zg59uSyvEpdLV^`yP7z)^-5J%e)VYyNb~2SrCP5;CUNh{vbM`=#Jt2pVI2^c8^XlHB zI6c$)B5#TQ{xVU9t?Ifuo$%WcH$`Xm^y z@gC;AI|BgLskpFk4sgNJ@xsCinl*8iC~FwL`qu~O)rQ@xb^LtJpx69n(BPPCVfvz+ zYE_N}E-22Wky^!b#FL8R=cLa)Vf_zI{{um;uiG=ZwLd+^&w7h%Ga+`z*CFu19-@3D1#S8p?)RPK`_boaE>oxeY^Yl#q zqRa^=I$wYbg_9;vETXbTu<0#g(H%ry)nFo7_4-q7qIEL6UwT%$FkCF8vz%TLGv(&h z5q0c{!;p0uUXUdTgnBJDdG)lWfD2(>QCugNAI0YhmsZ~;(hf`Y zb{GZ4$4~K^W38^0`8QtsYF^I(aaii*#F0vcO5oEs->TIU?oso4CWu2f=!?xHQrhr( zY?IfsKpa!)%n4HyF_}V@$pb@lpP=UTY!Js8XH4cMV#y=qIZ3nbbz8^lAYFH@dF8Z4 z7|L)gIWC*iX0O}Vyq*i<*a%*Cta&{T#38p=nqPOSc|9M*F)U$jZI0L7`a00JA!oSy z=dpj*`eTL9V;2_6k}VH}&0||E_#}I=JEIu_7z+Hqty+ zr&fXu=+!@uRY4pZX&!qCh(pqF_0MCE1CNUE zd8~>L8<%V%8`5XA6?5ie-Y_r2rh;rvHB(irYG{_;MAhfq+KiSO464Mk@EjR2XUj*V zIQ`kL4HWD*^z~Vuj*E6OX>w}hoF+E5Y{RUz!$@;XI-M8n<~uiM2*lA?cS*|e{=Kkx zJq9RCOnuf_C~Ih%%I!3o>}k_XU!j{3&~$M)cUm#w+_<{nzPi8cd^L$>5#?X|j1iznH7y%u=MA+?Q$Yz^ay+=GSGJ50 z_tlWH+HeMpbqr+3c1$uqN^lhWKrrNef z5YZJC>s?zWAM`p9<~0Lc2=iJ}=ek|$U+kS%Z0l4Qfd8f`6cBqaaR3DZG^I()x==(q zQo?Q8s%cBb3v%Pr*2J+R+bLxavG){vgAly19za6ki9IBq*qcWr_7=n5mB#D*Gk211OIp7VT^wVzMw4J`F^A9;uf3Bg_0hBkV8 z3yuYTL^W*1bVJ4lipY%|o&og<4_f8*IF9Y)9j~YBMxMCE!l-q;_OJ5V@2eBdmS{mb zO*c?n6rca(^?2WZXN#y_gWg*U^r}p`+CmhVkakLCXsBo?nuRx1{j2ri?sM-zylxHE z>)NWMEtI4Mj1+e=S@Zd9R4GhM4rjCO7(k$)b-ixq_j+28S6NcbGoa=~-RGXZh_ULf z5sISL^}4;^Yd+AcBF(9_UxXFf>#97U26$za0i&v-tvnpzLdmUJ+|U!Pir1a|UJF59 zEu6OuT~lhjNE)3gKNt1&#QOv?8&I#9zJvT#a$s<1I5l!2Fu}feJSv&kI0;)Q-qX{A z?B6TcM6!Omrs|SRR%I2VaJs~5D$R(0-iJv|jSZeSy!lkbX#KTl=%?YFWvla6wdXA@ zw}}6H!@CU%b)GPAA0`fLDeuE1x)~LitrJ0Bw}J|+w>T?ak4Bbme~B|HAi|i=ASlCwQfrFvKWGp$G&h|0u$7w%*Sus)4z>=-gvc>8Kau>NaK_k=V?hkB3 z?iaL!OB8H4)hHWv_g-UUo3IO|C(waHTsd<4M0sAp^U8AynN`lj{Smpwv*Y>`f*n@8 zhCQ!`0zV==FW+#42Z)V%tGw?p8x$gs|%g1XuXLB9c~4UvwAq@*Jc`Lv0fW&p8Q%KXYpAZY=-X5IYa}$5}iZi-?*BsBu={&;E2GWy&Kn`B_FUGrfp4(^L`GatF)gy!Ppe zwTMhfwXjp3#5C<=oN^a(?sFX3=lp-VT=yPO|AmUz!vgwkWK%=ar#eL~7~L;2T>%#)JY!PrD{lvP*x2}#kc?4n*o6NZj*x~dy?kgC|S>Z{oPI~+b? z7AMyFS8?uh?;rN>8$L{V?TNGP>e_`?ZX9;^3A7PI?#Xxf`WQXJ`YS-{v3v??D}kXOvcjC**hy`@QZ--Ge#ou)|vM zx(3<<;&rc9ysn$D<2B^>x;GWCC!7FGDQU{Qf@LHt^YchAS;dm|ziMW9{f_NF&a>** ze*qoUPsUk?g+kzB(C1TSBMS_1>${*lHZ-h)K)C1Lyr1?zydbscdF-Qqx&R}V?FJ@u zy58tbql4G8Jg-}L@mhikf3m*FDJbpKeZw6+uS>v>Go8IGF-qn9tJl*x-aDQXRBSu7 zzqOs`Rk%gwIuM37=ltu|?Pag_F9z2N;or_{i&j}TM2!c&ZS!&-$2>4O9y4^^N@c~; z8tC;b;K$_2;(9HQvwriuo(=qPq@F6{CDgMVnH9(_?e#~`>p8#=r--KLUVrwyo(ue# zOlD-o%#$_-CA4`!5Vv%G{nhh&9zEaslkGfqOg9RWie^TVAQVAf&xZ&i)(a;@_lHj3J?<1x?8WLt24O)ekh-s3XmEUTa(ZHFcnAc5 ztZVzdj&SrUDk19L@wPx4t#U2_Rde;sH`k~hrZj_UlnxhlUJW-V$~H+y~^ z<(LNyZ0aQ=CtQvV%C8xYUPUD+zm5SvA|~=ec5OMfk@9PtszY)D-BB^R54JJ8J&W+z1s1H(GWKCmR>|zY%D1`Y@#f?ir&1acnt&L<1jUDxAK;x z>IpZdk9Nv)itS!ktHxNFhyq?Lp*wUH%nv3 z90_cg&16whR+TxF(dCjj1Fdqr(mccZFb0LwWJ@=(u?ZazF%JNNs2;zDL)5xRDl;3) zj*pE18=U8(f*Y#H)JvMYrdiiUq}uB-l-E;}i2}X~}6(rHheXeD(Ww)CxMokQQ6+X`B&0lGg7QAp0ae9d@&yG(55er!)S z2tlwuscRV2FL>mqSdc6`H_|zeByiVyw^Y8@IGF{vW@_H3i*aq0*cs*Is z#->0lg1lZ06}AJmcwT!&OR(<#)--(wG+f{FxEj4h5S<_if+Qk(2?;?Ez3(bPWQn@U zV%6xqCVGu-iO#Mr5}n|Q9z9lP_2s|$e1HFQoa5cOGjnI=&6~OV-o10nFcpwZRPfXV zI-S(SAJtHQ-SQEKq~bk~Kdp1X!nAt(ASnGRrfLe_*@6?=^WPvu-l*bwa5YYxh1nUA68vMyvkz&aYL=rC1@CLh zD(&PsErm9GiBhu!=OL}a?f9i97mRv8sNda6%qV`KN&NgBMWSUMzIo$Y$9_EZ(lbwxGdRy3WZ6ofa7+EDu%g3`Xw?Dj?VR<- z8hZ5Am3YYtaC;$lry>ECx414{kk<4%y3*o-@Bzynn*M=B@G>;c067(~h!qy=YK6Igj-C3&4_6-ct2-?&1u$2>HNhYMW zevec+9@vvy4-{1kjkgL$URU$AU)Fr5yJrGbh`4qpnP$87uMRf3(%)@~$L~nXQ$x0C z>^IGK+I^hp5-hpqM#<*(KRSkE#!bXT9-@(Phf*J3OES=WHJS(Wji>~F_*qvSXp^j? z=a6lAqm-8?m=uqj3@l^du?HWP`0%akefb#+$pQz0*-&NU zYzE?auTK;FzP=8!N2KBZ;f@8(+dF6*J{w42)nXg^5Ev#sxmVd|vR4VEKVE=kS|gwT z@=AsjHW0I>CP`u)J%Ji8bm2_@0}JN8GSTp7Cy5nzlfa1naG>fmZ8 zRFGV&7PC;4(*t3Za6qpGGD&=gxcfe2jrtMBMq%~h^zTh?6u`ufP_-C%=P?yKCHyQY zQ+BROchjLSnyJS2X6oFqaEXH1LoD^23n8KnBFXJF;euvgc`vPL!Y_#@U1pk|TsVQi ze^(7pYaWS~GBWY?eVj>rR;2gdz4cfE%`QTN>_0%&7nTUdK}MW&5oE77w6f=C|7q7rPlq0)G?L(fNcc&{Ef zxsZB%?+1D;2qwF*S3h!c!Sb*9BnTEWS|go{KEKnN=)tcfuoRu#cgt1oufO3)QsgWB zpQ@?(kT8)x@_rcy${(l|YH+3DMatOhP=hce8ACD=!G+K+iMP0NR5A8f$Ra&d2L|kk8dTn=%h@ez?CPaxyI1kZ_N@V)(}}L|A_TZ;_1RFT!eyH%@iF4t8n43-DdH_W?bt_VD0(97g8DA8 z5jM#0;h+JP)@?a!0nqo9CMIZBq zJ4Uw^2U1}^8fE7-GZ=Dbi{D-rvRqtv67GGkUhD3s8@J!R39jI^bAB4~otNiHY|;VfGXg5<0#nrc;1l z4M@BQAPd8-ae8Tp`Nq;t{koY_c|}4OP4(P%2}<(Nwg3H|v&?g^hvo3`9yE)-X=R+X znSI^0f6e7F$(-LC4(+;Ug(OVG20@ITY=e_sas%e zves_1vla7}|}Kuk`uT<}$uDoR}P;b{xm zo%8ZBa-gAMFMtZO3bp(K@U;Pvc}UoCd>m_{?Q!Yg!q}LX=c7=avicl-%+Qv1(VSrD zJ?Zst%wj_y7eAKxkTP&s)-SyNX-|uPIX6pi+T3{O4s)-G&`04R>EjFZcZDV9Cs8W1 z()ZX~0>T#ij}$0SG_?=mcej}TT8fEm8q`WcHfVbdsg8Msaynb^tPS_DL6`te9$m@2 zi#@C});pf(= zFhqVNy(%g8Dq1vE!iM!p4^2^-;W-}(^A#r`G|^EACPpDN&jmyOhvP@NG?MrHj3#(0I3WOYXIo%-FF*C!3_Mj16d z5I6dRt(tbR+w5EQvb@s~A8e=^IM$Bk}<*Kb6|M?vv+;;&DePu`xldH{IQtr*?Rg&I~rgjD~m7q7-&gFas9Efb55DXkZb zeN)TDxGM8UG50s`Tlcy1V`3*+>S6-HTg#RQg)>iPCOfQT}42~rtHPrzXcw3uIzWuCkPI8E?D9aq= z)EIsHe0U}ulZPM4K7(ObP+-YxeuR5PFCYz<1+Cquhsd|PCKwfZXbl(7KrLQiC|wyx3e^DgZSKjMjv zV*d}-%D>GK_HSa(njX>64?}|h@9_t_W(V^tF&|i;+^?o|C zK#Wy8Aa6h*&pc$T(O5*{XL6%2AK^buKcy1(W1& zBK>4Zmo6q55DK6zLf+al-(O8aEOa=Prk=uJ-6a8=V)WM?laY1I?R-L?6PgV?6zvPg+br-W&|q%jY4cKt7j3 zixr;)^4Fl|J(xhQXGzzg4TfEvY<R8 zN~0$;Z!R*V&lQ>ZM`%W_*pG#yR5;tIrqQi7*p44xdOW&nKj07lSvWkRzjG*Dh- zw7jW5amt9R^CKyj^dEb<)gHn1e|E%J_H9V~XGj|90|B>Vfe%R74y)~ZgjN>07Tmq_ z7tVmkzGxM$68sjY?jM|Xg(pLVJjyoanfZvDCn6FN=}czu!%SAJ@x+>MxjQI+<1-lj z2c`d+=?(6M$(GLm1oXIf3?kbDu>?6k{coU8-ktXU3BkBdT>QTgW56T1$n}DEL=@2y ziUx^WEbKc}R)56cvQaGUAQ$p->T!%XTsFg+qa^IgSoIlv)-dT>YwGkB&Q*P4BmDr`ASZpSQ&s>a|Lcgf1v%AoG4C)3XF?1xB% ze~WNsX~^H|;=|cnjfVk|L-0o@7Nqnr&+=!7DlNrE=GOtV4I8Q|A;u+nVwH>yP4`#e z!48Ik%dB&({2iC2S?Uy@pcj^n)X?>~Me%j{M??<(AAv=5CYb~}A1?}(Tj8kP|vW5ec-`8#>2KEjpG<`WV5n!;<OgcW#BuC7ob3%}2Zh0e6awUc2BXk2FD)kO3PcwK2A>*83 z$1#ePd5iDPaTn^lu#3Y{+Q9EU@D9r%S*Oe*8Fu$wkaY64P^^%t&i$!hd?qXf@`>Br zqpS9(fUuNY&(Za5%qIi5!kVGVZ}qKev)>mkL%*yXWhb5+%mF4(UJRfwdeCZp8>p&l z(@)VRS-vJB&y3|7#r%u5q~}$<+21~JzFo@F-{0~P)n;W*XkOD9{>9zYq;n(3DC{uZ z)ptQ_QFOezibwT}V);QbCQ`E`l3UQ5&E6hEc$Q;~XEFKUQRYbDFywa2skp1`f`RIwGwVX*5;OqiYDB2y`>zj`c#Jz8ZI?tIQk)38^AENJENCy!7>W`6#`E zgs(p997Vq0cvz+p%z&7sLp;FyW8YsMO7Y8}&em+$;vJU4SasHpzwE7UQY0Yk@cO;# zJ5FwbG+cR`O_-CcHT+g5KE_0c>D;=kp9|X@0d)B_*_B>N2|&F4=+5-QW#b(0gGM}& zaw@%$v@(-&3=RYGGr=&n& z(zmBm&wj@OxH)=Z4M&8Y_nlU|Lftw+m*?pCBjc*e$0ARq=XErHNM%GMmgNP%{S5kv zqS|7+QkOw#8i^<;-|dT-Mwj*d+-Ki1Wvp7b*bwhIgVL?B!T5&7S!C$+An z`ZgfRhEsX!MfeS$q$QQw8>>8d+lEcDx#V?d+<@FZPFyV2n+_N7EJ3;%O4LvT5Z= zw;$pV_aYHY!D`xI3*mJtF<}@C9WALSm-JJs4k%i|81-$~!I8tvQXnlCU-+;X2r8K| zU@_J;6$|8EUUj4;173iF{Fz=f?zc^x*E~BZcnn06-_273d1sMAs@)T(e91<4U?OpI zT`vuyd10=TIEf!b8)?Tkq+o8~!5n{wKSqo;fUC|Jnw?oM)FsZgQPbPXvZGi@e=B$B zCt+_3Vo?Va#}<8hN~7!(yKU>XFBGz$aLXW3BBH-)`J`Oun?V6^!s6bC_Dlw@jc&Mb z{&8Wg2EY9?3wM%sp7M>w&dj561@A1Pu2VA<<6%ekx^~bHojW6a<<6NO7xGXG_#vF@ z187jfS_w&9#HgW^!Z50Nx9|GS!;|DteWRfut)gcNN5^t+?vTopY~JjOva*!=bz=kf zDO3=b`TE_7i7&$hUDdv;`mkk`{&DG8#C;B>Bz-}vpt6S|rYjHKMDe~9(Jt_$E|#9l zT4?3^aJ>0)4|RGQ)mW0#mB#flxplUetz0-vOyuQNyo~in4-e1hGV+4k82ds@`3ejB zkmBC23gOygs{-t_Yln9%vhCBN`a*8ga`6__gIT5q|;+=k>c#Pj${!|9k?alRvGsaN1 z%9F&6UB?*_^9kt5=@ESOH;$e)(Z31&7UZRYtKz)fsbzNvHM|D5-MQceU9RoXn9x$J z0WZ2BI{k?L9_91;xc&6)ku^iX_WNNBR%f83UNRJG27$LDP+I=0Rl2$#vo%?I%DR5r z8|35p*P*5%ecNeZ7}7_eDX?0v*sJCax_l7+bHqM$*t+n#NARfRE$aCd_2D=2J;W!y z3SLdyZ)OW5-z;kVFCvQ(Pt`M>kzbWS<%Z>;_FJ^_YHt?N4>E-QCIG4j)Vs$E+c)!l zqIEo}dtx4$qjE2lSL;oDTIFcv-#9EnbapY=R?{!eaIs*bGp!ue8~Pryg+CMnBog>rTdc0Hd_~R;l!=Q&`? zzs`s9EJ&GsW7+tu!+@tQuVe#$Ml9EZWD8_)10uOVqImbkanoF-LxI^OXztZTa8H`o zP%v_e(JJta`!>Upb3WD1t~hEKAxs=WO-KxvvizVddQL;k{_Rv2i; z2Xf^7WzOn-Gfxc`#T*(vwG2iafPy&t)0;-q_cf!k!>4<9Q}SR6UyM3shOY9w-`OM> z?&anAvP*f23KdB60h}F%=kOdKCg*-`guZ}&iEeS{CCN|zR=9|l=3nNei~PJ6>DKewB}4JuVyHDjg8!x271 zpQTpoLpPwCjVOY^_({a?W}xm~`_xO2JU^JvCM|o@0@v1bkgt@NBJXJH_H zI}jCzJBYYIUEt_qGYUFo$3Vb*t&^1!;WJO3340>n#&7=9@ONI={JgVytt@)>_f8Ls zXG58%xKw(3e)7=eAFW^I)E^K7E_mqKbh!k0n%rBKv}YuKi5@|Q%Bf5++%mzkk<}Qw zfXb;3(@Dc~xW^uV=zZj=R_p0-+^k-69;WwP{$})^CvQ(fR`>uXvYFJ>IpBqPcea9p zzd1GN-$Q3%c8RzLJ`+tw1bYI|hSTC6NQqin z8y7VRQEo6QiL3;mW&Ta~lP?ewgqvpr8?ZSQqhF)(OSgfIh3b(_l_m{ z=z#pBS=0r=9%#*tppt@md_L`7lzAp6H>Ms&u@-XL{L2kd5b$f|$ZKcYiSu4<`#UFf zyEAXcU8tNh>>lEZ0atK4^&`hMX^l4AoH!E%ZfWeC<9P8^Oo}C|^6LEPCWzkI+c*W5 zBDissSixv7mI>Cy1u2>pE(FHMU37bxn)6U+(P3lUqHFKo55(Ulz@x)OX#+fq*l*w5cPk3=bUc99f6uaUPl!!vnh>sWTe1+hc=1MW#MHp^($RA%2p8`*r}i5%Cf- ztA6Z_)wJS9gna_=!6zm`NH}NBXy$l%7rG-J=<2K|{|+A^7ZfQ6eyb z%U4n=UhHqq^_erl00lznVY@)^5t{A~^x>MJjWZl|A4z=~e6F9C@**BA>Wq*L6unBi zhKxEgXiU?@D3Y6<*}{hgQJMt9q;s5`9T%sYLl+(%Qs?s(yUK=1Q0nb*wk)T0Ll-SL zkF)YUgojg9bJn0mV`1@pL4l+Dsp}46I&dtb1JbpRo!0(QKGrGbIPwVFe)Ghtzzc<+ zIrgLc^TEVVXCu>Jbw>Ldd8lBg+ax=za`?laMfRM|&$-T`zf`IFm@OWrhx%wR5)ypB zhsY9YR7nhZ5$WjUxodqPZN7Rm+w;op=Qj$(isByoY*uSJCrJ`^D=SEA%h2(8^Vzk5 z7rQja$Qa~pt&VKF$IilU7b#QrMV${=;h+mKvQyY=uPj_>ZJ zyI!S(8B?z;jf1i`z973#$l-|RAn29Drzv7=2+)j6`QgwPKhQ|h6@5TT@RmFY=T`gh zO~uUz=ttnE4f_x^s`BLPEB0=u6+vHll8ev#EqJG3Dxl8HM^EL~u7$^ztq$wSW%#FE z=J`7yre!ZN9}=v=)VzF*r3c!fVP{*?mWr|u%iy!PxZRFRzhGd#`nm>Kv%vzdj^}lh zr~J*?{&=bb(7=kDmJr-D#rOtlUw2Su{e^F*UHG56I1CQUoVNhayGED&C%QTg52s@^4t^hJvxC~+OJmh;Yy~t2Q+t&frOuwliFaCi@*QtC z?ZUW!2|h*q2imnZ49hXe#dN%Rh1CA?i4BY_j;! zc8*2=#2J}U#y+xnw?XFla#P>%9kwDXnIt&@Q|s~Sa(?{Va3bzX7b(Dlw%hrip;brd zcmEN3WIKaH4$2@nPVF4I*X2)N+=v-B-N0zQD{UI~984x)SZ%8phcrj#niPmIUMw(< zTg?Vg2-Rf0#ovAfrh1b@`c7AYdk9#s_WfP#i>;oH1JR~FDs5#IcQq3_}{`Zvtf z!TS~czC-<%1*sP}bKuaPc6m)gQGBx-a4tLv#0QZ&AK0tSrGk33YgIU#zwb;ivPQnC^|>vmQkD9B|@AZl!8NadUY4k zQq}kl3(VqN@y7+i^Io)}IU3*i1|$4WpKCPgpFYO|JM9bqW8tTO1w6O2fDvkK+OW6< zpS`F})aj-WY){+p^v^H#W5$;eEJ7cSJye!&b;>J*v*PCdz`Sg*BpcH8ZuGf%IQqee z=R&P$t@Lo`Wvm?`P#z8`C{f(R9FR~QrC%0YH7!!5tL9%oU_(#_XH;m@$&re8NyE@+ z#bVM+HNTmGR*EK2;|N4hbz3$1WS^a&O8k+}kg|_bC=Dx}{QGGxc@XK1glZT3h47IN zvv@lO741>5LXun}?d~2C>QZodlb+fccS$TXEB@hh&yVQ&#e9EdvjJgMBOTBJi*QFS zw&s9XH>mbzJ>U2u7ZJw@{DEiqU0RpREqH+REr8pS!lMN6AAQTYBbf~8JWV3SSg!=4 z&3o$oul6lr1NOO<4_Vx97x-lw2B2kU<%Zk-jHJqcNM6)Zg=g|^vQ1N%?XCD7ax$@_ zKaGDwOMK`39{4(eZTAbm#o> zVTy!(Pi{w*I;l0O|j;e*9~!j;4cK;!B+5zX*mr5jpj;f-bb*wfS359+TzqT&~YHWd5^ zmM#*j+t-M(L5Gy(Ek6?w8-ZxSgGovL4#Po=SRTS`gGA>ZSOgCcUoLmk2}FEGo0@A#WA7YQ{b-sMi zAEw4Ne#LcfOh$W8E0tpWD6^@bx$64D1EXjeGItQ%&$Dxa3 zV`}pGqmAixu=-EmRJVQKDbSLM$$D*O@J6jBKJe6k#n)iP-(RjgbB-j_I%7mY%Zrn= zictS9h(ynI;7Wn`pD#T+B4oe`WQ-GtM(_4NfjCRv-~`$bn!QrcR|MY_p9g*jX}i`s zBAmnxixWqIN)b$GE+{%NITKgO-zL>J6<7J{p9%q$oTeG0z)dNqY1se%rQvK-gRw@B zUGyJ#)t^|SqY%TmHY@E#KSs`C7Cid;qGq@gJ6+#VUvq4o6?|Fa69A$A+b2bGYOO^8 zeD$}HZ?K$YgqmI}VT~~QS=G#c_85OX%~P{2rGK90lj@dex)mby-p}ToEo1I5TU-4< zjrN%9^D!xYIhXgG9fjJY9(*aPnh(WEGE$=|1l?)Cd2%J>LG48SEZsjb;sGwINqn`D!{)_y>U2AKI*ISF!=Pw+{XyIE-Y(!P_big{Q@0fF=kA`_t{=F-< zc9v)}$*AaNVo~arnGaW0ma{tATGtjfouu8)+eGs#SHIQ&Tz5@5(P%3~mdwAgX&AC1 z^@ne1MjhUmNeE>MhB*E6HOPY(Z6J~=Kb*Vr5`&)rZ8**Rgh!!{wY$soI2W9#mv`Oy zr&-JMD*6SID#Cy6R6@^UMl$~Ieu!;_#08+aa3*{E;8_#({o@q0AJ3JnxFOD<_XNgc&f&>rWaq=6)t}XhdfO}llDL-HqTxtT`iI{6pH)4m+uvc z7~7i?UXr@)@`?FTBqgn5Z?=7|)zWDz02~3|H1^HHMS(uo)ISh`BGFHyhHcnN zgkP2#TJYEP)W&6p;F44f&W%(p51>+&h({Ysy7$0fLVy|PCptJ<)&IGPA7{V~dhj03 zn%GGL&d(bEK_}vdDw{b%FVJi~_3*u>rauL!>X~g!9H-nM>$G$mc>2wwtV4jY=?mXh zpY4R%2p-TJ4*Auj4ZnKt<;JsmerfWwBJtt2lg;yuXB*sAmYfEs)OkEdQL;jRiL*ZE zuc@aA8V;^ZL`Dn;zD$SM6p3=WI08jkiC4b)Zd?)TGkCt{0ZkqivsK2TeCNMkZYVr; z%Xa2op7~~3yiPS!wwRg-3T`NB^X)A0E^nb?X%J$+s=Ue&VJ21$Xe<7$^7oOVnJKzf zYzrF4vDdBQv~#kuc?U1w@+wll$$l`bwE-C;FA}`vSqXcyYkY>S zOjNUDw)6{tEMbL$(XL$=0e#1xl&;_}yo+iTeWBDyu!Xa^D$cJj1mQWY`QyfXxS+fs z{;a7A=fjxG$ED8zWi>mhD*7piHo{(TqZ-al_9bA=nmlmZdNQ{AUfv#J=-V`VGB5p?Jw(d5BzmGE7Q>in7Hjb)IypOum@JavS z*UF&#>6yFPQw6j0Ej}jd`3YysdF^Wwxk9-l zHZtumvv&BuNy`RHXL0hI7L%#oTptbjF8Ycp9ZpwQqM>>K)4}DO0lBF-s|>*!F)ttO zS1JzQ60IW+sRr1UOln>G&)6>O&bSLQL@wO#H)?k|BDVqjs#TU^t!DFTO3-z|Ds;Vu z+8n$l;iM5NbK+QrhKwTyM`fn+&}cTSzz0yk(KL4%n)Uw!S^gT@zUM$shk5H>q%f!V zNxAz)6@Yt(tSx!tP#Lk6uUh)CUCY&nmASQY`_ISq$G&BMm2ZkGDbf`ar};E5?yK_M z(01;G3UG-=BylfFDM0;j3)z?({kl&jF7zib<+E*nE^&i3?XbeRu>H}vX4wBVd&Us? z>!uPSMv74Enb#U|=(KkyjG5%K%K(MkpSvXYbwT^3$AY3Cy*ur2l5a^32#K7T{o{>X zqQFT#cNj$VkJB14*!39w?gzz8Nfm3HE-05Qo5`1N1@9l>{a6=^r#J-l_NObUOupT? z5vyu(ghT%$G%W;w!Hw3I0=M}tBr@IqPaxu#{RuuNh~gG_n*Z?Yg>1ve@Z;E@Ps`BH z3(@!HI~un$>Yq~QQ`E6=2JuC5CHgltfT13+D7hsd0N?*|s&Lu=UUOFMdghaR z%!o;uQFBG&WCbh7J2js-$zNKsWy;X5hrq|Hw!G|t<28fTJJRLHs~<_|$U68(-PcR1 zq|PBD)1GI_PP1C?#zV7rf%}_siQ!KV{i_Pm_~&P%Fbf3DwpL-euT6mjE(KJLoO5jC zG-;A1T0Q1-82kn09M{i|7K+7_@|1bB0WT~!CPm3*{KZ#&L6kcai`dM@wo9y=(j65Q z8Ve1Wslx#d5!v1Sf@)1gGSG7-crTXW!EQdu_(51a0i6FOiqUvNtfHJ-J8r2t*hV? zQz|RBULbdy6f0VP9i=FcqFNG~%9fh;gQ_Un+#jPIphx3QZ7T|{@e@EKe_lrY4v8|uUfKMI^ZX% z;rUc7CQ_;fMt&crMyX_z3@Gab^_TTI#Lexv%!>mXqY>pgtzK}qp9Yk3?y@n~zOw06 zyw(qY>qKJ~ZoSEiGQM1SQ;7bS%DQ*-bR+WNk+hYX&d7X%PHWwr@ZhIO+0tzjjpH2N z{2>dnaYNbWG>M8eTOplN9mrUB4c^)>p!hqnR(q`Xs=j+yAp zTnvV8WN(umsh)oa7|!d1VsXVgf17TlBxg_cjJq2FM~CjH(1I#4RrTr2_x&dDqDaj= z>m!LR6U4ENtHE{Qi!OEc?3A@6T>?@$Q7o;H?}3#nC7_j*6#&1LDk8(>RuX4 z4ID;zSF}E|Z~uI5v|_`WXi*6mc@-VtXem_8A&GiMHC^RdeO=7MpQE;niydOXc^#>S zFLY>o;u@+Rwp}Dt(a8Iw_qgBt+>){SlC5dG+s~h6qQ*K}`Ifb{#@slc52|&UhP0~y zk0>rWu}WM?ye9u{x5FCB2A5^UA_~E}E8!X=>od^$~kz`7$eB2n2WAa0sFl!HJjSXzXFUrp7FJBg3Jzhco z4Up8rg@EldlRx1IQ5#>I@3Dws z#)U`6g^QnY*hl=gxicYk%#D)b4Ry)is8P>L8fl@p~73EcYdP3b$n?IG4gqYaL2 zA2g*Zl5vW`pq+3=P}uqG*G)ozN8(8}PqqJphs1NJRu1PdQ?OiLsn2t-{4Ti0FvJ&r zNbA4LUb9pKsFtsv&92ohmM%$Bdb`Z>R94Ct+Zx#pX#0+8>UmhJ$0VU{u0=4msU30F zUpbgtdS{z*ROO!YF{DswU~6^m`}T`Ng`SjPE^?cx%ee+HFk0goQAN?Y zUR#ziJKHIJZ=J$jQiyLF6Vg!i%h8;(z?zdt`IM|>54^Zzx`R@iC`$Ya;3+RP^o99}~QnuYjpy5kb54La-;=JlD!~|k*tOoNE znC<*3R8T^u#5r1lHYAd9{!53ypRxBDZ#@Z5j^=Y~H;hGj?3;1kz1&8kym9!(odf>K zlnb$6#WwogzOH>AxIRyR&<drn-Q4U4^|G=Pc#uFG z72*r)8c$g#*7{XL6*wllCpI!)-Qu0kgl}Z%dTx~L4&2|x%d1|md}<0%{GC?LN0)ZD z$gvQp{vpb>D%^Dq*tK@N*CN-l{&;(i1j1=fSWRys^qTzMdz8;^1&wbOm~+4EOyKbY z1wP84qxq~M88o3N#8vc#OvRa0<*-Zp31cDp^>bQ=rNg&X(UlOVf|e@Zcjq4;KauAn z{uAt~i#u{p$s`VozsE#bIiuJ>K^;`cRnc-nDcwd*-R=WF_8q8YX?$&TfYCDr^!0$8 zqb))Y`+y(6S)w}c9rB%P5lqQNSE6`!G*NM@{OIzab5U-l|a+8BeS) zpL*Ojr!-@&60jIHMh20w7K&3NwhP4u zMU8#r`QRXciDENzcT{Xi&my`U#2RUCG~N>zGh=d`?6qf;h^)GdsDf*5P~6Kh8Rm+5 z*V#Yw5^#M#7)9t$vf4~#K+uEO;5Hx1-U)sUsO_h|*0`y-5M(%Hv%8;lXLCzM*Kivs zT|J^zX;*I1{nFOPVC$dy_Q`X+wa4OGfIq?E+!MhUEF{%caub@>w~>5_gNe2*f40eO zyx~IPeL>@his>VRPq?&vYYo|}c8!GIKBpwcU6N-tvbBWTuvvr-n^K!=B_A=0uAc{W z${1>5F6cBv6i6DbkL2H#|e*UjN;(z^jut*l(-lcUQ{J(Zge$D_-X78VMKnfR`Ew<$bDJN7W z=DaQK(CxToE4X9y?gYfqE52!_C0$z|549q-kp6@#9s&f0JhR@=`DB4w=%K*v-eAuN zp}vjsq~%&-xW-ddJiZrsMp(y`oe=-cIhaDHV)wAOC; zkqr}9As^B^{qh)J_6GC%;%cfW%?+B~_UBMQz);-?k^D^0MP-ZeO})t!C1pnE<)fI1 zXvJ^NN{*~M3AIRSV$?2vtQSaD@<&~KC2M)*-<|si6=Kvdfr<>mL%XJ~>%N8u0IW{m`WC{>5F!fgDU*k8+wWDQH|I`*5xNt(ToUY}lDAfPHn?F||< z&|NS2eM!=-v$04hgQ7`Z8g2<|=Y~b#fmHFH0r~qCf10Ak{rO%(Q=!<^l*%0V;gl)X zFHkmBiDj5Dw3frPIIc%`OG@U+)lsbYvB2y z*+<*^(uCYXbe7xnCUgPv+=c8glZ zGN8TREQ!0i)B%kU=hTlvW{-724?6A4a{=|CGMk5db@@(?Mi2aGa!ReJ9ymDItJ#H> zI|Y_BE=aMMEfD0)62T_>8IaV6bf2;`Fz6iu)c1tuZ#v^KLd59jp=+4f@FuupUpaT4 z!B;?r*k z^I4aLFJfuowO3oNIol`JQ|29B&|U!&?ux*om#hAc?2W;j-PU&w=SMBSdI)~dZgCQF zl85ksNWy_jZ~rrXJwri(_hRNL{lWuiLIQLJGJj$78I7u4>Kdk#6czU)4aE=Q%tsz_ z5DPjXsXK_6_n#{vaeLI+iQ9U#RewVG+!Y^re{Xsz-h1rj=9a(o^bJz3OS<$H(x4oM z->b~mlGM0c&uO;YgDxOI-M1>R>$j=H?O^xvdxSG-9iY98Ilx&Ix5z%z%TKYw@aI#A z8!}r1DaSurUigP49B_*Oiiu#*Q?i;6F?@Ce(`|$n#j$`V9D~xNMT~@iW@EQwa@_ZJggBB=2JZ8h(UIKoWTG!kbOeB!~gQ z`RQN=KYayb-Cqu-nj_<`?8NQX?DE>d!*Q_JMRMT(2O0T4h$K6Ln)9VUy(A1wZgg;g z`@qGXD+y|Mhy*+@xC{AkApL)!^UN#p2{322+D`Ut5?P;gT{sh>2YtPCWZpC|{#=%J zzRA;0e*YYl3mofEXC=rGHv4^=B-ha(H2vy-HR`A5qpL5fN7dW1yZwR&I=sofe;#<) z@1r}r^PujDzz@$O$rLcNo13t2dG*mz4hYVO(_|Q-{e3PI5i5T&j|Tg1m@f6$+!Zp7 zv`j-5beqb-kyQ4vz@v#$1`5b+?6AmJ`bv*N*j- zI`yN_tr6WAn07Fbf!junHzZ%-bXjT$W z_erA6sQNPIJzf)g51oqf&{RdbL3}w^c!wr{UQ8{;I&!L;P6qP0JhQc4MMjx^7!n3$ zr{`z{6E%TEKI~sqDAX`ix&whjO9M83S0U27-dviD&@webvrQo`@GV7ucSM-|N*t4kwM}w>oh@j0W=&xnsea#r9G~9DzNvk4D~Kav6RJ2;N*e zZe$gD%esia2`P8a^=2v|T3P}T5??t=QSE~GO?$RY z0&U{M>*6T*(25fNW&?06<93K(iDA&%C|?6r_zuOoAuMTa`S-bf_D70I*H>jd{ow%n zlA8rCQU#RN-t~Lg3?*b5dE?qDH}2y%H04-l!C1yOv^Nl+r(OOVZI;{So<9CGl`L}~ z0bO1Y(A3A}UTUYV+j{S!dJ-QwfxqlZ2K1^=PyHwAVvlgWJ~f4DXyj7R3$HBFM2;U~|!PS-$i8 zLTKjvX;#z$G7(#m)VX0)((Tx7(_QYKm`w(cM^$PyE_&w`p5+0|1Gp#NHCO+J5wIH(@}z?urY{0|6uT2VU_s&5w) zAaU|l3R2NLEJZItS5nJcMz(oWqy61`_u>AlRKLz4uc8sRJrdsp8}{lidzGTy&=<4S z$ZUoxiW%H&XWQ9)6h9puh{)4y(;0V^>EAgwC|e%(97Km&RTf0r7(Amu@NCGo!l%^d zA>_XQkEX8c6_DN~B&0!VX+fHm zTo#c0?Z@x?{JonC=i935I&U4mE835u5qgevd?=g5EQ%jWY;c0XP`gy4IJ{nT- zgI-{71KkuehB2hXEESJ&YJY#IJF0cz?)X`@h#)f9O&d@k;5WsRRspc?N4vdo8uxLb zT8uVoNZ>iz*-KI;vwj95n3}qLZY`cGeY{k5xw}vJfbUP)n4D4nF_s2`uU^TLL`0)2 zh<5iHXjqfEt@iZo^Z8It*t`RRC_`Cep3*9qkY_|od-9`4Xl7yS+LACx@xo^W0fck= znF*Fv2;(W5#~X@_4*lg8sNleOa{?v30?e%YagFki2s&j|$c43r&jQ#PPJ*9p16_Y% zw;gr!81Q8HRO}>iYo=~{zvX`sHFa2S0r*G=VkX}P>IFc4;6Yh9Mi6a(03V4!3VMlf z-}W<%nu&Pa0|Dz4ncs0SYy`^nznusrRsE*Z0l901Nj-&_jR{Q%l?iQ#oc`Q>w3-bp zq#kleb{Z(1ZTc6IDH0Z9UnuzMa)4hAw_SSKcLjc1x!XQBOP%|)5;gv5Q4$DvQbD&PPhBV3$lqI5)d=<_F;3r{MS$zX`lL6BG(Br z*JQQm`HLh>-g}2*s6*b<2n=~rSe%gT5{3%iZ@WCM^WT{qzZVurVflxCZ{tH;q&6EpIl!ha)?5n%uGm` z=s(_$u!OYy?SJkE7$o-C3StSt>;oODzYF-jiF|g6l}99H*IGE2pi|9(KA1(g6@{fV zGpq#=UJ5t-RK7ho`^HV;t|gR;U6kw(ktD77IQD%3$9vC{7YbifcNO|{>4FcRwxFEX z8|QH$L9mh=+eL(Uky=?1Ut?MEXG^No<|ZfZ=q00sv!FYRi#e>0^q3vj`$sSGqsE_x zF@%7dDmbfw6Ebi#)PVb>i#%d_)OE*=Yx*^4k zObj&|ECGB){uY&tVfjdQjqS7&%OEQ5P2T4>KlgwTp?AOjwrRTJs+ z6E*4Sb=U+_@NsUY%zg$zDZwfnt;uprMFCXVa4mU14_Qh%h9?xF*3O6}9%qT3@p8!& zSV3Zt;B3NbE{Cz4-PYb)o2F_rHKfp=hF$lNU9!*5Auy+gJ2->S2m5cmh^lh9iS%eV zZ%1t?nrvr_=W8l6WEVR$I8|uhseyA%s&--&lBS2YrIzYu2oxm}O3fNS)PU^T11|Nx z{CL60yh`3c-bEE}ifbtt%w%PZ0S!|6(0g1Jn z5)`bmINWYKOq41br(c$V(D=i3l#fqwdsb8sGere%`s4HOuhggfg)VFvU@RLb9na(D z87Rv>iUBYF8Def2+xWMC%^dlMP+Ffj5@y;ji%9etQ*Uhk-c!pb`E!4eGY@$Klc_J% znxwos4ku>Ugngh4tzeoB5DikW72tjzOxc#`tT{-<9=uy12N++j-OFeEQB$Vhyp#zl zh0pYCKlzZR8b^F6I|{`=Q7?sKwI%ZMh^02*9HQo>VRE&Plg(-aPl$bn2dCrcnvcLT zkU>wZ!O+hG81dYLhEJpy-p4jbGmE6DJ&JnXi%llIWrtMK4pQcSHSpZsGeK$)5e!nW zd*^x|rSZeznQ*t;0ump(i#C`2a~>;4TQ?#UVXQ~J)*9i zvZ~qaxj3tzUGe6fc?QlqIQE*KUW+48I#ETEdAL7ZNej^G0L)HRX|}}pFXIYYZvuZ& z=$SbwIn1lCg+;5@W4F1PJ!my^qg~E4Y+J-3AK5BT+KL?jLa!1$8`exk74Fh*0rgGO zzjS?Rc~{adFo%FVegUmt>gY+*=~_!2Kq7WNh_`lqfu4%lC;O6DTh`y_6v8C6>8FtH(j-H&6IL-e%uT^^5LMTJEqHO#{pOGC=*`+- zW)Eq_ge(q9tB0x$u1_~U(%Y~mIMp_zGlne}p3o3baqW^T=@lOR%23|w)n6TgBmgU3 zmMYn*8<*TSnr1I*zx!}s>{2>|^y=uw4jDyklIA;*XU)WtgZpGx52yJH>5DQ&WJ;Ug zbqM}MX)3EF3Rd^DZgKE>5VVR5=>r6j8qnUl6h7$0W#F1jPg%sv))kk$62W);hH4N= z03D)wnOw{xg;Zy+pB*A5^=GNGo(Z`0%DkMPv)mHKkQif?rdFc;-s&YFc`7*Nz#-Z4 zwn{Jw0Sx`Io3q|X?{TVKbQjjl-^_P|A4a2S@6NY>32ca zeYXT{WGSBLNZGiY*IwM%3v1Zed)h;bpf~_0(1mP|S7~Q$(oAC0Lbk!>?Au`7#7V2# z-x+;OUsK?^q7ZM)?v$&wlyX=j4&Za)XG3^)H&Okl-_CsAkJ4|wfhodA1Bmd zfW8w2&e0m0nmFQ@zihZ5@c*8y#h2EDs6pW1Q6A+i3kWnyU>JcaKvMw7Jk8O=lM(o) z1@Okm8V3ut!0#HNU$D~PjJ@H8#}~C`YkY!f@VuUI!;cLXWK3Uey`JR^`5dF1?E+bN zcQR_`FozL>>x~jq17{VSd+Qd=4s(EvfSoqL8#~JrER<;lY`qh89iEBr5O zEYjd1Jx+l|L`NAFb7u0ow_uy|v*^hzLRD30T-?}FUplkR-?`JL;Xtqk&imkcm zH>%b+f?%xH_r-_6GSgXV`lMM0%!2tQE(lrpsBAPKXld=D*VGT7$pj(8lnWlGZ6#IN z0QZ(6DVtl>7gf)$MWjXc0)3&RAHLs)gyMu-bSG>|q;HMzEh0*L>VFNKG92MRK4OaG z)gVBJ$LLG(Kb&vT2E>GbLc0Y`G%F>^Tb|4So*9CFl8LU7LM;4T>tzIkdLvHJ!4X|}U-*eKXv<`~OTC8v7kUw%s-AS|AM_#;PX&wjfVsj62ThMNo zI5;lQBu$-7Os3)ASlI<+#*yXaMfU8tEvfh1w##g=RrvXNKw=`sC5U0yA=lSdjz#Ma z@f45=d5+6>_wMw;hw7h6xj44qd7*0>SDwkT56VS2qTL)14UxL?+$APR{$YfT;z_K+ z$!%$6Gp+DCN1}=FnR9*BHA5T{jlkU%{Lvd5QgOTof=R zC&kX)W-TJ2a0>`{+>aO*@H`*&cmX;h(mfICJmuP>PfStoV0(ksT6n)S)zZ5rXNp??bc z%mFm**1JPbr2%A-$Nw>G=xJR9L_y@>)?9f*v*40ZKi{o-9O{q>?h>dqaUrRP}_3s9i93 zKO%-0b~bVif_mXTW)&U74l~>l1L#9mkLs?l(Rtv!kHx_vtZ!o%?vhk-I`Xa>@dLx~K!TfqrtI6=go*lVpK+Mc-$SQ?L zm&;!BOInxnzL&ozJZU|gwlUvnOpp=77@oVl*cjq{3ZPiH9h!143~~_IJ?)@fxb2^E z=k2dy^$2s`YZivQVT!Kd1%&kO&_<(M0T5}2AG_0*nVRn7ld}Q^cHMsH0zeL zbX(id@cNS$&BSvPlc(BF6gemXe0xNsP|Yt~7n}v(@=CWINz<1U(xnY#_j}DCPX>9k z2h2QCyBJ2uP+=Aic8PU5PEJhva<(n+$=?r7{3${hI_9T*!|J{o0%z1sWw*fsUrRro zAqd@1m!6>|j<1o3TiN6G4JC8Sp@Gs$uAd>XF4n&uO+t$dJAb%^ACs|twTKC-`?Iyo z_(Y5m5(%pm*blbw=XkvISqLN0HqYdf!(w z6D3QhYp9=m&F6aFAvj;nJU*xy6MY@290xT`*WrHe%KD1t{5$oW^+cuynoc5Ish3-Ug)yJ*V?{XS zW_&fjSiJ7ivv_`78^fO;n9QVoR?t+l9&|a2nY4UwFpEC;{!MeXm_5i9G7bLeu}u>Z zuw#2MQPY}%CScqW3a-9dFF-7(8IUtHEVC|PBRJjJAN;R`!FJSPN>1AbLp~` zhJ=hG5OubdiJ$JqjU^^+@XUSSN}Snc!KR#au#MIG!`LsG7r{#8M`(^5%dE#h$GMJh zyEbG5{jMj93P`U;=yG0`>Ch5v_Psi}`4zpOUW~H}7Zh3d>j`A|>>Xd`uy`lS_uF@l zgSB8jH{)qj6((y40l~+lK87eG`Mja@Nn8!;XWI3zsRehZA{4eLxyGkA!5HK$toU9F zL_$GT;FqdY#>GA#EWU3fO92YaX(6W`Pcaiu`uQJa|I%e(IT5Y1g(|kwKpwEyK%w^h z-S;lHzfl8qpgY!+L4>Z=UzE}&EkxLR0PzqW2snAPEdh{+q{lnu9C{B}CAIkf)!yge zb83v@s-Cwxyf{$uGV35b4Gu*!gv4rqxd-OO=Eb(LbSfD#lk8q)Hq_&n=2{y==v&oIvIx5oi1(jJ-5{%nwbZ7vId_(Jc;mTMv)22Q>&yzUldH)Q1M__eh&z%=tQ#&Zx30qA`d z9KBf7p0f0&H9x0$G<*xU>QfrOXD$66)|{(@jndP_L|s{)XwU7+rD=xgBAc~CR0nI@ z=K}GM1ETVIY13tR6WY4wsym+y*esJ>#C~|+O6z&E?nPThje|pvK#8Ek=zYv}F)D|E z*(n}7Mdc61r;Mk;Y;Af?7qSZS05YsB0(VI2#%Zuf+Xssfk{DC9^MlK^4pQrpQzIFh z>~0*o;?Z1yJN-P^3;B^ws_qykn>o<{3HN2QCcE{Spp9*@SzqhZ+y*m-|GJB&T17LV zs7VMsHK*!3euCz9#oo|ZkJ&e=*UnAOG{G&67l}Ig21m0nQk}dWch|S61#5wRSzUrh z|4bN?=!%Q?#3E&w4lQ+A<#ihDLM)qR#s99SUKvDx zwNbE%(~Iuc7VAdI>feox37vO;kC?~XSAlCQiqr^G-Cx#q|FqKAj_e&kpgcapIand; z4X`5;p#-my1>Bw*F6=A9C8yMozk~AYXT_mQnSce~5$_0e1IU z{z$~EQe*qy23YcW@ao6=cCcVSqNjE8T;yQZeFnL32WG`;897O83b0*{+4!M`PiU#R z6}%ea$r{aCg6?28yiCV`@019x4098TK{aa(TNHB|u#Ov%KR2%9Z$Ktl+%1vGitD>5 z@?^vk{j`H^TXyrLcO5eLi6&%MDl4~cn`dNUCgSg$Ox0`i6y0)a)~F{yI<>5R+S$J_PZo_e24UUuTK7EnGE$6yFav^(IshSv*Xza$sFaLcRU2@~NJOod=lNwcz8|M{{}=CEAC<%!_MvGvB&9zSbl1 z)MirS`CdJ`GKO?Uj6Utj)c)qFVGem6(vJ9WVU}eOdnk)6v%wQ?rB19Tcdwh0V*!y^ zGhCMl&>N2l_36+WDq3lf)FS4i!FrF|2F!Wosag<0-Z0YJYy+l>66Q~6G698NCpY!# zp-0Z9uO5$EYvJEg zCS)speS6Rh#CA7VZYn*J9)*4U#Ns08*fMDG5FvW-P6dPDtR2X!1+)i9h`5_UpcZeB!97AcY9q(4?N>n_!t`P4vo*TT}5FAentss zqL=s0mJl1tpky?g9kS+E#|2|L{EA9Scn$YY8-`i!M47CPUFfiDv!QGI+wH++cW(zM znji^Qkk?iw9V*szSNCjw>jg7n=pDI^+9+WoqxgxlHY~s!HfqI$?BU8a_=ERF*6lUP za1F4zYQ6VYArRI9{NU|}a$^=W=h#iu5;tcb#Op_BOjA^uJVWN5ub(L>P!OsM z;ZU6Hz%S>w;nE*(4}|(2rMlgnA#SWUfuJ)4zBP>WW!POx4SZu5!df>9abo!k6s$Us z(0(IG=4^V0xV;vIgP03$uL;c{eV=TVwh#V$%xSs(eV1gu)?o{>R}PzVns1&$&PkSIGuqwv5DR_#0P^3gs^|kOdDqU!j#>tZXN<{hw1IAwM&84^ z*uUpa7gy2&eY)vWz42x)%2R9U0M1CnT#)aZylKSPdNAQ)@%&u*6JBX}NCx<8-ahK!7vY4NGcC(YS)J78tN2A!)>cv>e6=<3SWJd- zK`gFz4ZEY*zKT7~Dv$*cy!txiB2>&85^N>*sw&yEw)JrnG7x&209TL+&Yz4(xe8hx zJsa7F(J*pALaYEX`7t>z0oW$*PmvuTw=-r|85`KoI)t}rFs&TMWZ5ril^{2U0PLPj zBjOMJlZg9Fvlj|uO{&xoeDtCPDrA&Y11Der8qP;f zx>RuYcU%JU9W{druEX50O9q(r&mQFAlZwI`@9!$E4_a~)zJI~w1^fs(>nUd1oEyXD zV2Rm34W=h2-P{AJ>(wdTt&5VAN}H%e>T$bO#~`vJ~6iaNslb)5>pAH zX$)w^Zpj81FFt?OHis_g4+B6eehW^mp!wmW+9Hc$Qns6*{37TPhDS~^@kIotG{WEX-7IEty`?Bt6oIDq9zh88 z{Kvg-s!6E?;WYvT;Mii_X)-{VZ>xzG47v&;3530^oPqA$Mhzu~`(Z0VDA4)@e@_rH z&yG`5mcE6)K)381%mUzIZd<;De+!*Jw^n{k+^&!;Ee^UF1-6?BJQ|=pVqYAszh*pF zf-IxIPO+@cPM_DC5Ah;Z*HMlm{GE)PgkNMtiR|v61!F7OMP!ejm3IF9<7svJ$zfqhtQ7vG+(ENy zI!%s5Wl8pG2i)1a{lzR0y74J%oyShi)H6Wso!?>*n%L(Gh~sgD8Ft&dmJ>B-q=tF^ zf=4vrrpsMHf&nNNWMR#rkreW*wAZ%}R#B1mbY^s6^;3T=YXlpC7n@LJ+wsjsaY^j@ z$2Ks>eWg--JX=Z0@3qxAZ8I0yT)hfD?Jpm@Dn8;X3=iio1CL+9^JUI_UWw`BFPa0n za^Jt$J!$^=;Eh$-$+o4jo*BeM{wY(`IymTVhBpqLEmvy3JWb9OOZ)F1nI!5@PuRLd6g61rz zO?Tffv{#P)s*KVYCw$NGtG(QGMwIVKG~>v;>da!70=!X)&O#B>ECNSr;) z3p-uG_`i!IjC9z)m?Nxo*#BZM(?k1%Gu+vGK>6TRPM2h~dFNfO>e^%d!2B<#A*TL7 zy92=@4;@5ZfB&4-4Pm00MO;lQDS5W7lo4$1=@df4oXj6%yJyzj;rBsZBsy_4-0{DF z^aYHEr+!UVt=6plG1h~jH#48lT?hL?-40vybTGfDFUk~P2OZI|hBaH*g{^9#Od-k; zMtg-R%=E7RrFZ|o0Q|q8@BbxBi!iB=>UlqFrAc7j?G+o$Z|+J`jxzmEfl{2onp(7? znnYs|#;P?2$~_=wExv5{TfGAbbbj*hgIgp7zx{_rA6 zzZB;v{MdX#BjI5GOx?qXgTc2Rhp^~$i82TMs(R-bLdy5GE`2;a!a`$CgKu-9N?u#8 zoB>n}f99zBE521VK~99jY4EMoetOJqcU|^ARL^9#+nk@{+ws8TNDs=jlFp#k ztXmg517OR5oZDw4{XLdPaE=-V=Q!c>(AjIyVR#BSU)IihT~o!EZz0LBgbx|`Rnak< zR48YMj|IOfi;W!xXpIMXzJy7t!Qj~JWr!5r7R7@~qGd2uEnFtAc>T6IDS2ZB16g}oZX~0LtQpb$~HG!^SH&+`eIbr{E<#`HHC@q3ajd*UTa8( zs&K15Hsz+x0L=2^&7FG_$yj^2-&ITEnA8eQf2wM^I!|n|>rzH#Q?!nmZ1(bR)hDRa zYiDEW7ziwgsD9?UPv#x(c%`}OZq9s}O)sblAt?EuBThhT=V@ZcX=Xf7dptIUin|GWMG~6@<)H${xVpYd(D?1 zSQ=_6J=ilb7}8V=_c&-4MLXR?`|N(aBePxBl*~%6kh*+T{wdB$Ztp|9_N(FCWwdf+ zo4}c$0W|JQqCIin_tjsW129dfJ0qU`wmcGR7Gt=K&XY#?xXd%zh~RW;!m-E4?yeJg zFxI8~+6>hCoLawlT2@9hSF2SODFTGONs;cwpzp&ysXlkX5k?$%0VxhuG-6R%fVXwp zx0Cjk0rBU!^**q$&$uV&JELkj7-3seaYsaS<%i@n3~c2>1{p?|*4is4BCN;DrWu2I zI9>3TO86TyS0PoHX;R#~=J_j>#cx>hoQ{`iogGoq(*rIc&VeVT#+e=EyW7o{c~M+f zfY#(-*a%IB0uG?Y80Y2X<@PCY7IZgQqM|{SyEcH0np`lKwiL~&`7a%HQZAB7P;P<7z~@I zu_XSDa@5Zet9v)_6HH`oQmgT+MxOmznyVLO8ThMXg67(AUBde%ZwUCIw}6X(O3)@K zwxHH(Kg9E6Fl>z`*l^uMG`4^@Sjp#mXV>qP3|Do?6SbEuLrCa^vgB`6w6m7BmLw0^ z%3d%q0tDo1-eN`F+J=p@|7LD3L@I7@Y~olAeVaOPCXnjBAkS~>PAt%P`&^O-;7vgX zF%LAUF1Nqo8_#Xf@N!W5Q9n88vh3^tUE`aosePu>`C$FoC7^R1?ui~M9PRO2g^EJ6 z+S~I2aR9If>*~sC6QI!evIdQGifUhVyeFeYo0}zRBgq#xvoY>09S@tL<@mt5ZQee* zw6M-DxZR6a{02w%za_eZ#Jk6_yWq%J-|yP7bS=yMk!6n@&d_2UG1Og1RL#l5AD zPeXB^Nbo@75A|c_fhYXAZ|wYEG(*3QUqYb=0VHWDQ9QxF9H5H1JMjKzoq!lIId!Pw zQScr9lOU}(A2Qjx8|BBhz;3|d)|6PGX z9w1fFx0llTkh#P6b0+FGFp_Up%6QS1RvZYpS@x}LIbHb|A2-SlCPMd5VlBL%ZvD~5 zM2|tC`bBU~=rxdJBtLLzCVNBB;h+wVTaQ0+(dF>0<+E^*%@k#AlldC?o{4D-!Mufl z_cfw6o$H$zYCb?Yh`+9t5^hze!eR&O%HIL^f9v%^`juT`jmV926w1xhaQ1#0g#MP; zUv3(|b8!X3FL8r2G6EJn*AR-ze+}$dvLUSoh0CdbWZn}mE>sD^E{FL6!iO^Rcb5yg z#VY?4yi=<*%cG-8Iv(HJmUzPw8xn>PF9v)Gc1=K8X4xvyX50Eznw7x%Yg?~TJ+#kZ z0rT<=VuSqS*c;a<-Qpl+->IFP36qeXY$|%l%Z1EeX{c+O&ACp(p)190eY~ZEvmQ7W zGQ76`aP&&UjwL0-Lr)2@{H-v9?g8!HUjFO5EOf&--Uio5h#g;rNOn7e`Tbmyhgx{- z;E)iEZG7;h;QPDksg!Ez#d&Kn#QX z--4fto1$aEeCBVy8FpwC1H@C2$a{*T3?Y1F4s!@TCie{1_aXqS3C}=Ve0vc^nT6ko z_Q0$&kDveW1pbH&=VyG{ok7LfYbL>_#CdSL0VKb<(wswkZ~n5$%kkQR)1^>G_U(l$ zg*3%Q)5MvaIRWdj{*HpL4Vie!sb%1OkN)!;i{3~L60Z**3tm<(ug+V(5t;viI841q z1aZpqU#?SAJ`{yI=oJZFZj)X-d|S&RKmm^JpaoL00c(6gxmsO`f)6+!O z<#l20Mvk)&$PUeZcS+O|ISR0-lwY*RFe&d- zeuFhyX!-SG7<5A@KI^!A3rI>qf`vhNHDZ#0-_Vxl1jk3rqD&r1{CpSNCH2tiPeA#t zD#=_Xx=grYnqhSX^9f z5h>&mRPQh*2)Hu6T6tGn`1``E7&?}^QziV~mOb1e59VsjQ05%~LQI!%Vc7s^@lRNb zr@9S#7G|c>^Z4XTse7TP6~(2XF1&_4+{Lp88}9Mrdwk>{?A2buE%Og-OCl1}Y#lT8 z#_D1=cKgBlphCiT_6Nb)Txv$ssy2m(d$Od8)>7sQT=SDzw!1DnhprDt536DB#8_ST z2hprb_x`_m*VRP36Vsl&ex~RBn0JIhr-|Y(&p6W8ZUv4SAH9ax3H%8s_3nAP-e=?z zrox+EFI@76?|6YTqNN@l1w2f~Mkx2H|~Ggf6OjRwNT;Hdl8Q#%0! zl`zW?8tKLl&+|{BQ6D)~F6AdeUr%kEAGI3?aOMGwNt{e!R}Dq9U(l1<^%2>HzCCga z8+#FS&N2j7GuzJVnhj!kYV8th+xfc6Md;HWO&FLoa3z{*Uw&Gn%h4qLZ}K+c#BW$Q zA8kYIS@3;Vl-~RzGnzhz^Rlzq2q@Y}0W7#h%OpSx!)QJ#!doi1!M0=T87Wu1(tK$H?_-+* zih~eF5#;Urjs0L-EqEt}@>X;D(=s|f(Noe?UGra%AE7pK5{ES8Kd3o69GJ674Gq7` zh$sYYS3bVjwU8mG6!Mnc-lmq~|8jeEc%ID$FCo7NU%5?FPPY}9jBZ|MMZ9sRu zftMMUTv)SXLW4ke0k&^Hnymi=Lchw5&(^RVMZHsXsO3DzdB=A)kSqOH!eb)BG7qWP zLkLmQ$@+#BmugRAFH|f7XMl5Iy zTxUtBHKt3)(s(grBYd6XcI3wMuI;*cZ4(|ZvnTkeRA#ko#Ouq8SVs$iQ3!QE1#frP zBg~BNaqT+bXW>*C<=O(5H=72m#8S~XHP zdl=ek&5NsflVLRzGIqCgaKJ0D>DJy~H`nI&OpD&wq=geZ(^fs%Egrqf&D3=)CL+)s zhVwf%(soiD5A%KcbdG!d=XFU`+Xul>AA`dl_V`}mL-Gl&kbH*yvBgt*d|$n4aW>9- zYjIn+@p|9*XFZz=WsRlNIk?2RSGzRNTmZ51T0&Bb8f8el;>=G}@JTyEf3e|@pF_`n zn#2Q#fiOH-g6tm_rE+I+OQrl+w7tifyO~*86@{R8n1a`*$`ZMUsUf-G{3kzfGwb1m z=kD&OT)Dc}xo**2oC#kAY#=e=uY0moyC?F~b*wY%rIdS~oP0^)H*uUfe`4ePA$&Ak zxN4<5u~7^NBg6uIR0L!Pa3^&o(ysjA>518u+t!@LFI%37zHH#_*?mkN;~ydBZ-Y~4 zrNU&S@PZ*iK}qu2r9A50ks2lYx*F#3^qViqz;9XSF+(F1j(w*<;&(?lz6jO_RSX16mr;Hyc5gchmWt&>v(4ZtUWQBa(8&CL8q&2fZiDI#QH=r< z(w%ur~py+TMWoQY~J{Ed#@1_~M9u02|tAEqCQd4&+2w`~|?R?UCG{*cA zeiQ7UPgz-0o7mCOvO<=K*Bt%^69~7nox-B0kBU>Z`4~BwXkfE#-Kw#C+H5sofdRtr zU!Nz?uci2rM`Q@l*Howl7{I9t>LVtI9&e{-R3ScB)D(4GtY{14r|6rs)DNfBn_<}g z50b}#;wpM$*`|FQrMI)_5c=RBN_6#m|3I$AVDWRk<4D5WCx~r}uKHD^v?dOUOs{xr zn#qU+-+q}ZK2qS1K`O0(J9wSmY*_@C;K~Wn)YSTLf6v6f0}XhJ$uB;rnS+~C2$(5`!wdb;vOioPxHlfR9> znxCq|1I*#>y%k)q%&3mFs`z_UMW#*OD<}|SVT&K!H0#0}m2D~vuv@1j=ab4g;c730 zS=+F`zq%Lx8~$sIc{sgi68~s#1i!lPot<3-kbeq=Ta3uO{o5mbRZBEya{q2!=VXx% z4-7sV7V209*A>z3`QC-Wddg2DE4_yFn- zui-*6Ya&ILr~|(DiasP)&}V3!`l`vG0tRO7Nbu2hPy2(WBKgJvMyKM*hzKhkooOfr zkxlE?B>rG;1Y@b992Qz#TgIWaldhorG9A1GhOkZlUzjhGO3$7oW2% zf<9Ib1$?D8T)&02jotzglq+&;oSFJ0%=+=~{7nh&!eGrmAW;q%xa(@Iwv5qBvt=Ua zp{o@v{d*nWlz7>s^Vb3R_N_0bwBa56JEfA+1pFjfL?O*6qUs z_5Ev{D{KB&aR2m=xI%oSpIz{<#4>FrB^h~qILszIOJLCs<~UVHlPY+v6iUwtyK8RP zuErvySqi?f;yvBJbf?7Pt7)GlTC}E--Uw6DkuW*XYI0z{0}RT?zD6&Q3${x(j9rSg zahni3Z>1q4eAl^fJZkH_JUvXrdg4f`kDW7tZUg6?!lX}KA!-a z^%Lyo>Zv$l$~|moZ~PSoJPT4G?)k3ejzqMoaPf^$=kjk3uD4#VGQ?KyM}?kpV#IVL zi(kji-^~RRN~boa%dT?9BHpiYvq6R1PQQNCVv0lMXx~tzq})sUJjP-XVbo!^TFIo6 zA}yNus2q|W%Vao^5x^w9#*7a*NWf0ZP{Scl#+E`G>c(+4D9R`(i3{65+53pS``ypjy#k~R~_i4Gqxng(A4Jr?}!p}T^TU`Ea6%<43Z)lq+%e$rxy$!eEgF55yn^=OU@ zWF_^-3`Yp-*TjMB$L7>Ja+{JQk8ayvQ5cijs@?Z~=3${^{S^4!0ec5)fROPU*({m& zvaUEixj7OZ7e(zMtDm6O23mk1(3S3K+Ms>3dEwzZ5VA7tCOM@Cbf4+8VG|qPBtWd3 zu#?Apu898Qr<#g??JFzw=YVyn&grbmnqHcsAFRXkak{^kuQ_n}lN1Mo*~fX5Ai>rB z^5}bYR{md@ynGeNS@uc~S4$H9&OMpZH~Z$1dwv@-(=9fIrk;7r@3Kp@&vmw`M@)@| zJm#NO7uj&UEmDxW1~MQ2oNE*fv>6qhLTM0G+KsaxwEOiC_RY<;NT~U5+s}0mw7<-k zZCqBO%~@!Ny{EQtVg2H?5t822UHHzRNi z3xeh$h-O&F#OWMRh^J$1p%g)dv<8Mc6nx=V%kyEqHD33lisiJYsAY#OR#NaU0W-Vd zC};2`5hX)2a}EwHyuOtHI+^ck_oGB`Kiz3RxTZ&Dn()k$N^W+F+c@(J!V_y(i`U~v z$#t@0bt4dFv(B{t;SIgqW3M3|0bRIUkNOnTC!7|~>B=|wT0&rpju*;3zU#W*%i;sq zIpRLk&Y~vjmmb?v%DL%F>MwQ#Om4#%uF_8Gzq^)kFVBbn_vP!ue8S!E5;(V@Df#Bt zr>t_5gf9pMavy~g?$ZwYp+?iY{QAr1JtRF@AAZHyQ&qef;S$zG_pb;yk@pROkCk4k z88X4lPkOL)Q-}d8tE;QpDfY5GY@Ru!x$8$lL@V}Sx&MAT@3^NXFpl}H2{z7HHpUhB z*~r(oe!f#UHseX_nw!?$e<^1lb$sJ)Q0sBJsOG9S^yb9rBod%$@4U!chdGA9SgKj!KkcM@RV`eLzPE z{?oK&>pxAG;{O5e{{YYb0o(t8c$N|QSgsSI%7mij4hwT6%KD=C!L5Ee1RMBWdR@lE3FaA}^lBUz-qo2F4Z>m=) zqAIB_HYb0epT5}r7m%+1m#Hi{j=G8vg?MWAy7|48g=*BP~+)#df_kMWJ0suJ&CV{FLvQgsR;A#Ww|b!?&~q^w#*N zi&sJ3bR{rdfz2Glw}dlCg7s&L^AfLLf0L_ggMSza=_5b1;Q<%n3~}oLRuf$=M$zFX zwv-FDzvRIvWdq7B%JS7^NAh&M_786gC2(<^l!a1<8%`UpUag9;9{~9X%1C0rPucq6 zwAKUJ?HCB6FKWods_cmmrREDndg)v{hy8_WAATwAT~z=oTtIdBVt;$x6%?QjA>VV@ zPA)%?Y#$LaMmxTgCYq%vSJ?2ldUQzt ze~83C0scQk@PESp5QTq&)c+99{|Wy?#QzDcJ!YVnSG%`ulS_}V-WSfP9Vynt?cCH( zkbfnarD&+&wwBA8J?wV?w5l?wcM^{WV0WK&U}K~o;y>&Bb)NyxN4H;Txr>_%&1Hw~ zwjZZLh^09IKL8mjKtG0H$+&EIeJk7`z;%X6T!ijHKaE4cJp6PQDu9A`!;UOhmugPIv<^m zJ$X8A`@2xUXARcX>o>geXEwYZMrLm4A1SW7y_f&qJ%!qyGS=e*p3yAp8%24atpn_k2`9Op__pw5}AG)Xn#FG`qW-G=D_~ z)1#Zc02uY(kb*GzH>AM-jb(t{|Hhi&$bW$TKcMv=u(tCLi1`QD`~xok2kfpgq7%Vh zgWch(@e1H!lBrDb$POf01W;Gr1+;;Z?e(~`R^)v9U`E_7b$a6th zxhdA!U5yIjaxEi;&+lnp-fAI8L9@LU05oVTWJIC zo56GE6bV70BoTszSjvSu+YAfQDhH=%S+} zfaZthMzj?rWH>dM_2efMv#I{hWl+;ZhSKtomOsJ=>1VIsj}t{4d3IhR#J;H#rS$g* z9WI?qe2&|pTP}1C=W&euKE>g(KBwH`e~p66Xti=igq#tS&k$Iu5kDI!H)t~{@meFR;7-o}V5-&4=IUb)^f89Y56soh zNVRH4)PXZfmYs$1Q$PYJyl=R1ucR2} zCl7$rj^gn_p2QEdUGSA001>#z2EqdC45TA&ydr_v-V;3JEeY7VutOlG^3GNToQKtA zF|XTC9p8O(`4*VAnIyC?+*Zwq%?!`;cp-AVctpJ{@%yNib$^vqZ0L-%ZT=gBaYUg6 zU%~Z``7}!CH0x#;$bbXTeY(`GKRm|eo3FHO>XJMrZd57ozO;%inNQ1zpT6h5 zwQ5v}^9GDQbrZCxs;XL8hwcnZS5O$ljQm1~hqz3yNK@dhyYS+reI>qmTa>HXLzvvu z@WBb=g4J{r5r4*dO!hov@`FMVqiWD7S%3^05NjV9p?I zJPP|zdTdOH6c&rIL%G@Vo=Nd-yaj+IUw1ODGBe3G#-n%5Ci)Eqh}}v(=T~B?q5WX( zhVQ%t7O)e(k!&*27Z4li=SwPK^D>lw2e!gR}slJYw-ffiFjel^9&d>oCV{H z9O1~TT?8|K{_%e_eRW(^&-XsCG}6*72uP!JD@ZBburx?_FC7AcAV`;lbnFrmOC#OQ z(jCImups^0x1ZnlpPkptIcLr@uRC|{y*qQB6ChvdM2KRl*<-NJs)di_R2<=qh3OzU zv)P~daT|PpnKvJO3+M9Po*Bh>ztbp}$(x9O{mEpSrzSI1&b>vuZs2=6hA}=(2LaYD zB;7&jRSBEyD%e5%9e!Qr#e8C?0YDf)&r-H;*I!kT*vuYfUF|FRhq;-<;+`7NUKlM; zL(X4%$Ys9}kFh|%2c~%(hF6uE*wueJ3bhq6fw+L2P%H^%;rAA92y>!1c1R<}Ij^Z^ zgpYzsiEFX+Pb1!B($(PN=zwW)>!4kf8P8ttjRfyks!de4lDi_2(wsJ0R_%F14y zidg0N-z`vQKbL@L*pS3a3FI0Xj=CBt2iX27Pn8>rVWsjfWHmS!TJW?|Eh^#f_wQGm zheO{&zRhn;5kuH9%$y_Ieo&l?t>8f3WH%^cXt)Qu;DeZ~6{xr&jkRfp#lS>~hwTd;@!NkuH` zw{0H5`7+Uh9F^TZhfX;D6Nlf!?FIz|z(#MtPV8Y+p0U*Y{=2ocLzq3;`zb}8T7dpf z%kD$0v$lBVxw>>%fU_WTJB)@H zZZJ}jW8FJNy)XE=X>8@PxxJMob)FqU8hxG42N|xo-idklCGI>E^Bel7)%@Mwhq(i!1Oew(zELxC-4oAu|Vnix7Pi;oaFi1CRXpIn(}gt14iNpi`DH z#RefZ9r|F@w(dnvxlG`9r~wgX%DGu|Fmb``TM1F%^=-qTyhfo%0?;+HLLqe9GeYs{ zB?ATbcjgoPSOHWf7^Dsc_BV9X!Xv zhl_-9X;Tzh^UOEe{Ok!~UHKm#L5#0hsNYOZLCkzH|KX&=lE*pyg8{MZ)W?tjbvckw zI)p?u!7(--E4}_q^JqL60C~gy5Esnh^OKq&`&&VKHllTeu6dIiNcHXC09nl>aD6Ys zU!TXFCui(w^KXMo~ zqrT|8#nNwmoW1l@?S!xKbmC~Vp)GqPnC1^=fnEA=cQ>feHu~Tbz3Y42kl=xOJzRW?29 zK~5)b{fZ(TLEGby^e8(VIqjf_`CL<*yPJBlf^#_A!~LR=#tlLX>Cs;KXIuc~5adYm zn3Czs^d2kP4Z{62otAB376Ywy;9#~KoTwxF{guH)T)9hEM zWP{)H{G+>Gy55GF1+|e#(C1_}9i7okAF_!AXyMD^WT)>Xb9cHun{*YI(E8NU?SLb3L5n*Ak_ypL9m_Uu4zW?f7 z^?oyn{~`rp9OFmEZu8r3-8vVBF<4n?{r4z)e8!%GdoWV7F1k|BAx7CK7$cYcw@L1q zUt7n(_3GhW?7~9}R4I)chjsz}K?-tF)a$=jXR!W$ZbBsqY}Hdob9EaHxenZE?=9*j z3u4=^RE%_$AKyjb=fWI=tU0pw_GV3lE2(A#$dm-yh!LTvBI{Y&hmRkBtQ~d+{cTsz zZ*cRwYYaf3u149)=jdg(E0xBi2GjdX@)ZY|__^q1q40lU=&69E^T$y_%C(Ej>8hru zi`D%Y$Huq`dv>1{=p`ZdT4HlD9kBPjq)l8<`?v~VD$|P<8scVq5z3Int03fmdlp!G_N)#{3<6H2kDco}qS*OF{Z| z7!CwC<6*H=SSC3W_tuQ3URm=<>j#R4)c1+71_I$PN6r8|^s)%OLb z;C?u*cVAm2)QQS*xQ5^fYP+JHX~i%y*|LKdqelhE^oyOzR(};mtGYz;Qf!2!)7A;;rfRR(-i6juwqb77Q=YL?MJ% z1@if)7in$)Ed)QBKew|f`g)yXeYT>N=mT4WsqFWbwVEvih?3x|j@rx9E02=sw*7fc zdybba&4v)ow~KE!+kM+8Lms|TLRbuvo(&V|zC9L}n#(N58RzOZkQ_*If945`G1;`Dnqz(u8rmpf=l zcH+x9=<^!<)p`tX$EP_q<8;o_uL}mLQy3fBja#Yd! zY@Tqg&T`nvX7L>==pHF}H%XCS-71g3_L6v=^u9WTP{6fUipXCXAYuwg@9Gj;P0GY) z!!kU5ApTKp?FSc`b?^_#Tb;Ex0oQp`boS^YswFKqLTa6sMabRKyj4(e}-Uz-&ba!=UF??`VF# zkc&Wa>X~=K{Vne{Bc`eMz0e^avBf>rI&GciurjZBQ2K5{6sBhIKjbxcnxBDCO>W4L z+jiE9o5l%5*DJ&RID9@t1)+*2njPFnlDRE2-!r1@VB^QKgp!wDxRGX8XNZdL+WABk3Tyl zWsYBxh<_s~MVPa)O!c?fuf7&!4b543=X;6|D$myDYd5eDmNi(&!k%Yn{{g?yO5$Q~ zcvSJ`C-hBT=pSY~S-B?kx4D{8B_UJ}MM~CX8o}6-Rfe(4nklK_uPS zd{XnFQ;*s!@b19LFa|$C;bA1uq1xjc8QW8exN@kDJL8wz42jWvx~BeOvII>o*p|;a zJ?9&k>=D}WV1)nSM#jRcb#}YQEw-^J9PZ9Gao2B%Tiau?@r$R4PuKIzoqAr2$>UUi zv4YnHh)UYF39|_{SuUXUs|+H59;HuU_(SNM>xWP$&P%NL*c*UNsL0>}Axp3E82S8D zGpP^M8F@!auE5UcnZK@U zs0v~|KF5w|CPFGma}F{z*-9VRI`wYySSUZcj*w1x?gORlQJVAMe0A)O6P+{ygxvws zj_&|Vy3c*S+=mX!WLqJygoc@$|L!&~xZljW%zCVzV=o1il*Q-~jZ=TUuLMgJM0wQT zarBZvHZ5sr%FCGJ=A7(6EuJT^#!MZieWMc;72Fbf zz$~_b7liCJ4+?;sCcI*mZ$RQkteXm0AmlYQhcl+ph}%5 z+);TG6x!Lm#bww@z%g=`rQh)e*^=LRJMTEJL?OsNS;&tD-|a=bIfId+FX$PNwY$)f zuA2HVK4!jGs0rV`ut+-W?A=_H!o1R{O>KS}K#;f{;RN2XBGf%rzdR1e|{Nz?EBJNsM#U zc?)e#3m2*1bNaZq7tWYpx7j48kl`9{C6w-;{@!Qo8u&7h1jZS$YPpk3Sl1`WJkyQ| zEXuULR0BdH9-xU!IwY`)h#y8r4`P}L_QR}hZPXFtamgT)WolSur<9r#xKXFXfj=tG zhAtGpi6HzGny5Mc&3G%5^p=3swJo@5*G1d!_BpE?9qNV$Gu~_>?m!_6_$On4^Y*>t z?3>b`jB($aOaPmE@?#M3M$mQ7tqmB9DItNr#R=>~wjU2jC6CX7c-Dm8_XgYWF`JZ}-U+3yuSRd&X=8b?^phRMl*9HCxTS z5Nc&vUih-$13!T{+M396|DUE0%mnbH`#X~q}m)*o(wsyNXVGg)~*$F z6i9q}J7v|0c>_tnwL}d&MyrhcxycQsw@81;6r)0uL`{@*G%D>$nDv%WI3IG&bEYeSwvCS8Grk0M-$oJyZ9ie->m zaW``%R7{mudia;1j#M?yW2Y9;{$f5=IZS1}sKwAXG0)u$gLML}zVDL1=b9O#EDMe< zR}P)`X8Y^)Qtac%qQ)Ty9(E)3z{}w&&xn&TB|`a zNhVd|w|+Js+1@R=9QBSw51BP}gGG5^cr!n7U%FxX#yt=V*q#W zTnz;SkKWBJVAZ_bmsp45BTVk|ivlrc5-W4-n*J62h9FL_7w90#Ug>WMRlI!K3SH!9 zvCly1+q=NEQz-5*XT!&(dVa5>-) zd#O;l!0#glVgAD)54ivJ34dAvuCr#43c6P?g8ev#`p8)g zdE!PcW_4KY*9uV0qDi;xeZnxWFT}E(Db{et_SW<1LU;PhmhY}*k2AY4?KUm*t;@kK zh`w9UrA2$g7Zh=U_so4}fn<(A&*if*x$Sb3G?RAxNF3o=OTTV)Q6lqIQ$WsTGn9V( z7|X-!lUMc{jxoPpS+RLxReasi;6X98)Y88uY9-tmYLRB;&!JJ7xjWMd=*W|I_v55scyL8vc}L+i~@_ zGzl~BC)C1RpA9)JaqTt>UX2Ho&IcL8qPDFf;n=6MhF2Aifg1}!nc+kS&qIM8c14Zd zx=+6eD);v-3p^a`Jv}`^nWnQFk~8WmC$&0La5|f}L0o@^3F0qtWDdcGFrEidpX(>>(6^J^$2P~kTK-kq>#~F-3od!y+D+^K@#`L= zTqd*rOCeX%6NHcQtG-}KC3Sq^ijVzF1976?t*kt+;5bhb6a`c6rD4Z4Wy3alXGr6o zF+p+3{78Sat9mlT8}IdJZv~hAy9m(lycow2a?zgi+e=rO*SF$DL45?-fPB@(M!?b> ziY3+<+030E?>s6>^63~|S$Zygna&A{N%I@i;h%=}K=#ik%NeI6oNqY}w@0JmMJ4B? zP9#`u)4}8=H##n;zQfG3+J;6>Mq|6y`t|_t*xPk&eUtDefQMh5;+P`Su;6Uj9(hSN zP~^!g@a_KNW_L;eneYDCl;o;H-go)uFd=+xmPpwZGVQJwtAx4KUiYJR7w);)Sg-ge zd6&TLDqdqp@hgHlz;zXKkG!3Z6mQ1S$?F-Y%aG=Iy?_bGKH_hANiSD! zMD5jZdH$=B>>0P=oEzc;pyv;@hnBaz2z$ zCL0twsrwu;8G8kfBC<<1EpM1nemS!9FmQK!22rnuaF>>v6pf z{hC@FN~^qi`(<2bzEvdB0pLJz<^UB8^Ow*}=s{@ZR^(9;^Mk=F-_ack0w2ECKw3TU zEP-Vk--~H)PL+VtHcjV0tckYlNx5PJRW@%ix>Fjn$hOKY8q+M%vfLiNZ;0UpAg?Y0 zw|lfHsMmET?JTvEOdPjpz|G12v|@zfCkxp04Uhq~J;u$6YUae82e7~bUgHBY>;;^} zcocCAJ^!?~dknt%n?5ZEUV9BRB_1SO5=t!$*Cm0SP=Zflw#zkpzmX43{-_iOKWO2K z4Xqhp%2Rf>KmNRJH3q%8>^=VytokKu*q?GqOmKoYi3457NsB3d>pG+|-5$PHNVb`( zJes((@$v(MR7_fA)+6Yt`=#&TqDg}(B`m(*G;SFSNap!Nokqro@TTVINP*v{~$h~O}yaVAq>%A4tevwd7c@X6x z0q!TP0jeRjVyodLm`cf~xj48(u=@x;wICb+3n9!tZH8nK2+g~g!T8QQvkw`BILRQ zJ>i5VIcHdKthIbj7cZdT8-BN)s#QX>QNzwvLSXOxsg7_LD+e%8(0wGeDxqq0>GUaq zVoVddQ@Gg?RXD8X8tdUfRd@!IyK@hQEjpYLll z2;BUoFM9W&%ke~?7-ue8lT4_r4>HTRUPOUOl6C7CW9J_sFqu*cbaz3g#X`)vgp;;> z&Z#jn_iFsx*{+_88!GGn$U zVSk(RB{Aezqup@3iv(=U=pH3yMmt$rWmMG6`J}#?nm9=%BN;`m%}&&w z&v+yxj6~v!ArVBIopE?iC~QQuP2F*$AB?_PHmamiW!iO|w6$L#BqI#o4Q;SC4}7at!}#MoBv_RaQ75%c`Rxc>EM0gV1S(`$P@sjzM<;zxnfS)O z4&ukY-CzBH4g-$rZ>HA~Iaj=o%~2;Dc!KV@}$NZuTB{vNYENs%6 z6@MMpFfx8C)IHww#Pk%f-b2bPp_ae*XI#&NOYMYSz-cxV8u)QjJR5h@NB~wEm{awM ziv=;CxnhCv`y#Ucy0xR67>~QA^G(13!0w z!`g{yQ?-umQRUdek#vts4lb`qh_;mG${vKaXFNgC%`2Vwetd!=22Tua{Dt%a=E$}Qt*A;3)Y&$46L(eMkf09y4P``! zLM{T?qfQJQr(Rj!f-kqI_D;a5r4VRE8%}3zU}6B{Zbq^x zoC~ad0@kI>Uu)!<$T7jRUbuz%G`S;`MKHpfKhyF334D7qxAdtP<&9*7Vd)n$Ct|5+ zu>#6aFtn8-OlB9QBYfSYU8LS@@t0~l{8w{c+j8BcK4Xx4-#O z65^}8X|Kg+kk&K$k(Lfj(3`T6+NpQ@i64r5gSWF!%#1VK-Kao$v+>@7ncab#H?VZs zyGQ9IcGFbDC4UT@xw%-vPhBO4M4LnTTDDh!dQo$U;M0Im&%D=Xps=fyFuG96U`osa zf9FT4`oh_KJu(OX3^_EjWZJxX>S%Xx!n*5Z)lSALi{> zVz8Ka$qy45ACKHo{)p)f-#uaR_5DF1Gll$e;`}7$9%}x3O-v6eVzjKKZIM%Pry!2J z1>C@7M9OZ@r!D>zW5J??oXu!xV)*#M)jz~Xrdt_Kr;D#MGoP1NFKvNfX3220KwUok z_)EsP!3(tMOM?opg7^tz|bc zuYF!R_i)7_d6A0wJ=E(J_Dk#GkIXD&9vDj#PLJ%+;Pa}6_-H%X1)0=o0sj?GI^|yI z>a%y&g`W1HG^riuWPexkPm4Vx<~9q#OxEtzFvw?j)-Eyq-8*8{>^v)}4z>|aBp;K&U zBe3Lhb8gcrT|I=93;s2p1m;Mgm+B?I>I{~w%xbgu2k)O<7K#8*PBt?iJAN4L=ivKGyQQ== z)k=h~q&g4^Be4*AdgP#vBoBDGTUb~G)UrK+bDN|VM-jT6AC25{uA0VtO`XXj;akQ) zpXI_6StGZ$URe-wb6Lo|slXX5o&}Y3zysTj6BJIbrYV^>aUeln`7Ff1XZ~8LjSmNH zf;g}d0+ZOo0;Xkli{;V>`pE&CRnQ+8?+nmq4T_y^&#G#u%e%*(dp=DO+bvPzs=uPy z19>9{Zk_WSW;Y3)3RJFe0(=nc{Pm6ccK$*4<2wsXcciJ!=Rx`W_U*P zR$M+)btD}c)mq}Wd%yD%IrvxASU2w1qoYI`;m42`%mSd=x68#(oNxQP<>ugw*q(i7 zpq0k&bI32A}9_Uq>=~87aXLhsa$6l$bjMiZFH6mQ{DkIsLSnt-P1dtnaOs zAiN2g1FWt+ZII2jgEb&>wc?d2HTrRTRR`zA8u1*S*UBWb`^eh&Hz&{8l5t8J{-ION z!h0MS9>4Dq3PF)By25$x=b`@mNzOdL>oB!MXnOy8A$l*hq%Y;ReJp3oyOXx?&{P-9 z%~#3CF0Ee4jMbfOc2VAaTQxzTUzxSTGLL$89~L2|8UqLF4p~!)8F{2z?a(HFbct_$ zYeqnQFvk*#i@64e|u}b2VzYAzS|FW-8s0a+(gV2LYfCt2H^2cYUhnJf zz^<^lurb_Px#1y7l)an1h+klodjZ_uWvahk=Ora5Rh;_|33IQJM}9e95HMMlH_=jq*TX_PY8#q|Q zY-PV@2QBGKYXJBucyPt#=8@A$@99&z^nBGspjYfB9lu2+DlE3kc>Vjp-V?(QAiTMZ z>yE)U8k=^`O9#7&309qZ+#vxKLaRof_2MEj$b|Qrqj3qp9p%&EqMgImYdUk0fG!p* z$)PEG7)!I!qK0Dnx#J(o@O_4>ig4i?Wy0C91$vSy()F3W&Ct-rLOEfAVRVFL;8?QP z^X9pV2%u}gJZaI+hF@G}Fn!c1M81l|lu@B8 zH!tX#t9~V)Fmit|XAC%MAnkCk5}O{8UKZ+hC4<7$HVyj=*(w9Oyok_mKaY(!H)<-sp`|w%97Im& zetaoo^TjSU_lJ~C4kdTzm<7K1$P?q%zsFS;7mK{>wK|D+ zlXOaI+Uo!}JddPdIyq1`R%5+_-Xg#4RKE!$#L}CNQI>?EY))%WvyTU>X(+NO0zcct zz$z=CH!vDYD|C6wO*p5 z(Z%`~fR{|nF6o+kKk5^b(F&J!WWUOMUwt5M_)b5plOUURaM(8?%?T#=ay{0Eb!NLp2`|47)=J4aNdn@JYDLH`ndkPC)PSQP`~G<@YDh zA>pA4ad1d5XfE*_i?V@6Wa_bVKO`5uH}el+HtOGfcI18tT9BCXW9Q36i5Fz`@Q{q5 zfhm4Rixu1eRNDg%&jG`ye&{9;5)J<2(B%-4fd=L@q4~qw_pp5JX9NEAl*#cSgI2b` z;;W+8TMliNqLtr~GG?UbuVqTzi*<+i4yktCXWLls-c)}cNEdNCW^5P4mXO3lOL<%R zx_g;RjoHfy$3k{CVN&adQHO29qKhN|Z4@*O2n;YWchPu!g$&=~ROQQN zFp?i$OrMg&JS;>en}T}v2Qk>5Tq|h@#F|(1M@N!%;L4+PaFqSHdwvkWN4?g(L}pg1 z@uyN0y)lnQ2nEe9A+ynK=!tl3@uXol!9L*tEBN4vXiW?ksJ4{d(W|Bq3g6GVX#A_B z4Gxudecd+hu5>ZYPOJM_jQ-<#CR*qi#yyLL^Bg8j90oPPLd(HIS)U~ddS2|Zn(k5g z`@oT$qu6;dFt;SJ2XT)Nru`fL+sItjh%9Db7sxwb8jFk;6~<+AQInlzArd9m#r{P+ zNqKd#Tk`j&6V5ne4e;4Jv8Lo5Fp9V9Y~_m6n;?l4d!4$tiZ?v>EbK^1YO}bB^|0~B zFaGKAod@(!f`A2w>KM8@Cp^+frFBEB{7PMgZqASl4owWq>yQ{bfnP5fBk%7+lhnRm za_aqAl$9n3OuuDAME&+Sa?S0XE}}J{q|Z`T!SQXPYXrci9`y3&YAL;OlSeV39dX)< zj&+l#yR@L3_jykf_U1aWEVdstxokdNc&Iz*l>0$>Z?pTMx-#rlW7)x;aZS%i@)o9eYSD# z>U*f{yGweWX!3W_awj_kXXDi^7jBPu*zTFXVC;DNNvrHRsR|vnhbTyC3BW2(nPlUW6ZRXSSyBSrW0|An(b0 zhqaEHwTTIw`IA7$#GqjF4s$(A55)0~(=Ejnjdwn0)mNuY0-i_F566wTAEt^cSvNE! z+v77|Fa6@?cLzK5JY9ce>!GMV09IrtJM|pqUAFZeCAoaK)WBIYLIf?-lo4umGzR%} znBVPN_Qesn)y!QMjgfdu*rjN^u~`jr<{bygG3-iW-7f?=R}2lYrY22LN_kM%yNik^ zDK7DF-)r^8b7rVKoSYc1w#M$+ITU<5xoZ^rHSWbI&y-vDlo%XDCoC>hMS&CN#(CkL zN&d-fg-oE?ImKbmU0TR>GJZ1U!?ddNLa^vQ_ulRP9#Ga%E;t7sQR(mmX%XK6N|Sz5 zO8SlP(iF<|ssz9K;{F22JVi3?khSgCn6*+1}WM@%&Hqj*K>PNsVa)uBUOZUFw>S0~cY04G)Cg3(U04y^5x)kCra z5_Kd8RILC-a$RxG(iLb9BrvBa?a4iycvc-6l6^hla$8ixqY%P;b>25pmz^RoHPNsxgHptNG+--B&9CCatp_u6f7OBKkFFDZvDP zx+GDagC%qMvlxS3#X+Q3G$-oB^ysdg(v?+GD_qx9d3lg0%U(qp0>Pv>KYhHwhCHkM z$%{bb>BKeLJbNeQSKJ5cHs0rKG$3GRX5m2BD zaUV)tJ8K547&22It=EHzaf1n!}IT{Y}_ghQtq?>7{M~ zRT1s$XyzZM{ZWz18s19rsl?$E6BfHszFy7FH|4#~9Te{Rcvt?rUO@mE4! zsm)w->m=wUBJvdyf2e!CU_2mYhK8pLIRyZ;k-K9zOCnRNpCjP}&1og|R!c|wmf2g6(Ga>}q znl4Q^|G)@aB3&fI$^Us?iTMX(=^rL9@qg;a|6K)kSkC`Ofal+hatiA9im0La&wSOD zaEz1#fQa-L93xD}{k7)GaC;lqc46WMb5`dLKCEre*1 zeX5UKga3Q>Z$5y}$b|n%+XZuzd89)S?hzX1@cG*c+fd8omHCRmvEEk{?qf;3kY9I4 zU=rCSm%oKT=>*Efpzf0G+t8kbz;0@E32qo6OXML9i0Jg|e?r5xQ-k<%fZZP&uuP{1 z?TL=v0gV*zUF4U1zravSg2FPFzXgXhtdYBjmkYulpN+zYYhBVQGhupGYkd3y5Xexw zxrMEXX;NT!&qQlG&;JZ%ukcA_FK&zfGn`uk8I3ux{Z}gdS2pk-8!xOWKXWo&_NU!5 zmiv6@Vn=k^UJ2`&xHV!Jc+|D9eW)VDfpjz8NdMR3HUbm4Y%FG6w~WuvEPkA0tL;cZ z`d1U(mC3v{${qaAz(hLjp$h3gi0RG<3H(9xs*wcgKjqNnB@(#9f9^)%!v8aLu@2@$ z0$&?^oTDc?jupp2EALtNvThf_`yOwH!2dRerWAK-*t;9vT<;uSD7%TUCoxI0ZhPdl zMc5C5RshcU2Py069h_9_#YPP(0G6Doa@bGR*h66n^52q}rDe13Y;UKiGIk+@cxsU$ ze<|Us!@TVsyM727d4-xy-+IT{h6>EF@&?i78mttFrDodZwx$pPBd7HF^E}dI(8`2P z@3fPH=k(N~>8j#sy--Id=k<=BdFck$;tXitf9O)tG>FC?F_eQ7sFCjumNmfhPNBUh#8-s(kKq);u;A;LXAx}R;v!X@P={KWC(qm@cdKOcoEL`baOl>SXs4s7L( z$dO&Ke)N{;lKK~|2F~wE2!L9s_}a=sFZJaWxA?o@reM21lef! zidqEOxcBo}wCXM3DLYYDkObCl2=RNWhg$?m@<65t0em`=_*r_MhrrzemV|P>Lb}d!)0O(L8Mv%70**i2nVu z{{Xx%6 z)qw=wyP-y8VyM@$ieV2J3uY!EuXC-N8`{)9(D`Sk!ZwnaO~%6$?vAzMQo=%LXHJmn(jE5BUzz8=zGjNld0~(%hA?h-dLI zV;E!QJ}9?rxoVD5E=qY(cg5mEpxzpfA}xndK7P|ofEE-=B-=>6#JHb4=L;X;O1Q^m zqWST&w15sY{Mond5tGTeyLJbq-oqAg+foUWWUSO%Y~RY5dNIw+leWu=pznj!)oB2`d59@wX@VjHCWZI+?7Ff6GmIDltMi%V9JU-GoQ2ODw()$dIR?W5 z^`A0}L6SatZME5qBH9ovW(2MzVU@`^AgHj+WDsHCCt-{gxm=u%p`amL9Ujv#$H(V> z6j_9GiW}bq`@mGFUe0HfwDG0{2A`)qla}YJafAFMdTq?bzr=i!^afELR-Cxtxw!RW z-{gyjG5AFr`FzzYXH!#|l1orvaqeHyHhBEzTeJRa23nZzumbN?8YQ?4xzP) z;Q#GVQwua-SU3DQ=`n|A)pij0@x(~fSg}kS!YkkUdNz{-B28+dr$=0E<)s6OwG+Ao zp`qWu^_AQc>NWQx*mi=x6i7E}#@9LYa{1tP%9q(VbEtmO5)XstW(+*Fbe`ud*qwqD z_tfM%%z9R+Eupy;wME+gYa1JW4;$FO9acOIK-?5rni|%u*@0AC$qKREw&mK$EN5w@ z4LF0?ZS)}_49q4v#R$U&IL4A=8+uNW96y9~#)3y=V4qROK$23s33rbI1-D0ByVH9IjwYrsp&jBeO zct2x@$v*LFtzg+ALrNd(za_!kRSW9|9#`P_fro+g@2X!*A}?10FZU|J;VCb#{;$4c zBQ_Zs9>6l?M1r9f7amRcJ4v@hQP<6U>hm`DA-!&IV?axRB!PMxxyW3_iI;*vS&RER z3wHYEpV^suVm%morrXWl-JDSb>;umbSy~94s7jfCkblcOpG2UQ(itDeJhkrRx?@qa zgyTABw81+vMAe~Uv(!SYx{;;BVi_*E{m{&pWS&vux1yO%r>*`BFghP!=4)GhlOY@2 zA@oT?98*$}!D{`J2!Y};hLYy%QPZT7Y)qExBpW;9O^#xlrO2h@Y}K%BzCSJ-~J?7I@+@QG&l3!a1N8@T_Pd|Mn-kaTvn*X6XEEo$tJ!EiH25ydLv=;lw$D3As4u z?{E%#IoplFh6h1y?56El^NGUMMdmgZxI4q*CRKJ*I&^J3GI;#$;J@0~R0ipm&5vH@ zJQQGdU5My_M-{%&CIUnj@f=Uj8iMBiaYZuL9e@1C?_+s5;pgS&hQBd&fnWO`?|yn| zm2FO{d>FPj()q*64mTb+^EdyxA3oLrlKlGZ_$36($1exP`@RC!{r8W_xv~^trA6%i zAZ!Qfey95R{@c5v=8~*i=K1}b6qmERxtbpIx#-&V(ew6{ECVJVib{AS`%)YdiBsgE zEH8!rj}Jno;JoI|GQml5a;?@?84&mQ$NN1MQB-T$1-G`jta^=w>m@_T&2_ceW=Ae| zbCQ$@4y#Yqcyr>8+y}?j+552@LhY(@GMi6fy9n0!hxtypFGuV5J&78gl}>nstI3-P z7@Tqa)7)!jlf4Hvb(fNOji4Z6e2%$zY)gYom{HTN%pWgrdi+$nm0u;tnFn5tg)lhN zx-J-zDeUMaTV?*=h6nsa_>&mX2KuN&yh9s_NzKccxo8*-Bjb3z$;mH)7Qvo(sYguK zT9f$JReMp`!8JagI^sypQJxIR4V{MqdAclQ3pXnk0GHM8^jBY7C29NK3+YJsK_@u#JD9XSIPJOjDA+R z%>H<{IM`f9f4m2sX>T_2MS#17C;SJ66|}FSjJ|h(z4-$qb>r6Q)`O+{*r?G1u_$(3 zh4U0xk-Jm1^>ktc9~?OT_`45A3-jeJ-BDh#l25~bKkK7=>~awi2k>!6>Th*UYX|?v z5J(+D5&u-}NDP$KN)ol&t9+mCAc#yi^CUyjB+-4AT^j!9;8_2u+D|ZA9+}27Fwo=t zx)z8xszi2;Q(;SFl~Uc-YRzt&OxavyF(v$&EICoI-oip4lQ$2e>}!@~CH6iRA$<>D z`rMU@imEDJ+NQ|@1uS|(a{XN7)KY%pV%rX)7dlMZ`AxB0<8V`ofSs$KwjI4c^ur&& zE`6~yEbndnX+y>)S6{S2o$1#@W15GpRu+ZY!(_I)zi)Su`POa(W60mrpq2WCcDRgL z)3)_R{5k-&QHcedfkbywj_hbqCRuZyy4{dbwY7b4vZGEHR9*GOGPgVc@XDPQs~{{M zU_K5|Q#UDjz0Wo5!BkvbkZH>yX`x0CAy&e$K5=7wEJEb2Is=pdZ9O=ctfNoe->uCt zKrX2jhZxg$h_YrlUg8w7Dkx}7u6T3N^aOgpPyE%KXZStxxcQCvk`*Z?ND^-03dQ_8 z85`5X9y^aGMhSs|zv!hl)*zqF&g%-CJq}AW>!&7IWRQK|Z0oH|M{|-D5eZs_GS8VY zs(Cex-C8?ypL~?}(Z3={0J1m&9ggN!77MSV_c0*aWwzyq+jMvK8nXh2vG0A}?RH&& z4z$)!+sENEEW;km{j;A*I7-urUX?bK`M7JGQTwb(Z%{&fEG%X|H$%Bu4A@O*XutHs zBwG;u6{@P*Qa%-W_JC6VxX^B_1xRmsv7iq|U$B3heH=_r6r|&ovHp7Q$Xd7V5kSrw5PqSL zFENF{eR>m0SNHHxs@|o~pAb0UrUfzk>{kRg>F>0xF!cOK^Qg45rT9|jSgu>!)VwuKi}u~*IxI;z31+I?zwr+ zS+@sh%n}{-#g%w8Vb82uvBlZH_*G1|!S!XAKF;pzD+?(T^KpZ@5k?2sa}IHmnYT2H z%%hXPj#0cv+Xt+pYPmN4-$5?a(Bdm)HV0-_c?};qKeQv z-FEQ*6`_hyqS9sA&t{>W=aifOoJ_I*uc#cTKxP#}kl^tCt)SpEVp*gUe!qINWTe|J zjXAcbvjd{ff)AgRF6W?7jU;oJr#Y%YO8s7?IN!*wO;c=6kUz=_M)m3Sk6w&n+o?jNs9yg( z`;rz<>qfqUd|S^>RZ0GXg?%hx+jvFO&rNwOoc$Sjka`;3Qc_#YoAy|_y=>CmbrwU{ zrwbtrfkEi|cBkfd-ej+R2agV8OIMV zLrS*rvm5xJfpxn)nVFgWGM2EfwMDjdbUP+`mXQ3nyAZQ6V0BAZwNz>n8x9*b65PX%{S=P*)%n+9spmRNB5$Td)3&o+o;C_ zNTFZd*3cY|ZPcRyB;S*Pp;kt`G;Wjm*ku}MF&~>&HFLF;?ii9L6_K>wr$E&auWO#H z_cTq%iC5|?m>?1d$hlI}E^lLBgBdyteLt8g)K!hdu-_2|=!I*BIHkT(YNv762SA^wmA(P4l=EWh~-{5|HZWam%|-OeBgGO*L^x z6B;oq%xTW>c^WT%*zG#*M>ZVab>l4hQp5VO#RrCCoE|uq1Z!#;y3aq@&L6{_n1D)4 zr~n+oc-)U+UszZ2WE+^|NVREWuevQ^WgLGgxB_m=Gh;$EcPtyz zGl~EG$Fza_kHq}!7lmF^#v43J>)*&^S1EHh=jr@J{N?d~x<&a8fJm)IBCQ(+UKlTl zk&A5MDg`8!SY$u5w#Hc#RHrl83qA+i_T|lpJARK~LYix(ufL+AsKAE$0FhYWHCIlbws(?s6=@}IHfcqH*15A?pqMmfgN%WB&%8do}|rep`n zIeP|U86wR;D&8el>$=m5{Yu`9=SBtrT5dgAbGFo)M7@vVdT6 z`I8T4gkoHxJIQah%iTtsd{{tQMtXxg z7peC<-Sp&|&_5U3?F}~+Pu?uQf8G_Scl3;8W?UO6eDlHRt(_pGa!xeYm4x%_uKX{) z4Sj;&HB6h}KaHC4!b$5s`ph}#Lokv22!6v1&`>)?_hNF}4M^E<2LzpylqvL8K5Y}3 z7tK9qZ%jsfZObqD*G@u2?}v_m4QE2>ge)!kk!vgOo>Z5l!4+4LHG}^UT>e(XZqW{> zeP+M$98q7&D^8O|qFzH42T!l5UqT~#KxPW7qAO1-od!&7KY9l{u+D0e9qRu^B3Cx* zL-7;TZFQ)J2^%B5H*zN|3x_i%?#V90TV@ZsmPOp4k}jtkz)*sa-xeLnH!CLuN2&&u zMHiJu9cu^c#^n?(N?eMAn6hkz57Zl0SZ}0`;^13G(m2jMsm{I!MQq*W>x;M z#Ug;^T0h0|wQClvQw0lunpi(c*L_Nf)Wj40R;r$kKlAJ1*)_iZ0zy=@W)Jhk>AN4* zRHqtNN-q*{%YCFeWW<@U{IZTL)-L_Veij&fZ^1OR<= zWm}T@lm?)0h?wn786h?xl9X!U zy$cQ;__alRI%qoR-x}K$vPQ$DXFWD()<}ueUkV~R4QSpK>{6-p;RpLT+3rXF zg&e-*c@~Ekj0sDbu}gyL35xzl_pJ43o*8k7Zav4kud+s|A-DLFG22X@W-G;6bvuO* z+rCN0z|5OsB3}jWM|ea__AvgF%hZ@ApV$Q-ok}`sJw}{={#}Q@Vl| zXo<-?{0}Qs$9MSc2}T627?M^GNS>`(^zj_ukLmBQ2`19ZJB=8R0&Z@R2g zUE7c)L#;rAYaQVzf0SgXyHd_dU4PQ`qaay^hPSZ{JVP}tCEN=Id;Px8*~p&Q9HZ`{ z+7Oa#-p%+Mu(yM*;tB1w+)W6fqZX5M%3(AX!sRPG1ZWdJ+Az5-mnmXHjrC+;@_vPD zk2N^Z#|_a8VEgkO;%BSoYD}OVJcK--#ER_DY!o^zXq*1a#!Xgy*0$War&Z}0GF^si zAt`|P#;vQ9`8CQj6R-`@V>oZ2f>a8b3!PY0v>?H;ib*kmi{=lrB}dI4PAz^Wb2esw zYMXp{2V!k+i`TIztvc@dHF>3{+o4(f3T_kGH5yhvKZ6qyR+Kj6S-tyD8^PX+~v~?qV zHdPE!{dDDcw2(Xb`xY_5OB;(7{gml7gDTbQOexGsYwRHYHh&W0?Ds98(zjwtynWeo zF08zRasY|92a9)uqVAcXR5gg6O4I%`i#lPt*#2gKVRuMLE+75R<=IRi?_lkZec@gUw|4k0Q8!JhH<>c`Dq^4k~~Q z<8zMJqyHMme@%H9aKBp0GR(yNT{cmn3O6*&Ym87F+ez&HCt@-+SQ1a?m2yBYC_G`= z<9ZwGsK=ZHp47y;qOaWxQthKI$L(UbrR^(0Zspba+DBziyA0nnm;KyWqnTlya|wh8 z&N$UOarcl*_o@}s=-^-3jne@?M#?6u?QlG2OQ|N!Gx-2+mAdb&n53(+8Bbv9h1EkOyh>LiD7JfxTgoUz*AF zfsXMRcOX0n*+_f#J75Y~8lq;U&;=Nk0s!J_eS*8+XCmJH2M3VgIIw*HpA2|ai;RF? zX&+Uu!FiYjpwVLxOezS-hGf*IK4et_goSNOa@GKnN7)jnDx!~B1FL!hL8Uke(f_Oc z#Y*9}J{2z%9M16!N}#w2_R2*#sBVCX@rnsB)l?FY{(`){G~Anf2JMd;Kt3hx!}5A} zL9%{OjAro!CInNi%w*5G2%S-IvscyNwNjo=v7A!{g30vn7LVV6J(?5*N4-9 z6MLZZ|GK;NeuRFodswiStZI@E$}$nryYN4Hc?0R?|KK9I2nn`RS*8D~Z(;Z00gAW- zW!ybiLkgW`kId-*>y|b3^|bQ;hr@xFnTYQHb&GqYa5LLT6v`~!qki3q^5+TF9*+9tC-K7v!WoHYTXTR(_&>v#=j{L7kTarf$Gk zOGT&Ze6BguD&Wu3Ok2`FdY?r2Ieu=@6m++cV-Kr{ym+1Hg!~%&Ehqz3X8`n2R_0CA zNv5x4Xjc+hEBJ5{K!tN1W|jP2k-sQ`;S2g#)*>3G3h^TGv9XRvxU8DdAH!5uirdQ; zwk9(2!{EPBD;FJi$^u8txY!?;23w)+MhMflijuhPr`spjQ379kce_>!IxBG<+qUZt zA|kUvqZ}`EzvXlFSZs>vFbQjfGJlpO`Vx->uh0PxzoRUK``f)DQcP>f7e0n{VaAML zvo@-@1Ij0Tz1HM#k*)s33h_mpD;pCJa5Z2MHQ-*efe43A*HEmXOlynaik}gd{ZS{^ znBZyLOz9UJr>P4$)!;=~USF=Oq(9-hCc<1?-S#1wKLEexjj;s^hrz274@{WERhT5q*dDiB zs09+#F25XzIUpdXSDQ=$E!$z^v#U<^AHSrW+N zX0hi>_6Dk+gdp2()o85`nE*Xm2Y(HK8j4mfp9v%)7ROsds-Tg>90zng*JDLJwyJCr z{$8muI2*8MCoNl|fpM;eh46G`;KjWo)KHi>6_MPBY-`_>EWe}OfKi_WSd{=oax9mR zEEpjQMN1%Kon4C7bQR!e`RRbGefo(7EkxnMuT?_|Bdb>*@~RyvS-y|81Cu`qc+rA* zxn)DO_L1JH7=01C4#PPKFmFZl-5;X+KXBj*-}!_;w7$y^hNE zfkx`ZSc6MiO*Mefit~XlE#trncBr&*prfJn8>mSVBB#8y_FGjw!nF^Hy8~3JB=HaS z$Ao;2hb!JP0U6|f@q`%R$D_S3@agBkf?F~uX})zTVy+K4 z(Y|VOu4zwP2%lB~7NE(Xk`AH5kJ$!5*6XMbKG4efGuv^?yFQS@I;unfN*YkX2B}Pd zx4qg(Q}IA?Ldg;lh;q32c4f#qjN{~5BMtDNbt(Za^&Gfdelk$lc>QPLq^A!V(hrmw z6-J*Zel0C%?Ky>oW*Glg2pWFHR{)I@nW-5n>fuw+_S?Jtf!O4~p9^{`6~Ye{e)TOM zI;^qf*V>?46woH61T`+0(!L9N>-(A?T8UozAJyB`QH0ai)1Sb3fdc68s32^~wd^R6 ze&nJzq=i>N;?hSMNTJ1Qb+G8YyUbQG-|$3*E_kqkezNnCBoY9%k!;D(FaXN^J^cF` z+KyQ-PViLkpru=Jhb|zCd=21)_)R^-$q5a2Q)rfx2z4)zCfvleYvfG zr=sSdw&e)w%p2h8+F489KM3xwmrm(y#yN!-U{OLo!m<1B- zB4JC;z}~{)u)Q{^xz2m-`3)%dk?fTO)ZQcjES|qV0(+I+`mJC9ckQ;F764lw|2ll4 z3hX5Sn(UJ#B8oSGyzJ0!6_F$WIzt0^9IWOTCSkZ5$O$eXJdwqEmO|aOWeoWIrS05w zMOVt3-i{AyG{meyKY%or`1r7tzMQ}pr&s(x_{4v3(7=%0d(3J}`af7hRu^Gp>jBOP zDTX@gM0Vmo4u~|rm%7YBf#MWUC&{_-lb4s(hYF_4u~XjYe6-9ExWBjEENIAlvN=pT^mdK0Z{mV zg**=ogDtcxtghn>_Mr$a@-+A@rW-N;(I8(>AZU34+AvEhHAl3`M4RtfkjgsvyEZiY z9QIwldgy;F(*LmtVpuZ2y`=Bn98f-$Bd-^1q2x-o4GxrIkjaL*6u4DQjF9w#h*o~Q z3ebNOBgHZo>1%M@!q^L`1!}I1ZpJ4x0vwOziNvEPtA)&xplmz?aVHC1%m;P8NqUA8F z`?7na%6eM=0SK*mhfpm=3y^N0s(0FnRUrzmuQ6=EgzWnY%-6R6hccmH2FNEkzD=HU zjQFAk&lf|5VNfZhtdvnF0Rxk`m{!6k`UIb1S}{vty^E4YN_$be;KSVW41+^yL6wW0 z>JSCcF1FpbYgF!c0*vzJOaE5|$-gSf2}B-44XBEfZ85Q0;%N;D8E zfABL>T!1dZDCk2Nm7XeXg!gtZeEe)W`-*^Uf9m7aYIgrtZB_4WAFT3ejyr_*mU8ul z)9?c_z4-U-q)NaTT3lV+v##a0p6x2Omv3&h$XfqOmUEoXHI_}D&JoZS{|J&s4Awo| ziMSP-7G5hB9_@EBJN$t}M@!QGdF$B~dK}g&x(0iAvKuNu1#QQofyUJUx{qa*7&NvE zL&eqFjVShx+LwOGsnh(($2*?G*X|97_^HgY=+)fpt0>oHzxXq58xhGya#!?NtC}G` z=VHdHy}>an;_T_XBN(0a_+rpM&zg`jyNyy++%80TidyW=`V{fs@6l;Gk*iymwXDxN zS_QIyZxbzhq{X9f$Qjc*smWW@!^4O>WQxZ?P3|>qt(s3y+ZiPgBhDlXsl!eVi!w(q zyH2s<5rTc73y#H)VXI}UU{iTzsK6f8F7YTXd_;gG7ess-RztiauBITq0U(*fEk z4QoDz+_iMrsMY7B_LWe627Edg{M6JiP&{K(DE1KAs0+V;(DtK_l^q(Nk&Pc!@ZiFx z0(*-i9)PgKiYh1-JGnlI9M$YYCcHcfA#-+6=^3dr_HEl2ADr4;?6u1?c^?>j_iM|3 z9lUMZOf~!9UfPB5`eDF_N0djqk)ynQNQwR}$EVv$^%?1}quYEHKKU!6_f@ih;F83{ z`U&UJ?x}=(^Mj%U#l@(22Yx}x!Fw^t@r0XVrWZmuEHt~*fQ$vz%=sC}XPe4|RT7>*qH=1QD zT!Ye(c>RkXDsIQwudxUq5x26|4FBL;AJaBsO{M;kp!vt)JXfzI7qHN(1j z+@zz>5_@p^o^xEgsq-*c-lM8gvy|)j7!jldc!DKU6YCgtK`L_2SL<{)(5S9h{{_JrVHNZ{BKaK@RgGXU zm$nuI%>4*d_6P}H9Et+Qbhl3T0`soohsq`%;2{utyP8n$zd$Bi=xl6;u%`+w?j;H) z!4x3Oaxq64INa>JgoZb8!EmEOn%bOPzx%&^-?|xGlMerQ`yiGO3e7MsJO$bBfmNo{ zoTn~id62u#sI?%$Hc^-J**12Y#5XNs3V?wnTdk3iqe_*DA95)$mln!;ECkd#Y=RkL zy&^mA1?r&hN1%=Hh(RhGgxf^9w0#w+?CRSY*kj&IC7-+DJT-vP!}(#Dym>32KLc(5 z9;oxXwc$6=d1P3>ZZksYasy@A)Ol<1G#?Yg9Lf)JC*~SgJwc(VpSAlE=z~67rDgP9 znKx9v{PFkpb8EwsD-(JFih6Zm+0XRJExQ2iw)+B%2JKUCV(-)b@K_H&=b<2^LRo*2 zAH#-#$5m8ymQ-`^xNOib!%vk(SA2{!2^8x&gh!KP)Qw)I5HcTTWjUd522-vV zj@i-I*ZU1FQ0qj*8&jaG5UO5Y@RHRnN&>Je{YrNxw36|#{rvI=IvaMP-}YwuFg1kq z$8rWZ@*ec^u2Yg0dZ*Z9V3>=hbwxo;!ja)B9Xm9Tw7V92dj3mv)FH#o!00p^QQSAy zPw?|!KyJ~QaDdbaqP>?QAnopn3sij#cw+}8*?YsD)W%6b=D_x74@!7%2u)Ucun$vP zKw|AlzTI#nFMRMJ!?_*qbN3C<&$d=^;k*h4QDRn6Ft57Y)DR}U{uMBY-t&Q=Rbzx= zQA!q3`vApnB&J!H#m{hZlNR@A>w8}Kz&)SMW_azfycqo3eelEC6?rk@XPnfV;YAT> zkHc9x=#0i^vG~viTs-nWgV@+S%Eegkw0H~gv~r(g@p6#AAY`AJ$*IoOIg-^RkLJOq zkT+oE`=Wh>L&#CSjakpmQ<;QOjuOr+*0e6qk<|Frt@+Ehr+hIgp07jS-zY7Q422j) z*a*HRlOWKwez_({P+bLVX91DB)oymUv7nJ9z({XfMm}#+Z}z_@-h#iNG&NCKxTRI6 zK^tM;1-s_WThLS4xXzEQ6+)P!EIr9%aW{mbWGKC^n$uPgpUt|4u#FIPR|DAAfGDCc zM02GKI|qg|CM;_aByP$mpQvYGM8TK6%3uW%x-9^cn2j+X$jLbo21|?@X zG7zFF0O<1beq@w3{&e#%4({#U&6D_=3Y$i=bLSU2dp0I0dq8^+L%gNEh*IODTZ@OF znJMUtwjNEI z4RA*WpShsnM`r$++xw$^9D2JPy%{swgB6Ma?#D&ogS&9A=HPZ|Q*L6q%QtNnw*mO$ zCTAnw8XY_YRn#&oj0NXqY`$~+iNoQMSStd>$Yqa!!2CZi#!bH$8t%NnHRAqkQHX@h z!6MEqXhwys5j{B8P^WK#(3PM?Ha^6scY~7tz#H~LtC*Wz?fJj_{5(BB#J@{y+FaDe zS|Z-G%VYCZT7*IP%f%mZ;0})TGUY-mRJcnXaMJ-SmG(|h8cEQqnn6Sk{ifi7<-z*i zXq<&JzOA&G@UxGHPEmOSmY-5N-kHD3(`|FNbx|5Njj3v6x0a;X*0il&NFKz`u2K(a zO)IjI;C~Et8h@24*M5+G_>%7mla`|xxi@opJHzF#L6T*XJcm{`mT99O(%##|&LWG1 zi2SyheTPojA8T9QA)+wZpkr$hz2vMwmT4iH`@>UOCw-0eonG z6`P|ybPBj;5)Im4vmUADXO-Y#tIV#PHu~ZXM26V*47p?u@ja1I*C=_f+bLN7h`T23 zxA-jaR4kj6k#(aqI9O`}EN!crlA%{B_z6;#^&Q!jUG)=(sR;oNyvt8JAyjQ|@DgxS zBy;X*MuB_T$+z&#|k)&c=9vG7{ zxWpNVPfLZSVI+K`?ACq{!l`hy5L96&LaOchaXudd0wCTMtu_UN$bo~l80l)8k6|bB zs_m|8rkYG!U{g8+pmNIrJ`S&Kdp=<*-Rw22tWx6y#a)baqI|}Im54x57s7{Tp!;uc zuS^gys4@bOiInZjtM-*S5*UYJ-Fl?ROC)z@;tg7R)Ag+(gJr4)+Gk$mdaw z0{Lmae0zz~D@NL}d*YlUnGKd+?;w`!TV#al-0rTW#$gPYIzkkv_ztVjK>o#F%QSYw z{gSF~TkWMVGU29P(BGi8m*$$51K4)v9{dxuC+q|p)b7>BI**@9kyK^Oh+4X<c{cU{9qHYGAUM0~ZUr~bq%f%801-YBnfGhSzR5BfHh~f>uAqQ(R|xv) zSoyYu#QC7+TFkAR=ZQVakkTQ!?Mum1usT|=70albr>Ni~>stkK`wFC=7Gm+2Wj$)9 zN}n7I3)H_4ECz8seL@mZdyH++{^edoiQU@fzIXoK{Hp|&x5G0Ay%NXdF}7q6j#)*8 z;-9d%;&C+#Et9r5``MYDYtC_0_rT6v8NX%sAWgT-k;FJS#Pc;Ho}>L1!X~i_O4u%2 zJOky8=(lxwZznAraui-L@{?U3C*1P3I#!uI3b{94UVFF3rV;bX;C*Ug1Nr zf9^K#*^4aKx98N=f56Om?%#2h&JJtnYYUj-XI62bQ|8vO*icX6dn00K?6kJlxz*(TIG<-{NSX4>Cbcnq`u{ ze3`7y4Gca7bjws*wz1CemT^}{3YCuEI${lA|7Nv4*-Hs+-`RkZK(}Q)nI|oG!xet5 zvmd3q2-N)e4f{LwY=)09!+7dhZ{cJb0}{e?rpCDs@G6-vya_*#>|L8$>WB}LpQnW{45SF&OrYf^+Hw ztm1)>0;TTUFH5f$Uqo0{Q^PKnNB_>85pD}BDNo*tu#9y=6}B}|b)bky8A#N*Wp1(8 zH|E9+ap`tDhr4$U`dG5v{EMhI+4xLOls{h~{NspA;{@lmxYyIVZl0 zK+N*9&=^xRN@|pz5&9HALcAu&PbR9!2BOZ^cunl1Ks$rtzguQ@`D`Actk4kP#crE| z8~m8SYOS$9JR}LX>Q~5Htbuo(7~_75JnlHS5(Z)*xC2E0gJ5CgiwFEODB^s#yNq(} zQ5|Y-5q=N;jq#}WHr5z@v>UuP3#Y2KSyN_s7-CKE`GN)-)?cb%elY!)05j?oXZn+I zEiscW=F*_Qvmur_w)C}Eh=dTuPsuY>gkBir5tf$@o-=01`n1~e4$gYM439>Th?Na} zB>2>JB`jP~&MXKTwLF%$yX}0B$Ar`3-c;bY7y1CXdwg2s$|I~plofdxTvHW?-=a8Z zfN&6C7a(RM1&m3GPnxD-6`9(G$egdE^W?Gc71vm#|V};(T zX30MmijVaUdwEkw{LzCLlYhx)|44_jiD0pJZm2z9N>K_2Gm5jej*6}TzIRJKA2}Ud zAM2*Rujfi}y0ho9%z5ol^Sg?C`X-|I$AgLQcy4%~?*bSzV@cJ|2~=k3QAm+_^MK9a zu>OZ@_G=SeYpPVgsGOf`cC<)5=BBO;;#U3K@$&Cc;fRp*g`+8xrl`cNr-|yQG{83DFKkv=UBo+?G7wVrIbMrv+ zil;tQS=xtJozje%Z0MQEx|^%rvg$tW`ihGgsM)waeW8k250t|CkD@sqWib*)YO1Ys zNBj5=ZNyZHTT+ka`o-^IFVc=J}Tf-}C zmo|&LYYEl%6XK8&7dbZiTO1y$qM8>+l$-=Sut(E&lxE%?m%hRvK!qnU7M`2e3IL;P zMW;~H_WPbODE##$jW1T7PF>4AIge4~3cm*VdlXv{hj^y8K^&j4G_q1NpdDcbF8 zO?4lZaqlQ*b&c;*+`B)Mz`{caCH1x{+|9e`lKa0oh}CezKjhQcim6ak^D>8ZK?`CY z-1W#S?5Sp_YIF2~eFYam>@|4V6eM-|Lnbk_+4V6`M4|C#Z`(i}^7oo522#E<)scPJ zh?$L!_{Rj(;eSII{Jwr9J=|MFg@|G%iYA+$5#{Dy3Q|DJ)o%(#Ys7U}67+0#EikF- z&d;Z9yTqoq4w>v=tld|XhM(0JjW0u+Vt-xh<}>U#8xb@m@@Pur)m0eTc8j}vW$)T_ za7Yenro=`3Tl+*|gFv1Zw@RU*MPAz46U;JbMGFtlG4d4bZ93YUROPq0w6gP+>54hi zg!*ilcleqhTd+!dB%Fl0a7lMEyS3a0}h^}s&_|A!I7g9 zJAA)xRM2N}%(*!s_`~Ye0{oHknrT;w?UAcG5+Lut!=K6qFLzxi?^-i8MIgGHHW>F1 z!{*k@GlbyjInzqn_BQU@7IJDO=QCE;#{A{8!i=i{L3Hi^Id9~;>5SJJ9C%TXgk!y! zD>fkhJ6AeilKX+0ua`J?=8YbU+zk0!6?RsC6`Xg3iA|8LIBC{P63Rz^A2s3;hAR_t zyox2;-@8PBBLt?6{VY{cW^S3cYvQWU|OZ@pRcapzjvuEaA;rBn_zq0cD5J zPp@gaWMhV)ECTyGx4Zt9kxjiwxf=;!ZwvK;_a%ZPSs%c?d#I@O&nutvNt45FpTduYf210GxYRhxK2b7f@G}9 zSVZZ~0S+eDOzvN0g`h6y z1m{mC1KE0(Z8II=0@*xFTFHm61mwv$3Ly&5Myg(B`m!29;@{tYMC1vbhOMPF>Oj!l zNRD^D7tf0~B+EvUxkp~9cvs_9aWZFh zo#}Myw-ur_IR~o}b+ye?N{j+e5XkDSg&s}P){#%?&xFsTNFJFBBxJo}X!)>-G77i8 zv#=0zI2KU1j9BWdkEl%VwWXf6?W=ovT37A($ic!-B^FvT9mbT4$ublOL&sg^76H1d zEOIPH`}4Zu%$cD?>{pmSleAoDFpZ|p(0fRKqx9L6m{wL~mg*U|5fuFM!HTObWCDb2 z29w*iy}n!+C>&%eHF@gr=dbIG;xH0{^RrFo!7yJG3~1qQmfSWl>cxd|eaHD3_(j~s zqM_o)m#SGXwkC(p>2+nt0c#s+_Eg+wc}~mMjtrOBN{!Ws3+z+tnHN)QC=K;GiLm~u zJSQNO4R*Qt z^wT=QKZoAXwc1b3L!~_vg{o+p+%entoZ?sZ1@NaWk^7ZvE^)qXiEAV+X^5matVEq|A*+T3n ztS&Xz^%|(ZC6Yli7@JJC1wya=#@hl`c37~M6>qlhu+A_3XmWhdHDl?=LwlU zmwiBg;hI$b?c1%8!joT%(BPw_{9uvMLzhG0_kzwhVyx zhkb$uz6u>-q7R&$jB>OlFVdg%VGfIEP{b$;+bYCa!G|*QUD~TBK1NWB$~%UbQ+w&5 zG+N)3ERHk9Q z7LJ@!Ar9w4-*=^G&4-4Ysl@)FPab|n*(Z>LF~$w6USKN|qC7NQ73IN%~9>CYFHIs}J<860rW z0Z_yn!iP7fhOjiCp&Y>Q>e3J?YYd^8l}PsNXqmkTVVxfQMsjX!PE|GICXjFLYN@J?Qo(FeXm zhF^v`J1q&5o?=0pfDfetaBSV<;13=wbM6o0-p~iYPNl1WmXQsR@1%2Ec9gbi^T_4U zRc|Iyb)p8r1$nWjE8lGfN!QW93LMh0aMk@np z>fsjK<+eI@ys9N5wbSms$y9H|m3Cd~)bH#d!}0>eLn^V|K`3!o0DGisZSf~MnrA=p zb2m}sok+s>I`e`yuipRx$$R?UFgUQM9gub;OTIdOmc6ATI0X{!-!rqC7wm63~R_tjpzLLPCeDy^OvW!IEckz|f;;WEKK;tT}(DuhY&l_{1mwMdK)eIhd z^3K)7DaF~FNgK%i8K!xQ!jefGvw&)D#kO=*5+uv8LrCW`P2}vs1^47;N3x9w|; z<4!uHRz`7gaSSQU(ze^yL|m5rbQioCHzqrNvlEpmKUO)fOMZ_4(b7K81Hf$&y(CCf z707`Xm0&*IaHnhi+TMg_sx|`rf*DHp_9TE%6^fX26s`sY2e!(hM;j1N6v8aapsfx3 z6wJTGD4qcg)Bz^Vf6ol^xJ5+fQlHQtSJE*HR}0!o@D-2*9`@dcZKCM0GZ#HGRq*v& z$ecm%+4?tAA-)IzjP6=(llR0~1s_`RPsSNB zaPjMW<}Tlr6;I=i%ZO9+W$ie%iIzojMIC3WeA!@5+1g8#|E=tKEs}ptLu9zj{p|j} z!+gvs#P66G^9{?CJXcGb9n7(O@rBA(F3jwnwH+_Wj^4j+t`2^yYL)aS*E?o)f!Sh; z%)~217;0YYByf#BAU!+qOFA&!trni_rXhUJtZ^Ka@yi#kFFsSIHwh(k&gb#CTPy|C zj%4HbIwS%sv&H=+RhSXDUBw6zxDtiAd0i~{(>7_)A$kAApMA^lhgd;K{86=TW!u;5 zA#Vp-R%s?;=BFh}Yy3h)Es_v}*V*#{!ZA(=;e-6g7$*QM+kAU^C{veLQ}*}ywymc- zvw&OqYR*W3C?Sj5R2tz)1aH$0us^t46iZHAi$+h-l8R=yw%s9`skuo>c|t^ zcg~V6xzIv@tuwjSQn(b2^%U7ws-ubFmH(G&oL<5HtS2rtH$6MsA(_?`TMNWEg|}HaN}*I?@&!Bi)UB)+OKZ$0UjMZ|ZHfA6z^jVIz$twYdd9 z3c}8vr-04;JO)9;3(VRZ`AcU3&+jrQWr6-8FTUWb_g6qf12isS{VvE+;LtGQZHx+aVbYj}z;K&ch4pr?!37wOZzpMfZ2G$m1aZ;&b!XH>r0gJSOy z1tG`pHqMUor^oa^mH!6Jk)8%NH}1AJ?__u@707ry=@&$lXBXR(*u4!?3ygs|Wo;B5d!|gmZr2fKv5J%De z)j`|f@@D3lLCcrtwYVp{#{+tWQGchL*|Y&98O2uM*&&FMUsWtOeh&MkU*~A$9ltfN zrbuk#FSOE!e9$!Rdt5a|${ZgxMbE-Mg4a}O6wF*F;WNdYC*i;(ir=M?zd_1~NOcTJ zyRIE5)Twq#-7$!1!7@dT2bg$&X$IkPQIGepc0s- zep)f$JM4CmZ7$Ghqsg$Ftqxx@W*o6ez$=)IkxN!|{mpH7q0AWoCBds)*?|5`_E*3m z)C^B}-G{3~Lzeuy{*UT=9_%zllTlTw$9@UC0oaR$s^38PHVmk_Sej* zpf3Wc!4>crvDePU=Nc-s8?`+az`q4wHJT{xm z1hh6EEb^>1j}RF|fH@6(;g3RyqP1!dk~7x5+#gu*d;@g{!@iX3SSlv`sc845z#2|i z@rGTP##z-YN^4}U^?(5Ez);#_MkZ09A4w0=V}-L5X3`1XmwrV`!0e?>{HmJxr|;C3 z_XSQz&hx>UVh)zwLI0TXscAZ@Jn8LA!EAmZ|K`arb|OXUU5nG%(jfnk%DJ`!suJXU zYSrn41XUtC({{kZ@1e8XcVlg8JJqS%yFf!2Nt#iUQd-Vurc!JcalJTte5v8BaTA~Tc^phQv)_APSG6y%EwYFEGjfz& zIT_*TNzz{z;eCC9_1T-l@TA<0(WNsHM4N3Osq2(!wZcNBdS@@Ul|b+jZ5k@+z%(y2 zC{(^)#kzD3*m z?G?O{Ff;#rA@#*4_~W?bFc4v6%T!(KGw?#t7wN&Rji4BxyqHA>Z0=N}e#0X8td)v< zhTX!eaGeX`ejNu13??uP=HnpJio5@J%e5H+x zBgYafwyH|=P7fi~`_Pu%Yq2qxuc(D^8e@!i(ALq33s4MOhSo@nWp<_D3rzeg@64Dqf|0 zgM{8-O<~X}*=~xyL3+4SA*FY93e1+K=x)ahi<~#FTN@Gt+7VGDd#vUK?M>(*9Ql`JZ39T#I5 zqA31*&&PJ9w}p93M5d|2J#Yw@ZmnFpXu*B+U$EjKGxu`=Sr7yf(o)D6JYdrBlQ{=z zPgYK4q(QHv`-8MxZT7lx_4@vk6MMg^S}g={Ko-JUuw>e-p;pzL`ibsPSp$9pB2Va3--iTozux^|xMP&Hs6eZL-N$Yf zZ_1+XmHPWX*H~VEmxe3Yof#Jh$Z`5oKK0zlb#UB~htW082{0M|9R47Nw}v0A&?>Z} z&CoE;LJwPYpd^&=jOxC4j@v`yvg@)d{V2x#$^K|Tu|A9(cm3U07*1|`V)2g;JyY9pKf&!Bfal=$ zGI>a6iR=QATv#^^zjG%m`EVl{;-)6s1}qJ=uFRvJrT!Lwy8^^hviP-fx6m6h0>mvr zOvb5t{{u)gHhHb{_SL+cLs*W++ z7uOR@rtwwpm<47-LZAl=evCw~lcPW1)H!>S1ZZn+t+gg!f1#;BwY%zxa){r3Fg|5CUWrf3VA|e`?=_u&MX|)Yqb4)m zHAUI9v<9zEg2^cl@!7Nm6W^N)D(=U0Lipdbvta@K996ia*b)Qw!#u?)FrZ0Xb z+S3&gS78%C!CNNOZNDr9o$ZSIl_P@4S4gSwjBeieoHqwsEl$z-U<> zRb4~PATA;&pXjLJ>r@!^c-D+_$g1&GE?=OAdB9^oCC_22OMHKOeLVi^X1ly5j|yJP zkS7<2YuG85TNdONt5fP1nWgZW6*8=sXK&1MA4Yz{1^NQHjlwOLttsUnlJ_E{yl~ow z@_%*Rw3rol6IjeEv148j?Y4#+dP^AXAKwUygEO) zop+Tsnd_}ez)2rztK3*#5G_eH%4CyRg#EET{87XHqB@5@OKoJM=G(UL#l%)y1}E|6 zq!#rMC1FgMU``}gBOMBdgXD zLm_4#Y%o^$M_p@6iSK^|Y_N@`yhy0ueeZ&tikFc{Ik2)m46ZWp<|AULW zF-WVWRoFn!iRY?7DokW6zb>+AZvC&YX#egV#j}J!IYJSaKe$WhR4`Wjys#_^uW8+@ z9{ptL^*?7JhRYQM`0;^i$>Dthyulo5yTP2+7jNZz#@VIX3a4}>3kuTCi~iMaO9l0V zjrBdMjaJF?0d4nnZ*~ytBI&B|`8Ni(SO>5R3D1BFnm+T-yHS#*s7q~23PYIBM|Quv zhHt3&U)crEN>RF)K+o)s3W8n$_*|{tlph zjY6`Mcl_Ut1Uq@qT}zWrAoh%De@|D${kQFpV2X}7VWK>e*AYeS0>8ovr)zxC)VjeYUmO*-L-Xm{;`b(bi~$1H1i|z23QE z^wgz4ag3@oDbRNKzSgFvkeH(*Kxqm$EV-*~8uK~Rle-~f%EOn{VV`+05z4W|zWV)% zoh<=N$5e6Jc#=}X9I={IFcnaeoihu|k9Ne2W15&S8-FjRz)eo8l3l*Y@fJo#K|>D) zjht3DApk3NAKf$U?;!7II)4?0YSm;tR{_<HAzzF9eh>Q|* z@msKV=l%#?a1>PQ5C{XHze=fLdLhBLBR$n#7WL4ZfA z9{w|SY=TE&`QKV0(E-Ym`BqtOJ#XLJKLrwelU|=>PZg-XavZ4A;vXncr~r{sXF<9n zCASQG!@9?)4DZkq7zIhm8N`=#`N;kUWww*bz86_BInXCWNKCEb>t{?CJ$kUmQ0d3Mr z{;xYA4MA?DuddkwAp@@R5)0BO@%!wFOA(DI#=?FQl-%W1^V@%fR6fh+%=x@BYGe!m z73hr_Fg5w}A#^?L@9TN2)Ts2O*@RabA04K$TAb6CMY2_VjV;o|jfL~a@Xh2==VC)s zqp8tUPmXfjxcA{Z>NCLj<&U3t8Rt6NH`%vNL6yFg9AG9Bk-BKaMrqMz(6k1uCTL)g zon?M>O_m=YTLODK5Yu+1FGsasT}t%+LO&|K#G_731iN3-$hRtpOX^oal4gB^P!G!w z^p+ZUEB*E-l-he)4tv3wJ!#Pbr+oP_*hwfM6C|g#s{HbgvMC&&X0DEEp}(^HDt}C! zj-m-UPHUS2UgtWk2Zpum;Z|1pCNbqeDy#oTzF|nH$GUdLqX1 zXismqZST?8St_KCu?Pjtkn{7rcv6eXU*XXc{v8_UrZjv_WhJRS8I>izy?u^ezl)9Z zW`Aa7nk@do{aSH~SLRidz~a&2w-<;Vzk%j`1?Q*KB;z+n-TkY3!AsJXa#65RO&nV# zcxzZs)kBT)u%%Rg+WwFIc;vE!3^aQx%ShxNl?kib0FP{;90>j7Jc=Lzgfm9(GQWo( z+Vm{FeYo6yeE-m>Nf2B{vEjA;b5GGnIOb8rJG-%1nRh=8m;9AJqrB6P&iu@KD8HXK9AzKw1S@0kIf}xN530U76 zkw0!f#rC+cx$2=AC20ShyN;{N$F}AekD<^1Kjp_z1x$i+OoBTG`QzIE5;$G;_+k<; zI9~OfVW?E(I<7D#;Wkz*1zg}Kf!Sq4P33A-aEB(>k)6chOS;d)*S;o~u~1B=+zG2A zZ(&{J8=r3ogjx;^)O@v$R}-o+ZcX;K+t~L)+Zu$eSFpV8r>bJ6Mdxp~Ruiymln1ELDF-n)@6tvSk{%dGS}$ccsYH$&JcVGBma5<(J) zOo?)%

@nM@#Qw+Wi}w88+O-NL5NG5lsG=%G;x2c4U_3b!>Nd?S!BQoAvnkr+Afu z>x9DOO#x1V$w}$L{H6%gnKaur?2}lCi|fSV7mN*i^hNr@`|uscu08Y9#&P5$KOR_M zQ{Km^^94D|=hc~m^J!LJB4Ub#Pm0XLyi7tS-ZF|zdwYZ3#qF+0@;mpWJ;Vhpoi^+v zl$x9U)O>vqyY_o99-Rw%Rjp+#MRgO{HlZcOduJui+z8?r4Dg{cvY*53XK@D$=jCi- zbOlPF6h%cTxVzN!U)%|dF(;ae{t8%b4qfDrHmvt6;_;IsF2l2w5d+H&YhdIH)kWeF zkE<&E?-P5HU*|@9?9OX(`v*@y#B=g=oEP>}UyKw(=%$+WMQUgb#e?`mA1H2~tTspt zsl5sQSP-rbUty#_!COp3(oPF=TAsBuA|CzfImOnthTB>)B_)5MmiUP-bL95Iw${W! z37Kv&v>B6WN&IxC-HMt)bM_d1k8ypA6mu;HJX_vi`HO3U)WX{Qt~T);{a1}GXq!c; zr#N`-Q)cMQg;F&OG#7U;&FqJ}qCzQ(HqsQ+#$s6CE&~2CM1CWZZL{aXBY1R6Hf;}I z;Sd2f4gcaB401MX?6Q3aUwMAKl$p&A1c@jQpq6n4vH-x5&^67TC4M~&7A6=$EONo=cNJ!;6b^i1FQ1P4<1G$2o3`;#lqAn73$j$-Wmobxh)%+08G~rI zgEv@%ac6}&+epGUxxroA8FO-zsrbSn#rQNF#3}-ffvKWnEDxJIOT`Lm$KdqPVbSc zjDZAlPnDVGtWQyCA>ZR2N^yY&8ES&eeMv-}$9|zH316!;r^D#n5N0m~o-#^9wA49!>8uVJE?a?Ix|&Dlz`wARyoa?;|+?F-QEKF!v2*P!5;J8B?JdiSN2_J zMMcX+DIsLWgb^QB-h+t!ONCdSbIQi9C>A?l&9iNWO06Xn>8hpVWD{^t z0`X3})@7RO5ZvVtS9HmEic6I9KBx{qwlQ7k;UjY2nwMZNv#P1NX&3RX&PU2f5_ij$HUfUz4%t&(_Qd$m6>bt0lGbjF|{^S=g`X?LA1h-qbe~yE% zVvTEjd)nZ0IIs?KD>PBi7vmX_`{x3M(fdoIIp`GI^BW>%X3Yq&TZI(-rur5hg@; z_VEI#=zUfw8=QNyMe66&B65_rq3Yn-V6d-TM8hQq+as+Vetl%$H{to9zMSKP^GPRf zyfJ9q8qHn_Px1yJpw-9nVu#4QUxRSMX#lZZ^(l4dU*A*i2a);9cTB@qZ|jc)Fo&#|fd zI@FV@$otw6E_yw2Gl!{%$m3{Cx-n?~$feEAwqz9a`fuMFP$M0QdxQ|(?+6`3y*drc z8|E*ue6ob%?YoU7!ni4kd$%~SFYu0H`+=)oI_dP!KVG1Qb3{(gnf##pS(ns0wDyqE z7Ca|;^=SDPzSMJy3Otnt?Z$nteqv;vha}np&uKuDs|A0cR8OT*<;Lo>bnhtML?P9vW!#jO)#4o|XM z(Z`&Og7{>&0db+0l)--hw5(^^LqWjzR7f>;xGZYd?e;e#^=vMKU^&m2+NKFzd zxebuQn>($+&qMyU=EdEkKFcqBH~O zPLw{&Lw0Q4#$vLb)@-gko@2|yFyv%G13%L!1nYp}3QG}vNN!yJPr4+OMaEEC z=p)|W0Jso4oPy>oe{&0e;ZxUfzq94y4xJqka4miD-Z;XB{p+oN+Uz|9Y0>wO@oYaZ zw7Cq3dkXF)fRgxTPtY1n<{bzaNZGF3Dl{R*w!s`vMpa->pfAe#B#b8#a~@4QK(bfu z@{npVNB!172g+fFrvB&k7pe1ubLL4HuJ_KFXGtCS!cQ5sVj*og*y)I&5n6$6As%Rx zx+;s(^wZ|>2BNDam|BsDxxGV{Q4u(|L=pOvO%dHNKM5k=6 zn%}i_d))`}7&ipHCpm)=kydb6cAe*MIs={_qkmn-qB)&n>!2q#Kna>I`XMP`cP&Bd z|LG2{c~mNNMU1-NX~NHucaa3QmUUh|5R%7l!a7fm;Xw|8KNbtyB*LX5@1diu$eI_A zp&J(ysPvyMMJ+38WD&$xvFqi({ZCg|`_Od8_2@a^>3z?WiXEw9zq;;s$Cl9B;oF6W zION^d9d_}5MU(%pXo9FzRk)~h`G;BDIKrbLA51?IH-f@O=1Td%K$p(H*n;JhffVO# zGC$kNW~ghReWBAR{XXCP3}jlsrf<+Ju2ry{dZ0Z2>CMUZ%Yy&Z$h$A>Fbx>SlBYz@ zoJws2)TKP6|Gr@)U{XcL_rl6mN*7Pl97c2N4&@=bg=Qcb?%~&Ff42F?Dk;Mv5MW}_ z`^RnwFe3&uFuWz4|H2NQlX$8qkXwu`olh7MzV^d6=fm?Jr0r*VUh*?(5vUXP@HS2O z9ysp^@MnzxNuucglHiOV<*aO*1~y6tu2&^uZ~#0oOMJ$r8&JtEQa40f-T)O0VO4O!2vp1 z;;E1gU$NBx3r?vI2YfQx{^2W|u{rrM)d}sK>luvDk(Aicf;QbP^@P{7BbltL2=`7a zjO(_qqZ+M*F|hkj_>^Fwdo4~SQ|p6Kzt$x=lS)v7`?co(Nhf&D{qyEqxKCAGxS`WB zwu<)u3d*f7L6;);rR{<*=*iSC*`&X$#~~n>R0U6OlJ{`uFwz(Df3l61|7o+4Z5%yL zGXUc3mXAzU;2OmpIjW0O9IAYB_cOwUb>(Bx!*$UU1*i4f64bUh_AN$Wo_>D%?+3}E z!Z~4(?QMe^$Ht4FQ>p^4i=EP z4xKO&_#L7BKk6X%qY&r^4xRT`m!tEzJJaXVz1}RI2~TEy;dzITI-=hB6g&T{MfTW` z^?Ixff$niApV|c3PU_2XY~~V)f!fkO0TfQTFBg^5PncqWouLgvyqfLZwBf9(C`YX~ zood2<*~2aWq$bi(br@ikGBKeC+@OqmkT=FK_7=3h1QplY2atz@-*5dhb<-4)v_=c$kjWlspY&6XxCcM?@+`$~sp z1@u$=RR(w2&T)8OiM+;mJ=_+9m$bVR&w(3KaR7d$ur58_Z)_7u!%dNuh{WYac9jj| z$`M@9xF+N`h@?*o%Dy~*8y<6^3Jy{rb%6Kocu3mfhk)Z3Kh2_ajC&^nx8QuMz z)^`D^w6ve|@&To)3N>;+r>rduEnY0XjDa_V>h zq)jZDEs-d;u0OqCHMS%R+tVzQ29qzKuM|*R8OW;g*?)F$ACr(UL~0#zY&gQaHR|zR zn}|tOHsP3{g0ag~qbbvinaS&V<^qY~g9{{`nAX|II^gGhx;LuE!@mxKy61hTl;H zR8%KjN1JTNo5~&VkHv3I1~9#YdrDvC z?}bR;H_KmNC~0n;0F>JOr6QMNOe2;Pp_Y{uOploXqstoi3(z4dh-PUposyxN=RV_O zzYrE5!KMZsTTZCXu6LMU%{^nW$pVM`VgKZ3w<#mHe_Che-`RFCvusn4BuO^ zg+)6p*G{9On9pbVJ^Sb+0GP`1Czx?vx+YJfsJpmAV$NNorEvcEpD!e+58ylZ@53Yg zua(l6}qg(qOFq1qIpZK(6KJxzt{P67i;y=oPkQ5e=PBxfz*yc zq8^P7}q$!mzf4rpBmoZprXfjwpRT`-%HOLJ6fxf1MTUI{nmcY z2B9Y^s}8QQVzXF+mv*{eoMRzX(S9lUheS_1zwyj#4TTsz*{}%6J%8$2;F!kFx475L zTevvOgaRN~3KNIWd>6qxC2&@)#(Uh`+m4Gly|}$7h01qEi`cCqOao8V?0n>UCXJf( zByReHvgcK2x;KN_*Ik>vH+!nAXdm2{L58zcv`Qpn?X0TpwJ#g37MF9%1I)4*B;K{; zPI;rOImoN3l5SKs=e~w@4$c9Fr!$z_>@6rbEMShCkRf6VMD)9Ko7#uFLs`)2aH@}7 zvKN>URYmYTw*AJg#uYGk&Po6nl)4s#CFp1^f2RAbp5h}H?NukuRCQ~aIP1WxudPA0 zvB)m(aRTlyCq&}?4lZWbj4}ucrwV4MmvD<~rLD>z#IJAr0RN^x!ydy6rNH3q6L0J} zQx`uT_6ID-^rsb$%*TD4cQ&?CC}TYlSL^#YDimo7%lWPy-o2tE`$3A#_%j3~z7igm z7$_YZQ)wbdoqPorwm}@5P!~fIp3mQhT1$A#f2M@^iK&SIq}g5x=ZtN3SLS+F6ckNd zL5Wm4MIkDehd(HVW>nN6Po}e(mLC zp%`LFS{SCtH}knHs>b8}pCB#b!F}2g@6JlAK>(X=kr$7*pxc-%|GmXd8`rAOCa5Li zpuY>H{wka`2>j1D#Shf}ZK@0`3Hg6Vk zyxrIq{q!+a_eX_}PDl2FmP5FEfL_7e11`Gbkk3bMEEizk(=FFp>~36sq9mW%TO%+%;jx{E+sJq`&WW8vL& zUbpof7TV<+b=&}EUOjV9^}Fv4F*RRS3%+veFPAHpX1zD?$A%Q6W9yrK@E0lkR9p&svE-=S$|z?avG0sBjO$< zT}+OxsegS?7ljyQfbzl}9#R_6Anmn$;z_8$pwKu^Bg81=+tmQ_OckwQA2PrbbbihrbYekt3A(oIYWLunOgqhxm?~}8AkZw9ZE%%<8 zS=Y4IswVJfbBPoeys9ZZnIB(j$vgW-R}bXxzZpo0O_8jNLUM09F8W5>f~5<(8(m-C zR&MCR9=}XY@HNJBwP~#(7hph+J%X%nn~w{ra8o z;B^k47a9L*<~5*k-Dni7w#MkuHLEp*gpx(oe2|;0-m!Kayz^ZctK@58Z-$1Ovslw!<<1F82c9z-de|Gk#Yry3O|^4UR7i{exvBsdC`V?Bz} zI1dnSir6=9eMCnKagPF}TDyJ(O^72O@I5@FT`dCWJMv?++L)@y>vazv^{T%U(0a^11!YyjtCOROrQu7HqB$twuR6j?o@Ur|8GuA!d~+-LP-Ef?j_?(~<&%{J$EO<3^VQgsF zYNrADY=L3sG{kzOedX^?V#&}wEpn+@crqn8Y>iIA_&j*d%15x%Vy6ba{YO958R%70 z!XJERw6>p3%rJG+d^uo(!V@6>%(_S<@VgycFbqy$$MCD}aEeq~DTNxjs0OKuvL1sv zygVjwV&Z}XP(m)UpU>36iL>6!1tsg+-HFYeSLn@}9&#Psecwc7e*}zW`XZ($X{FHj z<`5O_ma-pcAqC^D(sw6wR$@&8a$XG3-K9bSzAP~j60yUN(;@>tvA(V?d&4tCaqTMy zJFbx3NBRX8zejQ{GAhgu6zSipC7|TOAw`c*@3B3*dn_K15v`IXaWjQXWYj#Cnq?S` z3BiLf_(2#vGa`k%3YSa@w9zzk@is7SYWYDU8TlJP1$B8nV~)@H>%S zS!(sSRATyoD!hBV?lpXjC>NueD!i-Ba5mmQ=*&tdega1^1Tw$H@gsIcP zf{i%ret!ohmBHd^rJl8c>W`^06nYA!Z~uTj#O%gkFi&o`n#@1$Xkj-&%B|HXz5X=3 zn^Pi~amh&%B{hRQO5ifznX6of^JN(k=;(>^6n-wu(@}4qoVE+^emAKk*yFKn4xEr4 zr-sPy`GDb~3#w3hQtz-rucEiZWvuB}AFuffRRmZ5jaVuk(-D`AqluzGfS3@S4y#+) zGnmrizDd}6xwwbib00OJaJrWz-^{+9ehMA3QVqft&HLQglawjREvsFg-;2c;>pCve zN3bBL9FnZ|Qq!V@zN0M7{HaAvs;hH##XvHO1P4iyJ|uXABcCQDGr-{XD2WKQ+l}?|SB=#@ZI!fzQ-i_8m=&X{dI<55PPj9TxL zW_E;hgH6)3io{P$DlAr?S+LA1E)&)%ngR?L#n07igLB6Yg#(jFn*}fF+xzEy!Y-B; z0#lO>EN|WWX6KAEkR7?(NhE*mrxZG|=4B|F)WI`TfOdO})f3;A{!L<|V53~d6!u6d zWDLu{*}zQiuw1V?eU=vQiXO1bN>Nvi;WF0r={-a`xCYMwvF<16;v%>&km>YmM@b`94Z$xqF7HQ#6h|#R#9!J{?j2EFhpS}^Ex7v4nm2my&T=HD@xum=lHr3Nb_fk#<8N;Q{?`$?EgmYxIAWO9{5jrq(&(~XwXd9a@|`>QD=ES(DA?N#J{Q-dUnO`W+~QFh zr9R_BIVcx<`l$7xPHLasxwCfap@^9*DZ`QW@QqEFOm8;MH*ABMW+6XJ!2TwT2NSS2 z?<40Lk84gSE6lE>h9 zZ+1xL0Mb*LrEQ~R$iwIEr6J^G((aP8xa(FS?G6K(cX$6Fdts$Dh>m+Wn~xBb_wa@& z++(_H&`A6J!$4P{S%LLDsuq&&ud6{)yE)bO`G1!{+Dx%0AXj|Uij*LU}z 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%0A&oB}6TdJ+9yD1(OZvX4uaZ65xYxEI(YE)aS{@C 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 literal 275731 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 X84r57G-N4ZS^?y>GsBRO~NF|gvt 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 mvw6xB~u%fcC+x3pJ+;~Ix}~a@U*LhB9k`T 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 NSYeJl!;Tfh{{aPf@(Ta} diff --git a/libmagic/src/main/cpp/file/apprentice.c b/libmagic/src/main/cpp/file/apprentice.c index ea8d0b2..eca3ae0 100644 --- a/libmagic/src/main/cpp/file/apprentice.c +++ b/libmagic/src/main/cpp/file/apprentice.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: apprentice.c,v 1.272 2018/06/22 20:39:50 christos Exp $") +FILE_RCSID("@(#)$File: apprentice.c,v 1.283 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -40,9 +40,7 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.272 2018/06/22 20:39:50 christos Exp $") #ifdef HAVE_UNISTD_H #include #endif -#ifdef HAVE_STDDEF_H #include -#endif #include #include #include @@ -51,20 +49,13 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.272 2018/06/22 20:39:50 christos Exp $") #include #endif #include -#if defined(HAVE_LIMITS_H) #include -#endif -#ifndef SSIZE_MAX -#define MAXMAGIC_SIZE ((ssize_t)0x7fffffff) -#else -#define MAXMAGIC_SIZE SSIZE_MAX -#endif -#define EATAB {while (isascii((unsigned char) *l) && \ - isspace((unsigned char) *l)) ++l;} -#define LOWCASE(l) (isupper((unsigned char) (l)) ? \ - tolower((unsigned char) (l)) : (l)) +#define EATAB {while (isascii(CAST(unsigned char, *l)) && \ + isspace(CAST(unsigned char, *l))) ++l;} +#define LOWCASE(l) (isupper(CAST(unsigned char, l)) ? \ + tolower(CAST(unsigned char, l)) : (l)) /* * Work around a bug in headers on Digital Unix. * At least confirmed for: OSF1 V4.0 878 @@ -83,15 +74,15 @@ FILE_RCSID("@(#)$File: apprentice.c,v 1.272 2018/06/22 20:39:50 christos Exp $") #define MAP_FILE 0 #endif -#define ALLOC_CHUNK (size_t)10 -#define ALLOC_INCR (size_t)200 +#define ALLOC_CHUNK CAST(size_t, 10) +#define ALLOC_INCR CAST(size_t, 200) #define MAP_TYPE_USER 0 #define MAP_TYPE_MALLOC 1 #define MAP_TYPE_MMAP 2 struct magic_entry { - struct magic *mp; + struct magic *mp; uint32_t cont_count; uint32_t max_count; }; @@ -126,7 +117,7 @@ private int apprentice_1(struct magic_set *, const char *, int); private size_t apprentice_magic_strength(const struct magic *); private int apprentice_sort(const void *, const void *); private void apprentice_list(struct mlist *, int ); -private struct magic_map *apprentice_load(struct magic_set *, +private struct magic_map *apprentice_load(struct magic_set *, const char *, int); private struct mlist *mlist_alloc(void); private void mlist_free(struct mlist *); @@ -300,12 +291,21 @@ get_type(const struct type_tbl_s *tbl, const char *l, const char **t) return p->type; } +private off_t +maxoff_t(void) { + if (/*CONSTCOND*/sizeof(off_t) == sizeof(int)) + return CAST(off_t, INT_MAX); + if (/*CONSTCOND*/sizeof(off_t) == sizeof(long)) + return CAST(off_t, LONG_MAX); + return 0x7fffffff; +} + private int get_standard_integer_type(const char *l, const char **t) { int type; - if (isalpha((unsigned char)l[1])) { + if (isalpha(CAST(unsigned char, l[1]))) { switch (l[1]) { case 'C': /* "dC" and "uC" */ @@ -340,7 +340,7 @@ get_standard_integer_type(const char *l, const char **t) return FILE_INVALID; } l += 2; - } else if (isdigit((unsigned char)l[1])) { + } else if (isdigit(CAST(unsigned char, l[1]))) { /* * "d{num}" and "u{num}"; we only support {num} values * of 1, 2, 4, and 8 - the Single UNIX Specification @@ -351,7 +351,7 @@ get_standard_integer_type(const char *l, const char **t) * neither of them support values bigger than 8 or * non-power-of-2 values. */ - if (isdigit((unsigned char)l[2])) { + if (isdigit(CAST(unsigned char, l[2]))) { /* Multi-digit, so > 9 */ return FILE_INVALID; } @@ -437,8 +437,8 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) if (magicsize != FILE_MAGICSIZE) { file_error(ms, 0, "magic element size %lu != %lu", - (unsigned long)sizeof(*map->magic[0]), - (unsigned long)FILE_MAGICSIZE); + CAST(unsigned long, sizeof(*map->magic[0])), + CAST(unsigned long, FILE_MAGICSIZE)); return -1; } @@ -451,7 +451,7 @@ apprentice_1(struct magic_set *ms, const char *fn, int action) #ifndef COMPILE_ONLY map = apprentice_map(ms, fn); - if (map == (struct magic_map *)-1) + if (map == RCAST(struct magic_map *, -1)) return -1; if (map == NULL) { if (ms->flags & MAGIC_CHECK) @@ -503,7 +503,7 @@ file_ms_alloc(int flags) struct magic_set *ms; size_t i, len; - if ((ms = CAST(struct magic_set *, calloc((size_t)1, + if ((ms = CAST(struct magic_set *, calloc(CAST(size_t, 1u), sizeof(struct magic_set)))) == NULL) return NULL; @@ -581,6 +581,14 @@ mlist_alloc(void) return mlist; } +private void +mlist_free_one(struct mlist *ml) +{ + if (ml->map) + apprentice_unmap(CAST(struct magic_map *, ml->map)); + free(ml); +} + private void mlist_free(struct mlist *mlist) { @@ -589,14 +597,11 @@ mlist_free(struct mlist *mlist) if (mlist == NULL) return; - ml = mlist->next; - for (ml = mlist->next; (next = ml->next) != NULL; ml = next) { - if (ml->map) - apprentice_unmap(CAST(struct magic_map *, ml->map)); - free(ml); - if (ml == mlist) - break; + for (ml = mlist->next; ml != mlist; ml = next) { + next = ml->next; + mlist_free_one(ml); } + mlist_free_one(mlist); } #ifndef COMPILE_ONLY @@ -826,7 +831,7 @@ typesize(int type) case FILE_LEDOUBLE: return 8; default: - return (size_t)~0; + return CAST(size_t, ~0); } } @@ -836,8 +841,9 @@ typesize(int type) private size_t apprentice_magic_strength(const struct magic *m) { -#define MULT 10 - size_t ts, v, val = 2 * MULT; /* baseline strength */ +#define MULT 10U + size_t ts, v; + ssize_t val = 2 * MULT; /* baseline strength */ switch (m->type) { case FILE_DEFAULT: /* make sure this sorts last */ @@ -880,7 +886,7 @@ apprentice_magic_strength(const struct magic *m) case FILE_BEDOUBLE: case FILE_LEDOUBLE: ts = typesize(m->type); - if (ts == (size_t)~0) + if (ts == CAST(size_t, ~0)) abort(); val += ts * MULT; break; @@ -896,6 +902,8 @@ apprentice_magic_strength(const struct magic *m) break; case FILE_SEARCH: + if (m->vallen == 0) + break; val += m->vallen * MAX(MULT / m->vallen, 1); break; @@ -943,9 +951,6 @@ apprentice_magic_strength(const struct magic *m) abort(); } - if (val == 0) /* ensure we only return 0 for FILE_DEFAULT */ - val = 1; - switch (m->factor_op) { case FILE_FACTOR_OP_NONE: break; @@ -965,6 +970,9 @@ apprentice_magic_strength(const struct magic *m) abort(); } + if (val <= 0) /* ensure we only return 0 for FILE_DEFAULT */ + val = 1; + /* * Magic entries with no description get a bonus because they depend * on subsequent magic entries to print something. @@ -974,7 +982,7 @@ apprentice_magic_strength(const struct magic *m) return val; } -/* +/* * Sort callback for sorting entries by "strength" (basically length) */ private int @@ -992,7 +1000,7 @@ apprentice_sort(const void *a, const void *b) return 1; } -/* +/* * Shows sorted patterns list in the order which is used for the matching */ private void @@ -1088,12 +1096,12 @@ set_test_type(struct magic *mstart, struct magic *m) mstart->flag |= BINTEST; if (mstart->str_flags & STRING_TEXTTEST) mstart->flag |= TEXTTEST; - + if (mstart->flag & (TEXTTEST|BINTEST)) break; /* binary test if pattern is not text */ - if (file_looks_utf8(m->value.us, (size_t)m->vallen, NULL, + if (file_looks_utf8(m->value.us, CAST(size_t, m->vallen), NULL, NULL) <= 0) mstart->flag |= BINTEST; else @@ -1174,7 +1182,7 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs, size_t i; for (i = 0; bang[i].name != NULL; i++) { - if ((size_t)(len - 2) > bang[i].len && + if (CAST(size_t, len - 2) > bang[i].len && memcmp(bang[i].name, line + 2, bang[i].len) == 0) break; @@ -1227,7 +1235,7 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs, private int cmpstrp(const void *p1, const void *p2) { - return strcmp(*(char *const *)p1, *(char *const *)p2); + return strcmp(*RCAST(char *const *, p1), *RCAST(char *const *, p2)); } @@ -1253,10 +1261,10 @@ set_text_binary(struct magic_set *ms, struct magic_entry *me, uint32_t nme, if (me[i].mp->flag & BINTEST) { char *p = strstr(me[i].mp->desc, text); if (p && (p == me[i].mp->desc || - isspace((unsigned char)p[-1])) && + isspace(CAST(unsigned char, p[-1]))) && (p + len - me[i].mp->desc == MAXstring || (p[len] == '\0' || - isspace((unsigned char)p[len])))) + isspace(CAST(unsigned char, p[len]))))) (void)fprintf(stderr, "*** Possible " "binary test for text type\n"); } @@ -1280,7 +1288,7 @@ set_last_default(struct magic_set *ms, struct magic_entry *me, uint32_t nme) file_magwarn(ms, "level 0 \"default\" did not sort last"); } - return; + return; } } } @@ -1387,12 +1395,14 @@ apprentice_load(struct magic_set *ms, const char *fn, int action) filearr[files++] = mfn; } closedir(dir); - qsort(filearr, files, sizeof(*filearr), cmpstrp); - for (i = 0; i < files; i++) { - load_1(ms, action, filearr[i], &errs, mset); - free(filearr[i]); + if (filearr) { + qsort(filearr, files, sizeof(*filearr), cmpstrp); + for (i = 0; i < files; i++) { + load_1(ms, action, filearr[i], &errs, mset); + free(filearr[i]); + } + free(filearr); } - free(filearr); } else load_1(ms, action, fn, &errs, mset); if (errs) @@ -1450,12 +1460,12 @@ file_signextend(struct magic_set *ms, struct magic *m, uint64_t v) * the sign extension must have happened. */ case FILE_BYTE: - v = (signed char) v; + v = CAST(signed char, v); break; case FILE_SHORT: case FILE_BESHORT: case FILE_LESHORT: - v = (short) v; + v = CAST(short, v); break; case FILE_DATE: case FILE_BEDATE: @@ -1472,7 +1482,7 @@ file_signextend(struct magic_set *ms, struct magic *m, uint64_t v) case FILE_FLOAT: case FILE_BEFLOAT: case FILE_LEFLOAT: - v = (int32_t) v; + v = CAST(int32_t, v); break; case FILE_QUAD: case FILE_BEQUAD: @@ -1489,7 +1499,7 @@ file_signextend(struct magic_set *ms, struct magic *m, uint64_t v) case FILE_DOUBLE: case FILE_BEDOUBLE: case FILE_LEDOUBLE: - v = (int64_t) v; + v = CAST(int64_t, v); break; case FILE_STRING: case FILE_PSTRING: @@ -1616,7 +1626,7 @@ get_cond(const char *l, const char **t) for (p = cond_tbl; p->len; p++) { if (strncmp(l, p->name, p->len) == 0 && - isspace((unsigned char)l[p->len])) { + isspace(CAST(unsigned char, l[p->len]))) { if (t) *t = l + p->len; break; @@ -1674,7 +1684,7 @@ parse_indirect_modifier(struct magic_set *ms, struct magic *m, const char **lp) { const char *l = *lp; - while (!isspace((unsigned char)*++l)) + while (!isspace(CAST(unsigned char, *++l))) switch (*l) { case CHAR_INDIRECT_RELATIVE: m->str_flags |= INDIRECT_RELATIVE; @@ -1700,7 +1710,7 @@ parse_op_modifier(struct magic_set *ms, struct magic *m, const char **lp, ++l; m->mask_op |= op; - val = (uint64_t)strtoull(l, &t, 0); + val = CAST(uint64_t, strtoull(l, &t, 0)); l = t; m->num_mask = file_signextend(ms, m, val); eatsize(&l); @@ -1714,7 +1724,7 @@ parse_string_modifier(struct magic_set *ms, struct magic *m, const char **lp) char *t; int have_range = 0; - while (!isspace((unsigned char)*++l)) { + while (!isspace(CAST(unsigned char, *++l))) { switch (*l) { case '0': case '1': case '2': case '3': case '4': case '5': @@ -1796,7 +1806,7 @@ parse_string_modifier(struct magic_set *ms, struct magic *m, const char **lp) goto out; } /* allow multiple '/' for readability */ - if (l[1] == '/' && !isspace((unsigned char)l[2])) + if (l[1] == '/' && !isspace(CAST(unsigned char, l[2]))) l++; } if (string_modifier_check(ms, m) == -1) @@ -1833,7 +1843,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, */ while (*l == '>') { ++l; /* step over */ - cont_level++; + cont_level++; } #ifdef ENABLE_CONDITIONALS if (cont_level == 0 || cont_level > last_cont_level) @@ -1851,7 +1861,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, return -1; } m = &me->mp[me->cont_count - 1]; - diff = (int32_t)cont_level - (int32_t)m->cont_level; + diff = CAST(int32_t, cont_level) - CAST(int32_t, m->cont_level); if (diff > 1) file_magwarn(ms, "New continuation level %u is more " "than one larger than current level %u", cont_level, @@ -1864,7 +1874,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, file_oomem(ms, sizeof(*nm) * cnt); return -1; } - me->mp = m = nm; + me->mp = nm; me->max_count = CAST(uint32_t, cnt); } m = &me->mp[me->cont_count++]; @@ -1910,7 +1920,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, } /* get offset, then skip over it */ - m->offset = (int32_t)strtol(l, &t, 0); + m->offset = CAST(int32_t, strtol(l, &t, 0)); if (l == t) { if (ms->flags & MAGIC_CHECK) file_magwarn(ms, "offset `%s' invalid", l); @@ -2008,8 +2018,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, m->in_op |= FILE_OPINDIRECT; l++; } - if (isdigit((unsigned char)*l) || *l == '-') { - m->in_offset = (int32_t)strtol(l, &t, 0); + if (isdigit(CAST(unsigned char, *l)) || *l == '-') { + m->in_offset = CAST(int32_t, strtol(l, &t, 0)); if (l == t) { if (ms->flags & MAGIC_CHECK) file_magwarn(ms, @@ -2018,7 +2028,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, } l = t; } - if (*l++ != ')' || + if (*l++ != ')' || ((m->in_op & FILE_OPINDIRECT) && *l++ != ')')) { if (ms->flags & MAGIC_CHECK) file_magwarn(ms, @@ -2043,7 +2053,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, /* * Try it as a keyword type prefixed by "u"; match what * follows the "u". If that fails, try it as an SUS - * integer type. + * integer type. */ m->type = get_type(type_tbl, l + 1, &l); if (m->type == FILE_INVALID) { @@ -2072,7 +2082,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, */ if (*l == 'd') m->type = get_standard_integer_type(l, &l); - else if (*l == 's' && !isalpha((unsigned char)l[1])) { + else if (*l == 's' + && !isalpha(CAST(unsigned char, l[1]))) { m->type = FILE_STRING; ++l; } @@ -2083,7 +2094,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, /* Not found - try it as a special keyword. */ m->type = get_type(special_tbl, l, &l); } - + if (m->type == FILE_INVALID) { if (ms->flags & MAGIC_CHECK) file_magwarn(ms, "type `%s' invalid", l); @@ -2130,7 +2141,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, * anything if mask = 0 (unless you have a better idea) */ EATAB; - + switch (*l) { case '>': case '<': @@ -2162,8 +2173,8 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, break; default: m->reln = '='; /* the default relation */ - if (*l == 'x' && ((isascii((unsigned char)l[1]) && - isspace((unsigned char)l[1])) || !l[1])) { + if (*l == 'x' && ((isascii(CAST(unsigned char, l[1])) && + isspace(CAST(unsigned char, l[1]))) || !l[1])) { m->reln = *l; ++l; } @@ -2177,7 +2188,7 @@ parse(struct magic_set *ms, struct magic_entry *me, const char *line, /* * TODO finish this macro and start using it! - * #define offsetcheck {if (offset > ms->bytes_max -1) + * #define offsetcheck {if (offset > ms->bytes_max -1) * magwarn("offset too big"); } */ @@ -2260,11 +2271,11 @@ parse_strength(struct magic_set *ms, struct magic_entry *me, const char *line) file_magwarn(ms, "Too large factor `%lu'", factor); goto out; } - if (*el && !isspace((unsigned char)*el)) { + if (*el && !isspace(CAST(unsigned char, *el))) { file_magwarn(ms, "Bad factor `%s'", l); goto out; } - m->factor = (uint8_t)factor; + m->factor = CAST(uint8_t, factor); if (m->factor == 0 && m->factor_op == FILE_FACTOR_OP_DIV) { file_magwarn(ms, "Cannot have factor op `%c' and factor %u", m->factor_op, m->factor); @@ -2295,9 +2306,9 @@ parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line, if (buf[0] != '\0') { len = nt ? strlen(buf) : len; file_magwarn(ms, "Current entry already has a %s type " - "`%.*s', new type `%s'", name, (int)len, buf, l); + "`%.*s', new type `%s'", name, CAST(int, len), buf, l); return -1; - } + } if (*m->desc == '\0') { file_magwarn(ms, "Current entry does not yet have a " @@ -2316,7 +2327,7 @@ parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line, file_magwarn(ms, "%s type `%s' truncated %" SIZE_T_FORMAT "u", name, line, i); } else { - if (!isspace((unsigned char)*l) && !goodchar(*l, extra)) + if (!isspace(CAST(unsigned char, *l)) && !goodchar(*l, extra)) file_magwarn(ms, "%s type `%s' has bad char '%c'", name, line, *l); if (nt) @@ -2418,7 +2429,7 @@ check_format_type(const char *ptr, int type, const char **estr) if (*ptr == '#') ptr++; #define CHECKLEN() do { \ - for (len = cnt = 0; isdigit((unsigned char)*ptr); ptr++, cnt++) \ + for (len = cnt = 0; isdigit(CAST(unsigned char, *ptr)); ptr++, cnt++) \ len = len * 10 + (*ptr - '0'); \ if (cnt > 5 || len > 1024) \ goto toolong; \ @@ -2434,7 +2445,7 @@ check_format_type(const char *ptr, int type, const char **estr) if (*ptr++ != 'l') goto invalid; } - + switch (*ptr++) { #ifdef STRICT_FORMAT /* "long" formats are int formats for us */ /* so don't accept the 'l' modifier */ @@ -2452,7 +2463,7 @@ check_format_type(const char *ptr, int type, const char **estr) default: goto invalid; } - + /* * Don't accept h and hh modifiers. They make writing * magic entries more complicated, for very little benefit @@ -2508,7 +2519,7 @@ check_format_type(const char *ptr, int type, const char **estr) default: goto invalid; } - + case FILE_FMT_FLOAT: case FILE_FMT_DOUBLE: if (*ptr == '-') @@ -2527,30 +2538,30 @@ check_format_type(const char *ptr, int type, const char **estr) case 'g': case 'G': return 0; - + default: goto invalid; } - + case FILE_FMT_STR: if (*ptr == '-') ptr++; - while (isdigit((unsigned char )*ptr)) + while (isdigit(CAST(unsigned char, *ptr))) ptr++; if (*ptr == '.') { ptr++; - while (isdigit((unsigned char )*ptr)) + while (isdigit(CAST(unsigned char , *ptr))) ptr++; } - + switch (*ptr++) { case 's': return 0; default: goto invalid; } - + default: /* internal error */ abort(); @@ -2561,7 +2572,7 @@ check_format_type(const char *ptr, int type, const char **estr) *estr = "too long"; return -1; } - + /* * Check that the optional printf format in description matches * the type of the magic. @@ -2584,7 +2595,7 @@ check_format(struct magic_set *ms, struct magic *m) if (m->type >= file_nformats) { file_magwarn(ms, "Internal error inconsistency between " - "m->type and format strings"); + "m->type and format strings"); return -1; } if (file_formats[m->type] == FILE_FMT_NONE) { @@ -2604,7 +2615,7 @@ check_format(struct magic_set *ms, struct magic *m) file_names[m->type], m->desc); return -1; } - + for (; *ptr; ptr++) { if (*ptr == '%') { file_magwarn(ms, @@ -2617,9 +2628,9 @@ check_format(struct magic_set *ms, struct magic *m) return 0; } -/* - * Read a numeric value from a pointer, into the value union of a magic - * pointer, according to the magic type. Update the string pointer to point +/* + * Read a numeric value from a pointer, into the value union of a magic + * pointer, according to the magic type. Update the string pointer to point * just after the number read. Return 0 for success, non-zero for failure. */ private int @@ -2685,7 +2696,7 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action) return 0; default: errno = 0; - ull = (uint64_t)strtoull(*p, &ep, 0); + ull = CAST(uint64_t, strtoull(*p, &ep, 0)); m->value.q = file_signextend(ms, m, ull); if (*p == ep) { file_magwarn(ms, "Unparseable number `%s'", *p); @@ -2694,24 +2705,24 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action) uint64_t x; const char *q; - if (ts == (size_t)~0) { + if (ts == CAST(size_t, ~0)) { file_magwarn(ms, "Expected numeric type got `%s'", type_tbl[m->type].name); } - for (q = *p; isspace((unsigned char)*q); q++) + for (q = *p; isspace(CAST(unsigned char, *q)); q++) continue; if (*q == '-') - ull = -(int64_t)ull; + ull = -CAST(int64_t, ull); switch (ts) { case 1: - x = (uint64_t)(ull & ~0xffULL); + x = CAST(uint64_t, ull & ~0xffULL); break; case 2: - x = (uint64_t)(ull & ~0xffffULL); + x = CAST(uint64_t, ull & ~0xffffULL); break; case 4: - x = (uint64_t)(ull & ~0xffffffffULL); + x = CAST(uint64_t, ull & ~0xffffffffULL); break; case 8: x = 0; @@ -2751,7 +2762,7 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) int val; while ((c = *s++) != '\0') { - if (isspace((unsigned char) c)) + if (isspace(CAST(unsigned char, c))) break; if (p >= pmax) { file_error(ms, 0, "string too long: `%s'", origs); @@ -2775,8 +2786,8 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) /*FALLTHROUGH*/ default: if (warn) { - if (isprint((unsigned char)c)) { - /* Allow escaping of + if (isprint(CAST(unsigned char, c))) { + /* Allow escaping of * ``relations'' */ if (strchr("<>&^=!", c) == NULL && (m->type != FILE_REGEX || @@ -2813,7 +2824,7 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) case '!': /* and baskslash itself */ case '\\': - *p++ = (char) c; + *p++ = CAST(char, c); break; case 'a': @@ -2865,7 +2876,7 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) } else --s; - *p++ = (char)val; + *p++ = CAST(char, val); break; /* \x and up to 2 hex digits */ @@ -2881,18 +2892,18 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) --s; } else --s; - *p++ = (char)val; + *p++ = CAST(char, val); break; } } else - *p++ = (char)c; + *p++ = CAST(char, c); } --s; out: *p = '\0'; m->vallen = CAST(unsigned char, (p - origp)); if (m->type == FILE_PSTRING) - m->vallen += (unsigned char)file_pstring_length_size(m); + m->vallen += CAST(unsigned char, file_pstring_length_size(m)); return s; } @@ -2901,9 +2912,9 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn) private int hextoint(int c) { - if (!isascii((unsigned char) c)) + if (!isascii(CAST(unsigned char, c))) return -1; - if (isdigit((unsigned char) c)) + if (isdigit(CAST(unsigned char, c))) return c - '0'; if ((c >= 'a') && (c <= 'f')) return c + 10 - 'a'; @@ -2981,7 +2992,7 @@ eatsize(const char **p) { const char *l = *p; - if (LOWCASE(*l) == 'u') + if (LOWCASE(*l) == 'u') l++; switch (LOWCASE(*l)) { @@ -3052,17 +3063,17 @@ apprentice_map(struct magic_set *ms, const char *fn) file_error(ms, errno, "cannot stat `%s'", dbname); goto error; } - if (st.st_size < 8 || st.st_size > MAXMAGIC_SIZE) { + if (st.st_size < 8 || st.st_size > maxoff_t()) { file_error(ms, 0, "file `%s' is too %s", dbname, st.st_size < 8 ? "small" : "large"); goto error; } - map->len = (size_t)st.st_size; + map->len = CAST(size_t, st.st_size); #ifdef QUICK map->type = MAP_TYPE_MMAP; - if ((map->p = mmap(0, (size_t)st.st_size, PROT_READ|PROT_WRITE, - MAP_PRIVATE|MAP_FILE, fd, (off_t)0)) == MAP_FAILED) { + if ((map->p = mmap(0, CAST(size_t, st.st_size), PROT_READ|PROT_WRITE, + MAP_PRIVATE|MAP_FILE, fd, CAST(off_t, 0))) == MAP_FAILED) { file_error(ms, errno, "cannot map `%s'", dbname); goto error; } @@ -3082,11 +3093,11 @@ apprentice_map(struct magic_set *ms, const char *fn) fd = -1; if (check_buffer(ms, map, dbname) != 0) { - rv = (struct magic_map *)-1; + rv = RCAST(struct magic_map *, -1); goto error; } #ifdef QUICK - if (mprotect(map->p, (size_t)st.st_size, PROT_READ) == -1) { + if (mprotect(map->p, CAST(size_t, st.st_size), PROT_READ) == -1) { file_error(ms, errno, "cannot mprotect `%s'", dbname); goto error; } @@ -3130,7 +3141,7 @@ check_buffer(struct magic_set *ms, struct magic_map *map, const char *dbname) VERSIONNO, dbname, version); return -1; } - entries = (uint32_t)(map->len / sizeof(struct magic)); + entries = CAST(uint32_t, map->len / sizeof(struct magic)); if ((entries * sizeof(struct magic)) != map->len) { file_error(ms, 0, "Size of `%s' %" SIZE_T_FORMAT "u is not " "a multiple of %" SIZE_T_FORMAT "u", @@ -3179,10 +3190,10 @@ apprentice_compile(struct magic_set *ms, struct magic_map *map, const char *fn) dbname = mkdbname(ms, fn, 1); - if (dbname == NULL) + if (dbname == NULL) goto out; - if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1) + if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1) { file_error(ms, errno, "cannot open `%s'", dbname); goto out; @@ -3192,14 +3203,14 @@ apprentice_compile(struct magic_set *ms, struct magic_map *map, const char *fn) hdr.h[1] = VERSIONNO; memcpy(hdr.h + 2, map->nmagic, nm); - if (write(fd, &hdr, sizeof(hdr)) != (ssize_t)sizeof(hdr)) { + if (write(fd, &hdr, sizeof(hdr)) != CAST(ssize_t, sizeof(hdr))) { file_error(ms, errno, "error writing `%s'", dbname); goto out2; } for (i = 0; i < MAGIC_SETS; i++) { len = m * map->nmagic[i]; - if (write(fd, map->magic[i], len) != (ssize_t)len) { + if (write(fd, map->magic[i], len) != CAST(ssize_t, len)) { file_error(ms, errno, "error writing `%s'", dbname); goto out2; } @@ -3245,7 +3256,8 @@ mkdbname(struct magic_set *ms, const char *fn, int strip) q++; /* Compatibility with old code that looked in .mime */ if (ms->flags & MAGIC_MIME) { - if (asprintf(&buf, "%.*s.mime%s", (int)(q - fn), fn, ext) < 0) + if (asprintf(&buf, "%.*s.mime%s", CAST(int, q - fn), fn, ext) + < 0) return NULL; if (access(buf, R_OK) != -1) { ms->flags &= MAGIC_MIME_TYPE; @@ -3253,7 +3265,7 @@ mkdbname(struct magic_set *ms, const char *fn, int strip) } free(buf); } - if (asprintf(&buf, "%.*s%s", (int)(q - fn), fn, ext) < 0) + if (asprintf(&buf, "%.*s%s", CAST(int, q - fn), fn, ext) < 0) return NULL; /* Compatibility with old code that looked in .mime */ @@ -3280,8 +3292,8 @@ private uint16_t swap2(uint16_t sv) { uint16_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); d[0] = s[1]; d[1] = s[0]; return rv; @@ -3294,8 +3306,8 @@ private uint32_t swap4(uint32_t sv) { uint32_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); d[0] = s[3]; d[1] = s[2]; d[2] = s[1]; @@ -3310,8 +3322,8 @@ private uint64_t swap8(uint64_t sv) { uint64_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); #if 0 d[0] = s[3]; d[1] = s[2]; @@ -3341,9 +3353,9 @@ private void bs1(struct magic *m) { m->cont_level = swap2(m->cont_level); - m->offset = swap4((uint32_t)m->offset); - m->in_offset = swap4((uint32_t)m->in_offset); - m->lineno = swap4((uint32_t)m->lineno); + m->offset = swap4(CAST(uint32_t, m->offset)); + m->in_offset = swap4(CAST(uint32_t, m->in_offset)); + m->lineno = swap4(CAST(uint32_t, m->lineno)); if (IS_STRING(m->type)) { m->str_range = swap4(m->str_range); m->str_flags = swap4(m->str_flags); @@ -3354,7 +3366,7 @@ bs1(struct magic *m) } } -protected size_t +protected size_t file_pstring_length_size(const struct magic *m) { switch (m->str_flags & PSTRING_LEN) { @@ -3375,7 +3387,7 @@ protected size_t file_pstring_get_length(const struct magic *m, const char *ss) { size_t len = 0; - const unsigned char *s = (const unsigned char *)ss; + const unsigned char *s = RCAST(const unsigned char *, ss); unsigned int s3, s2, s1, s0; switch (m->str_flags & PSTRING_LEN) { diff --git a/libmagic/src/main/cpp/file/apptype.c b/libmagic/src/main/cpp/file/apptype.c index 164c4f3..1bb33e4 100644 --- a/libmagic/src/main/cpp/file/apptype.c +++ b/libmagic/src/main/cpp/file/apptype.c @@ -1,15 +1,15 @@ /* * Adapted from: apptype.c, Written by Eberhard Mattes and put into the * public domain - * + * * Notes: 1. Qualify the filename so that DosQueryAppType does not do extraneous * searches. - * + * * 2. DosQueryAppType will return FAPPTYP_DOS on a file ending with ".com" * (other than an OS/2 exe or Win exe with this name). Eberhard Mattes * remarks Tue, 6 Apr 93: Moreover, it reports the type of the (new and very * bug ridden) Win Emacs as "OS/2 executable". - * + * * 3. apptype() uses the filename if given, otherwise a tmp file is created with * the contents of buf. If buf is not the complete file, apptype can * incorrectly identify the exe type. The "-z" option of "file" is the reason @@ -18,16 +18,16 @@ /* * amai: Darrel Hankerson did the changes described here. - * + * * It remains to check the validity of comments (2.) since it's referred to an * "old" OS/2 version. - * + * */ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: apptype.c,v 1.12 2011/08/28 07:03:27 christos Exp $") +FILE_RCSID("@(#)$File: apptype.c,v 1.14 2018/09/09 20:33:28 christos Exp $") #endif /* lint */ #include diff --git a/libmagic/src/main/cpp/file/ascmagic.c b/libmagic/src/main/cpp/file/ascmagic.c index 2d1abe5..bcebeab 100644 --- a/libmagic/src/main/cpp/file/ascmagic.c +++ b/libmagic/src/main/cpp/file/ascmagic.c @@ -35,7 +35,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: ascmagic.c,v 1.98 2017/11/02 20:25:39 christos Exp $") +FILE_RCSID("@(#)$File: ascmagic.c,v 1.102 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -80,7 +80,13 @@ file_ascmagic(struct magic_set *ms, const struct buffer *b, int text) const char *type = NULL; bb = *b; - bb.flen = trim_nuls(b->fbuf, b->flen); + bb.flen = trim_nuls(CAST(const unsigned char *, b->fbuf), b->flen); + /* + * Avoid trimming at an odd byte if the original buffer was evenly + * sized; this avoids losing the last character on UTF-16 LE text + */ + if ((bb.flen & 1) && !(b->flen & 1)) + bb.flen++; /* If file doesn't look like any sort of text, give up. */ if (file_encoding(ms, &bb, &ubuf, &ulen, &code, &code_mime, @@ -96,12 +102,12 @@ file_ascmagic(struct magic_set *ms, const struct buffer *b, int text) } protected int -file_ascmagic_with_encoding(struct magic_set *ms, +file_ascmagic_with_encoding(struct magic_set *ms, const struct buffer *b, unichar *ubuf, size_t ulen, const char *code, const char *type, int text) { struct buffer bb; - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; unsigned char *utf8_buf = NULL, *utf8_end; size_t mlen, i; @@ -121,7 +127,7 @@ file_ascmagic_with_encoding(struct magic_set *ms, int n_nel = 0; int executable = 0; - size_t last_line_end = (size_t)-1; + size_t last_line_end = CAST(size_t, -1); int has_long_lines = 0; nbytes = trim_nuls(buf, nbytes); @@ -145,7 +151,7 @@ file_ascmagic_with_encoding(struct magic_set *ms, == NULL) goto done; buffer_init(&bb, b->fd, utf8_buf, - (size_t)(utf8_end - utf8_buf)); + CAST(size_t, utf8_end - utf8_buf)); if ((rv = file_softmagic(ms, &bb, NULL, NULL, TEXTTEST, text)) == 0) @@ -324,42 +330,42 @@ encode_utf8(unsigned char *buf, size_t len, unichar *ubuf, size_t ulen) if (ubuf[i] <= 0x7f) { if (end - buf < 1) return NULL; - *buf++ = (unsigned char)ubuf[i]; + *buf++ = CAST(unsigned char, ubuf[i]); } else if (ubuf[i] <= 0x7ff) { if (end - buf < 2) return NULL; - *buf++ = (unsigned char)((ubuf[i] >> 6) + 0xc0); - *buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] >> 6) + 0xc0); + *buf++ = CAST(unsigned char, (ubuf[i] & 0x3f) + 0x80); } else if (ubuf[i] <= 0xffff) { if (end - buf < 3) return NULL; - *buf++ = (unsigned char)((ubuf[i] >> 12) + 0xe0); - *buf++ = (unsigned char)(((ubuf[i] >> 6) & 0x3f) + 0x80); - *buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] >> 12) + 0xe0); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 6) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] & 0x3f) + 0x80); } else if (ubuf[i] <= 0x1fffff) { if (end - buf < 4) return NULL; - *buf++ = (unsigned char)((ubuf[i] >> 18) + 0xf0); - *buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 6) & 0x3f) + 0x80); - *buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] >> 18) + 0xf0); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 12) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 6) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] & 0x3f) + 0x80); } else if (ubuf[i] <= 0x3ffffff) { if (end - buf < 5) return NULL; - *buf++ = (unsigned char)((ubuf[i] >> 24) + 0xf8); - *buf++ = (unsigned char)(((ubuf[i] >> 18) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 6) & 0x3f) + 0x80); - *buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] >> 24) + 0xf8); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 18) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 12) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 6) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] & 0x3f) + 0x80); } else if (ubuf[i] <= 0x7fffffff) { if (end - buf < 6) return NULL; - *buf++ = (unsigned char)((ubuf[i] >> 30) + 0xfc); - *buf++ = (unsigned char)(((ubuf[i] >> 24) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 18) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 12) & 0x3f) + 0x80); - *buf++ = (unsigned char)(((ubuf[i] >> 6) & 0x3f) + 0x80); - *buf++ = (unsigned char)((ubuf[i] & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] >> 30) + 0xfc); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 24) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 18) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 12) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, ((ubuf[i] >> 6) & 0x3f) + 0x80); + *buf++ = CAST(unsigned char, (ubuf[i] & 0x3f) + 0x80); } else /* Invalid character */ return NULL; } diff --git a/libmagic/src/main/cpp/file/asprintf.c b/libmagic/src/main/cpp/file/asprintf.c index b065380..2d14e80 100644 --- a/libmagic/src/main/cpp/file/asprintf.c +++ b/libmagic/src/main/cpp/file/asprintf.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -29,7 +29,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: asprintf.c,v 1.3 2009/02/03 20:27:51 christos Exp $") +FILE_RCSID("@(#)$File: asprintf.c,v 1.5 2018/09/09 20:33:28 christos Exp $") #endif int asprintf(char **ptr, const char *fmt, ...) diff --git a/libmagic/src/main/cpp/file/buffer.c b/libmagic/src/main/cpp/file/buffer.c index 5f76b80..fd40416 100644 --- a/libmagic/src/main/cpp/file/buffer.c +++ b/libmagic/src/main/cpp/file/buffer.c @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: buffer.c,v 1.4 2018/02/21 21:26:00 christos Exp $") +FILE_RCSID("@(#)$File: buffer.c,v 1.5 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -61,13 +61,13 @@ buffer_fill(const struct buffer *bb) struct buffer *b = CCAST(struct buffer *, bb); if (b->elen != 0) - return b->elen == (size_t)~0 ? -1 : 0; + return b->elen == CAST(size_t, ~0) ? -1 : 0; if (!S_ISREG(b->st.st_mode)) goto out; - b->elen = (size_t)b->st.st_size < b->flen ? - (size_t)b->st.st_size : b->flen; + b->elen = CAST(size_t, b->st.st_size) < b->flen ? + CAST(size_t, b->st.st_size) : b->flen; if ((b->ebuf = malloc(b->elen)) == NULL) goto out; @@ -79,6 +79,6 @@ buffer_fill(const struct buffer *bb) return 0; out: - b->elen = (size_t)~0; + b->elen = CAST(size_t, ~0); return -1; } diff --git a/libmagic/src/main/cpp/file/cdf.c b/libmagic/src/main/cpp/file/cdf.c index aad68cd..556a3ff 100644 --- a/libmagic/src/main/cpp/file/cdf.c +++ b/libmagic/src/main/cpp/file/cdf.c @@ -35,7 +35,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: cdf.c,v 1.110 2017/12/19 00:21:21 christos Exp $") +FILE_RCSID("@(#)$File: cdf.c,v 1.114 2019/02/20 02:35:27 christos Exp $") #endif #include @@ -47,9 +47,7 @@ FILE_RCSID("@(#)$File: cdf.c,v 1.110 2017/12/19 00:21:21 christos Exp $") #include #include #include -#ifdef HAVE_LIMITS_H #include -#endif #ifndef EFTYPE #define EFTYPE EINVAL @@ -68,11 +66,14 @@ static union { uint32_t u; } cdf_bo; -#define NEED_SWAP (cdf_bo.u == (uint32_t)0x01020304) +#define NEED_SWAP (cdf_bo.u == CAST(uint32_t, 0x01020304)) -#define CDF_TOLE8(x) ((uint64_t)(NEED_SWAP ? _cdf_tole8(x) : (uint64_t)(x))) -#define CDF_TOLE4(x) ((uint32_t)(NEED_SWAP ? _cdf_tole4(x) : (uint32_t)(x))) -#define CDF_TOLE2(x) ((uint16_t)(NEED_SWAP ? _cdf_tole2(x) : (uint16_t)(x))) +#define CDF_TOLE8(x) \ + (CAST(uint64_t, NEED_SWAP ? _cdf_tole8(x) : CAST(uint64_t, x))) +#define CDF_TOLE4(x) \ + (CAST(uint32_t, NEED_SWAP ? _cdf_tole4(x) : CAST(uint32_t, x))) +#define CDF_TOLE2(x) \ + (CAST(uint16_t, NEED_SWAP ? _cdf_tole2(x) : CAST(uint16_t, x))) #define CDF_TOLE(x) (/*CONSTCOND*/sizeof(x) == 2 ? \ CDF_TOLE2(CAST(uint16_t, x)) : \ (/*CONSTCOND*/sizeof(x) == 4 ? \ @@ -90,7 +91,8 @@ static void * cdf_malloc(const char *file __attribute__((__unused__)), size_t line __attribute__((__unused__)), size_t n) { - DPRINTF(("%s,%zu: %s %zu\n", file, line, __func__, n)); + DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n", + file, line, __func__, n)); return malloc(n); } @@ -99,7 +101,8 @@ static void * cdf_realloc(const char *file __attribute__((__unused__)), size_t line __attribute__((__unused__)), void *p, size_t n) { - DPRINTF(("%s,%zu: %s %zu\n", file, line, __func__, n)); + DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n", + file, line, __func__, n)); return realloc(p, n); } @@ -108,7 +111,8 @@ static void * cdf_calloc(const char *file __attribute__((__unused__)), size_t line __attribute__((__unused__)), size_t n, size_t u) { - DPRINTF(("%s,%zu: %s %zu %zu\n", file, line, __func__, n, u)); + DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u %" + SIZE_T_FORMAT "u\n", file, line, __func__, n, u)); return calloc(n, u); } @@ -119,8 +123,8 @@ static uint16_t _cdf_tole2(uint16_t sv) { uint16_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); d[0] = s[1]; d[1] = s[0]; return rv; @@ -133,8 +137,8 @@ static uint32_t _cdf_tole4(uint32_t sv) { uint32_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); d[0] = s[3]; d[1] = s[2]; d[2] = s[1]; @@ -149,8 +153,8 @@ static uint64_t _cdf_tole8(uint64_t sv) { uint64_t rv; - uint8_t *s = (uint8_t *)(void *)&sv; - uint8_t *d = (uint8_t *)(void *)&rv; + uint8_t *s = RCAST(uint8_t *, RCAST(void *, &sv)); + uint8_t *d = RCAST(uint8_t *, RCAST(void *, &rv)); d[0] = s[7]; d[1] = s[6]; d[2] = s[5]; @@ -215,15 +219,17 @@ cdf_swap_header(cdf_header_t *h) h->h_min_size_standard_stream = CDF_TOLE4(h->h_min_size_standard_stream); h->h_secid_first_sector_in_short_sat = - CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_short_sat); + CDF_TOLE4(CAST(uint32_t, h->h_secid_first_sector_in_short_sat)); h->h_num_sectors_in_short_sat = CDF_TOLE4(h->h_num_sectors_in_short_sat); h->h_secid_first_sector_in_master_sat = - CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_master_sat); + CDF_TOLE4(CAST(uint32_t, h->h_secid_first_sector_in_master_sat)); h->h_num_sectors_in_master_sat = CDF_TOLE4(h->h_num_sectors_in_master_sat); - for (i = 0; i < __arraycount(h->h_master_sat); i++) - h->h_master_sat[i] = CDF_TOLE4((uint32_t)h->h_master_sat[i]); + for (i = 0; i < __arraycount(h->h_master_sat); i++) { + h->h_master_sat[i] = + CDF_TOLE4(CAST(uint32_t, h->h_master_sat[i])); + } } void @@ -256,15 +262,16 @@ void cdf_swap_dir(cdf_directory_t *d) { d->d_namelen = CDF_TOLE2(d->d_namelen); - d->d_left_child = CDF_TOLE4((uint32_t)d->d_left_child); - d->d_right_child = CDF_TOLE4((uint32_t)d->d_right_child); - d->d_storage = CDF_TOLE4((uint32_t)d->d_storage); + d->d_left_child = CDF_TOLE4(CAST(uint32_t, d->d_left_child)); + d->d_right_child = CDF_TOLE4(CAST(uint32_t, d->d_right_child)); + d->d_storage = CDF_TOLE4(CAST(uint32_t, d->d_storage)); d->d_storage_uuid[0] = CDF_TOLE8(d->d_storage_uuid[0]); d->d_storage_uuid[1] = CDF_TOLE8(d->d_storage_uuid[1]); d->d_flags = CDF_TOLE4(d->d_flags); - d->d_created = CDF_TOLE8((uint64_t)d->d_created); - d->d_modified = CDF_TOLE8((uint64_t)d->d_modified); - d->d_stream_first_sector = CDF_TOLE4((uint32_t)d->d_stream_first_sector); + d->d_created = CDF_TOLE8(CAST(uint64_t, d->d_created)); + d->d_modified = CDF_TOLE8(CAST(uint64_t, d->d_modified)); + d->d_stream_first_sector = CDF_TOLE4( + CAST(uint32_t, d->d_stream_first_sector)); d->d_size = CDF_TOLE4(d->d_size); } @@ -321,11 +328,11 @@ static int cdf_check_stream_offset(const cdf_stream_t *sst, const cdf_header_t *h, const void *p, size_t tail, int line) { - const char *b = (const char *)sst->sst_tab; - const char *e = ((const char *)p) + tail; + const char *b = RCAST(const char *, sst->sst_tab); + const char *e = RCAST(const char *, p) + tail; size_t ss = cdf_check_stream(sst, h); /*LINTED*/(void)&line; - if (e >= b && (size_t)(e - b) <= ss * sst->sst_len) + if (e >= b && CAST(size_t, e - b) <= ss * sst->sst_len) return 0; DPRINTF(("%d: offset begin %p < end %p || %" SIZE_T_FORMAT "u" " > %" SIZE_T_FORMAT "u [%" SIZE_T_FORMAT "u %" @@ -338,23 +345,23 @@ cdf_check_stream_offset(const cdf_stream_t *sst, const cdf_header_t *h, static ssize_t cdf_read(const cdf_info_t *info, off_t off, void *buf, size_t len) { - size_t siz = (size_t)off + len; + size_t siz = CAST(size_t, off + len); - if ((off_t)(off + len) != (off_t)siz) + if (CAST(off_t, off + len) != CAST(off_t, siz)) goto out; if (info->i_buf != NULL && info->i_len >= siz) { (void)memcpy(buf, &info->i_buf[off], len); - return (ssize_t)len; + return CAST(ssize_t, len); } if (info->i_fd == -1) goto out; - if (pread(info->i_fd, buf, len, off) != (ssize_t)len) + if (pread(info->i_fd, buf, len, off) != CAST(ssize_t, len)) return -1; - return (ssize_t)len; + return CAST(ssize_t, len); out: errno = EINVAL; return -1; @@ -366,7 +373,7 @@ cdf_read_header(const cdf_info_t *info, cdf_header_t *h) char buf[512]; (void)memcpy(cdf_bo.s, "\01\02\03\04", 4); - if (cdf_read(info, (off_t)0, buf, sizeof(buf)) == -1) + if (cdf_read(info, CAST(off_t, 0), buf, sizeof(buf)) == -1) return -1; cdf_unpack_header(h, buf); cdf_swap_header(h); @@ -400,7 +407,7 @@ cdf_read_sector(const cdf_info_t *info, void *buf, size_t offs, size_t len, size_t ss = CDF_SEC_SIZE(h); size_t pos = CDF_SEC_POS(h, id); assert(ss == len); - return cdf_read(info, (off_t)pos, ((char *)buf) + offs, len); + return cdf_read(info, CAST(off_t, pos), RCAST(char *, buf) + offs, len); } ssize_t @@ -416,8 +423,8 @@ cdf_read_short_sector(const cdf_stream_t *sst, void *buf, size_t offs, pos + len, CDF_SEC_SIZE(h) * sst->sst_len)); goto out; } - (void)memcpy(((char *)buf) + offs, - ((const char *)sst->sst_tab) + pos, len); + (void)memcpy(RCAST(char *, buf) + offs, + RCAST(const char *, sst->sst_tab) + pos, len); return len; out: errno = EFTYPE; @@ -460,7 +467,7 @@ cdf_read_sat(const cdf_info_t *info, cdf_header_t *h, cdf_sat_t *sat) if (h->h_master_sat[i] < 0) break; if (cdf_read_sector(info, sat->sat_tab, ss * i, ss, h, - h->h_master_sat[i]) != (ssize_t)ss) { + h->h_master_sat[i]) != CAST(ssize_t, ss)) { DPRINTF(("Reading sector %d", h->h_master_sat[i])); goto out1; } @@ -477,27 +484,29 @@ cdf_read_sat(const cdf_info_t *info, cdf_header_t *h, cdf_sat_t *sat) DPRINTF(("Reading master sector loop limit")); goto out3; } - if (cdf_read_sector(info, msa, 0, ss, h, mid) != (ssize_t)ss) { + if (cdf_read_sector(info, msa, 0, ss, h, mid) != + CAST(ssize_t, ss)) { DPRINTF(("Reading master sector %d", mid)); goto out2; } for (k = 0; k < nsatpersec; k++, i++) { - sec = CDF_TOLE4((uint32_t)msa[k]); + sec = CDF_TOLE4(CAST(uint32_t, msa[k])); if (sec < 0) goto out; if (i >= sat->sat_len) { - DPRINTF(("Out of bounds reading MSA %" SIZE_T_FORMAT - "u >= %" SIZE_T_FORMAT "u", i, sat->sat_len)); + DPRINTF(("Out of bounds reading MSA %" + SIZE_T_FORMAT "u >= %" SIZE_T_FORMAT "u", + i, sat->sat_len)); goto out3; } if (cdf_read_sector(info, sat->sat_tab, ss * i, ss, h, - sec) != (ssize_t)ss) { + sec) != CAST(ssize_t, ss)) { DPRINTF(("Reading sector %d", CDF_TOLE4(msa[k]))); goto out2; } } - mid = CDF_TOLE4((uint32_t)msa[nsatpersec]); + mid = CDF_TOLE4(CAST(uint32_t, msa[nsatpersec])); } out: sat->sat_len = i; @@ -516,7 +525,7 @@ size_t cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size) { size_t i, j; - cdf_secid_t maxsector = (cdf_secid_t)((sat->sat_len * size) + cdf_secid_t maxsector = CAST(cdf_secid_t, (sat->sat_len * size) / sizeof(maxsector)); DPRINTF(("Chain:")); @@ -536,7 +545,7 @@ cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size) DPRINTF(("Sector %d >= %d\n", sid, maxsector)); goto out; } - sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]); + sid = CDF_TOLE4(CAST(uint32_t, sat->sat_tab[sid])); } if (i == 0) { DPRINTF((" none, sid: %d\n", sid)); @@ -547,7 +556,7 @@ cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size) return i; out: errno = EFTYPE; - return (size_t)-1; + return CAST(size_t, -1); } int @@ -564,7 +573,7 @@ cdf_read_long_sector_chain(const cdf_info_t *info, const cdf_header_t *h, if (sid == CDF_SECID_END_OF_CHAIN || len == 0) return cdf_zero_stream(scn); - if (scn->sst_len == (size_t)-1) + if (scn->sst_len == CAST(size_t, -1)) goto out; scn->sst_tab = CDF_CALLOC(scn->sst_len, ss); @@ -583,7 +592,7 @@ cdf_read_long_sector_chain(const cdf_info_t *info, const cdf_header_t *h, goto out; } if ((nr = cdf_read_sector(info, scn->sst_tab, i * ss, ss, h, - sid)) != (ssize_t)ss) { + sid)) != CAST(ssize_t, ss)) { if (i == scn->sst_len - 1 && nr > 0) { /* Last sector might be truncated */ return 0; @@ -591,7 +600,7 @@ cdf_read_long_sector_chain(const cdf_info_t *info, const cdf_header_t *h, DPRINTF(("Reading long sector chain %d", sid)); goto out; } - sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]); + sid = CDF_TOLE4(CAST(uint32_t, sat->sat_tab[sid])); } return 0; out: @@ -610,7 +619,7 @@ cdf_read_short_sector_chain(const cdf_header_t *h, scn->sst_dirlen = len; scn->sst_ss = ss; - if (scn->sst_len == (size_t)-1) + if (scn->sst_len == CAST(size_t, -1)) goto out; scn->sst_tab = CDF_CALLOC(scn->sst_len, ss); @@ -629,11 +638,11 @@ cdf_read_short_sector_chain(const cdf_header_t *h, goto out; } if (cdf_read_short_sector(sst, scn->sst_tab, i * ss, ss, h, - sid) != (ssize_t)ss) { + sid) != CAST(ssize_t, ss)) { DPRINTF(("Reading short sector chain %d", sid)); goto out; } - sid = CDF_TOLE4((uint32_t)ssat->sat_tab[sid]); + sid = CDF_TOLE4(CAST(uint32_t, ssat->sat_tab[sid])); } return 0; out: @@ -664,7 +673,7 @@ cdf_read_dir(const cdf_info_t *info, const cdf_header_t *h, cdf_secid_t sid = h->h_secid_first_directory; ns = cdf_count_chain(sat, sid, ss); - if (ns == (size_t)-1) + if (ns == CAST(size_t, -1)) return -1; nd = ss / CDF_DIRECTORY_SIZE; @@ -685,7 +694,8 @@ cdf_read_dir(const cdf_info_t *info, const cdf_header_t *h, DPRINTF(("Read dir loop limit")); goto out; } - if (cdf_read_sector(info, buf, 0, ss, h, sid) != (ssize_t)ss) { + if (cdf_read_sector(info, buf, 0, ss, h, sid) != + CAST(ssize_t, ss)) { DPRINTF(("Reading directory sector %d", sid)); goto out; } @@ -693,7 +703,7 @@ cdf_read_dir(const cdf_info_t *info, const cdf_header_t *h, cdf_unpack_dir(&dir->dir_tab[i * nd + j], &buf[j * CDF_DIRECTORY_SIZE]); } - sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]); + sid = CDF_TOLE4(CAST(uint32_t, sat->sat_tab[sid])); } if (NEED_SWAP) for (i = 0; i < dir->dir_len; i++) @@ -718,7 +728,7 @@ cdf_read_ssat(const cdf_info_t *info, const cdf_header_t *h, ssat->sat_tab = NULL; ssat->sat_len = cdf_count_chain(sat, sid, ss); - if (ssat->sat_len == (size_t)-1) + if (ssat->sat_len == CAST(size_t, -1)) goto out; ssat->sat_tab = CAST(cdf_secid_t *, CDF_CALLOC(ssat->sat_len, ss)); @@ -737,11 +747,11 @@ cdf_read_ssat(const cdf_info_t *info, const cdf_header_t *h, goto out; } if (cdf_read_sector(info, ssat->sat_tab, i * ss, ss, h, sid) != - (ssize_t)ss) { + CAST(ssize_t, ss)) { DPRINTF(("Reading short sat sector %d", sid)); goto out1; } - sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]); + sid = CDF_TOLE4(CAST(uint32_t, sat->sat_tab[sid])); } return 0; out: @@ -791,7 +801,7 @@ cdf_namecmp(const char *d, const uint16_t *s, size_t l) { for (; l--; d++, s++) if (*d != CDF_TOLE2(*s)) - return (unsigned char)*d - CDF_TOLE2(*s); + return CAST(unsigned char, *d) - CDF_TOLE2(*s); return 0; } @@ -859,7 +869,7 @@ cdf_offset(const void *p, size_t l) } static const uint8_t * -cdf_get_property_info_pos(const cdf_stream_t *sst, const cdf_header_t *h, +cdf_get_property_info_pos(const cdf_stream_t *sst, const cdf_header_t *h, const uint8_t *p, const uint8_t *e, size_t i) { size_t tail = (i << 1) + 1; @@ -874,7 +884,7 @@ cdf_get_property_info_pos(const cdf_stream_t *sst, const cdf_header_t *h, __LINE__) == -1) return NULL; ofs = CDF_GETUINT32(p, tail); - q = CAST(const uint8_t *, cdf_offset(CAST(const void *, p), + q = CAST(const uint8_t *, cdf_offset(CAST(const void *, p), ofs - 2 * sizeof(uint32_t))); if (q < p) { @@ -896,8 +906,8 @@ cdf_grow_info(cdf_property_info_t **info, size_t *maxcount, size_t incr) size_t newcount = *maxcount + incr; if (newcount > CDF_PROP_LIMIT) { - DPRINTF(("exceeded property limit %zu > %zu\n", - newcount, CDF_PROP_LIMIT)); + DPRINTF(("exceeded property limit %" SIZE_T_FORMAT "u > %" + SIZE_T_FORMAT "u\n", newcount, CDF_PROP_LIMIT)); goto out; } inp = CAST(cdf_property_info_t *, @@ -922,7 +932,7 @@ cdf_copy_info(cdf_property_info_t *inp, const void *p, const void *e, if (inp->pi_type & CDF_VECTOR) return 0; - if ((size_t)(CAST(const char *, e) - CAST(const char *, p)) < len) + if (CAST(size_t, CAST(const char *, e) - CAST(const char *, p)) < len) return 0; (void)memcpy(&inp->pi_val, p, len); @@ -1065,10 +1075,10 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h, inp[i].pi_str.s_buf = CAST(const char *, CAST(const void *, &q[o4])); - DPRINTF(("o=%zu l=%d(%" SIZE_T_FORMAT - "u), t=%zu s=%s\n", o4, l, - CDF_ROUND(l, sizeof(l)), left, - inp[i].pi_str.s_buf)); + DPRINTF(("o=%" SIZE_T_FORMAT "u l=%d(%" + SIZE_T_FORMAT "u), t=%" SIZE_T_FORMAT + "u s=%s\n", o4, l, CDF_ROUND(l, sizeof(l)), + left, inp[i].pi_str.s_buf)); if (l & 1) l++; @@ -1108,8 +1118,9 @@ cdf_unpack_summary_info(const cdf_stream_t *sst, const cdf_header_t *h, const cdf_summary_info_header_t *si = CAST(const cdf_summary_info_header_t *, sst->sst_tab); const cdf_section_declaration_t *sd = - CAST(const cdf_section_declaration_t *, (const void *) - ((const char *)sst->sst_tab + CDF_SECTION_DECLARATION_OFFSET)); + CAST(const cdf_section_declaration_t *, RCAST(const void *, + RCAST(const char *, sst->sst_tab) + + CDF_SECTION_DECLARATION_OFFSET)); if (cdf_check_stream_offset(sst, h, si, sizeof(*si), __LINE__) == -1 || cdf_check_stream_offset(sst, h, sd, sizeof(*sd), __LINE__) == -1) @@ -1260,28 +1271,28 @@ cdf_print_elapsed_time(char *buf, size_t bufsiz, cdf_timestamp_t ts) int days, hours, mins, secs; ts /= CDF_TIME_PREC; - secs = (int)(ts % 60); + secs = CAST(int, ts % 60); ts /= 60; - mins = (int)(ts % 60); + mins = CAST(int, ts % 60); ts /= 60; - hours = (int)(ts % 24); + hours = CAST(int, ts % 24); ts /= 24; - days = (int)ts; + days = CAST(int, ts); if (days) { len += snprintf(buf + len, bufsiz - len, "%dd+", days); - if ((size_t)len >= bufsiz) + if (CAST(size_t, len) >= bufsiz) return len; } if (days || hours) { len += snprintf(buf + len, bufsiz - len, "%.2d:", hours); - if ((size_t)len >= bufsiz) + if (CAST(size_t, len) >= bufsiz) return len; } len += snprintf(buf + len, bufsiz - len, "%.2d:", mins); - if ((size_t)len >= bufsiz) + if (CAST(size_t, len) >= bufsiz) return len; len += snprintf(buf + len, bufsiz - len, "%.2d", secs); @@ -1293,7 +1304,7 @@ cdf_u16tos8(char *buf, size_t len, const uint16_t *p) { size_t i; for (i = 0; i < len && p[i]; i++) - buf[i] = (char)p[i]; + buf[i] = CAST(char, p[i]); buf[i] = '\0'; return buf; } diff --git a/libmagic/src/main/cpp/file/cdf.h b/libmagic/src/main/cpp/file/cdf.h index f2df830..2f7e554 100644 --- a/libmagic/src/main/cpp/file/cdf.h +++ b/libmagic/src/main/cpp/file/cdf.h @@ -76,9 +76,9 @@ typedef struct { cdf_secid_t h_master_sat[436/4]; } cdf_header_t; -#define CDF_SEC_SIZE(h) ((size_t)(1 << (h)->h_sec_size_p2)) +#define CDF_SEC_SIZE(h) CAST(size_t, 1 << (h)->h_sec_size_p2) #define CDF_SEC_POS(h, secid) (CDF_SEC_SIZE(h) + (secid) * CDF_SEC_SIZE(h)) -#define CDF_SHORT_SEC_SIZE(h) ((size_t)(1 << (h)->h_short_sec_size_p2)) +#define CDF_SHORT_SEC_SIZE(h) CAST(size_t, 1 << (h)->h_short_sec_size_p2) #define CDF_SHORT_SEC_POS(h, secid) ((secid) * CDF_SHORT_SEC_SIZE(h)) typedef int32_t cdf_dirid_t; @@ -272,7 +272,7 @@ typedef struct { typedef struct { uint16_t ce_namlen; uint32_t ce_num; - uint64_t ce_timestamp; + uint64_t ce_timestamp; uint16_t ce_name[256]; } cdf_catalog_entry_t; diff --git a/libmagic/src/main/cpp/file/cdf_time.c b/libmagic/src/main/cpp/file/cdf_time.c index 2bdcd2a..bdb2d3a 100644 --- a/libmagic/src/main/cpp/file/cdf_time.c +++ b/libmagic/src/main/cpp/file/cdf_time.c @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: cdf_time.c,v 1.16 2017/03/29 15:57:48 christos Exp $") +FILE_RCSID("@(#)$File: cdf_time.c,v 1.18 2019/02/20 02:35:27 christos Exp $") #endif #include @@ -56,7 +56,7 @@ cdf_getdays(int year) for (y = CDF_BASE_YEAR; y < year; y++) days += isleap(y) + 365; - + return days; } @@ -77,7 +77,7 @@ cdf_getday(int year, int days) return days; } -/* +/* * Return the 0...11 month number. */ static int @@ -90,9 +90,9 @@ cdf_getmonth(int year, int days) if (m == 1 && isleap(year)) days--; if (days <= 0) - return (int)m; + return CAST(int, m); } - return (int)m; + return CAST(int, m); } int @@ -108,22 +108,22 @@ cdf_timestamp_to_timespec(struct timespec *ts, cdf_timestamp_t t) ts->tv_nsec = (t % CDF_TIME_PREC) * 100; t /= CDF_TIME_PREC; - tm.tm_sec = (int)(t % 60); + tm.tm_sec = CAST(int, t % 60); t /= 60; - tm.tm_min = (int)(t % 60); + tm.tm_min = CAST(int, t % 60); t /= 60; - tm.tm_hour = (int)(t % 24); + tm.tm_hour = CAST(int, t % 24); t /= 24; /* XXX: Approx */ - tm.tm_year = (int)(CDF_BASE_YEAR + (t / 365)); + tm.tm_year = CAST(int, CDF_BASE_YEAR + (t / 365)); rdays = cdf_getdays(tm.tm_year); t -= rdays - 1; - tm.tm_mday = cdf_getday(tm.tm_year, (int)t); - tm.tm_mon = cdf_getmonth(tm.tm_year, (int)t); + tm.tm_mday = cdf_getday(tm.tm_year, CAST(int, t)); + tm.tm_mon = cdf_getmonth(tm.tm_year, CAST(int, t)); tm.tm_wday = 0; tm.tm_yday = 0; tm.tm_isdst = 0; @@ -172,7 +172,7 @@ cdf_ctime(const time_t *sec, char *buf) if (ptr != NULL) return buf; (void)snprintf(buf, 26, "*Bad* %#16.16" INT64_T_FORMAT "x\n", - (long long)*sec); + CAST(long long, *sec)); return buf; } diff --git a/libmagic/src/main/cpp/file/compress.c b/libmagic/src/main/cpp/file/compress.c index 5d565d5..89fc570 100644 --- a/libmagic/src/main/cpp/file/compress.c +++ b/libmagic/src/main/cpp/file/compress.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -29,13 +29,13 @@ * compress routines: * zmagic() - returns 0 if not recognized, uncompresses and prints * information if recognized - * uncompress(method, old, n, newch) - uncompress old into new, + * uncompress(method, old, n, newch) - uncompress old into new, * using method, return sizeof new */ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: compress.c,v 1.107 2018/04/28 18:48:22 christos Exp $") +FILE_RCSID("@(#)$File: compress.c,v 1.115 2019/02/20 02:35:27 christos Exp $") #endif #include "magic.h" @@ -47,12 +47,10 @@ FILE_RCSID("@(#)$File: compress.c,v 1.107 2018/04/28 18:48:22 christos Exp $") #include #include #include -#ifdef HAVE_SIGNAL_H #include -# ifndef HAVE_SIG_T +#ifndef HAVE_SIG_T typedef void (*sig_t)(int); -# endif /* HAVE_SIG_T */ -#endif +#endif /* HAVE_SIG_T */ #if !defined(__MINGW32__) && !defined(WIN32) #include #endif @@ -62,10 +60,17 @@ typedef void (*sig_t)(int); #if defined(HAVE_SYS_TIME_H) #include #endif + #if defined(HAVE_ZLIB_H) && defined(ZLIBSUPPORT) #define BUILTIN_DECOMPRESS #include #endif + +#if defined(HAVE_BZLIB_H) +#define BUILTIN_BZLIB +#include +#endif + #ifdef DEBUG int tty = -1; #define DPRINTF(...) do { \ @@ -137,30 +142,34 @@ static const char *zstd_args[] = { "zstd", "-cd", NULL }; +#define do_zlib NULL +#define do_bzlib NULL + private const struct { const void *magic; size_t maglen; const char **argv; + void *unused; } compr[] = { - { "\037\235", 2, gzip_args }, /* compressed */ + { "\037\235", 2, gzip_args, NULL }, /* compressed */ /* Uncompress can get stuck; so use gzip first if we have it * Idea from Damien Clark, thanks! */ - { "\037\235", 2, uncompress_args }, /* compressed */ - { "\037\213", 2, gzip_args }, /* gzipped */ - { "\037\236", 2, gzip_args }, /* frozen */ - { "\037\240", 2, gzip_args }, /* SCO LZH */ + { "\037\235", 2, uncompress_args, NULL }, /* compressed */ + { "\037\213", 2, gzip_args, do_zlib }, /* gzipped */ + { "\037\236", 2, gzip_args, NULL }, /* frozen */ + { "\037\240", 2, gzip_args, NULL }, /* SCO LZH */ /* the standard pack utilities do not accept standard input */ - { "\037\036", 2, gzip_args }, /* packed */ - { "PK\3\4", 4, gzip_args }, /* pkzipped, */ + { "\037\036", 2, gzip_args, NULL }, /* packed */ + { "PK\3\4", 4, gzip_args, NULL }, /* pkzipped, */ /* ...only first file examined */ - { "BZh", 3, bzip2_args }, /* bzip2-ed */ - { "LZIP", 4, lzip_args }, /* lzip-ed */ - { "\3757zXZ\0", 6, xz_args }, /* XZ Utils */ - { "LRZI", 4, lrzip_args }, /* LRZIP */ - { "\004\"M\030",4, lz4_args }, /* LZ4 */ - { "\x28\xB5\x2F\xFD", 4, zstd_args }, /* zstd */ + { "BZh", 3, bzip2_args, do_bzlib }, /* bzip2-ed */ + { "LZIP", 4, lzip_args, NULL }, /* lzip-ed */ + { "\3757zXZ\0", 6, xz_args, NULL }, /* XZ Utils */ + { "LRZI", 4, lrzip_args, NULL }, /* LRZIP */ + { "\004\"M\030",4, lz4_args, NULL }, /* LZ4 */ + { "\x28\xB5\x2F\xFD", 4, zstd_args, NULL }, /* zstd */ #ifdef ZLIBSUPPORT - { RCAST(const void *, zlibcmp), 0, zlib_args }, /* zlib */ + { RCAST(const void *, zlibcmp), 0, zlib_args, NULL }, /* zlib */ #endif }; @@ -179,6 +188,11 @@ private int uncompresszlib(const unsigned char *, unsigned char **, size_t, private int uncompressgzipped(const unsigned char *, unsigned char **, size_t, size_t *); #endif +#ifdef BUILTIN_BZLIB +private int uncompressbzlib(const unsigned char *, unsigned char **, size_t, + size_t *, int); +#endif + static int makeerror(unsigned char **, size_t *, const char *, ...) __attribute__((__format__(__printf__, 3, 4))); private const char *methodname(size_t); @@ -210,18 +224,14 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name) int urv, prv, rv = 0; int mime = ms->flags & MAGIC_MIME; int fd = b->fd; - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; -#ifdef HAVE_SIGNAL_H sig_t osigpipe; -#endif if ((ms->flags & MAGIC_COMPRESS) == 0) return 0; -#ifdef HAVE_SIGNAL_H osigpipe = signal(SIGPIPE, SIG_IGN); -#endif for (i = 0; i < ncompr; i++) { int zm; if (nbytes < compr[i].maglen) @@ -238,8 +248,8 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name) continue; nsz = nbytes; urv = uncompressbuf(fd, ms->bytes_max, i, buf, &newbuf, &nsz); - DPRINTF("uncompressbuf = %d, %s, %zu\n", urv, (char *)newbuf, - nsz); + DPRINTF("uncompressbuf = %d, %s, %" SIZE_T_FORMAT "u\n", urv, + (char *)newbuf, nsz); switch (urv) { case OKDATA: case ERRDATA: @@ -264,8 +274,11 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name) * XXX: If file_buffer fails here, we overwrite * the compressed text. FIXME. */ - if (file_buffer(ms, -1, NULL, buf, nbytes) == -1) + if (file_buffer(ms, -1, NULL, buf, nbytes) == -1) { + if (file_pop_buffer(ms, pb) != NULL) + abort(); goto error; + } if ((rbuf = file_pop_buffer(ms, pb)) != NULL) { if (file_printf(ms, "%s", rbuf) == -1) { free(rbuf); @@ -289,9 +302,7 @@ file_zmagic(struct magic_set *ms, const struct buffer *b, const char *name) out: DPRINTF("rv = %d\n", rv); -#ifdef HAVE_SIGNAL_H (void)signal(SIGPIPE, osigpipe); -#endif free(newbuf); ms->flags |= MAGIC_COMPRESS; DPRINTF("Zmagic returns %d\n", rv); @@ -367,7 +378,7 @@ sread(int fd, void *buf, size_t n, int canbepipe __attribute__((__unused__))) (void)ioctl(fd, FIONREAD, &t); } - if (t > 0 && (size_t)t < n) { + if (t > 0 && CAST(size_t, t) < n) { n = t; rn = n; } @@ -411,7 +422,9 @@ file_pipe2file(struct magic_set *ms, int fd, const void *startbuf, #else { int te; + mode_t ou = umask(0); tfd = mkstemp(buf); + (void)umask(ou); te = errno; (void)unlink(buf); errno = te; @@ -423,11 +436,11 @@ file_pipe2file(struct magic_set *ms, int fd, const void *startbuf, return -1; } - if (swrite(tfd, startbuf, nbytes) != (ssize_t)nbytes) + if (swrite(tfd, startbuf, nbytes) != CAST(ssize_t, nbytes)) r = 1; else { while ((r = sread(fd, buf, sizeof(buf), 1)) > 0) - if (swrite(tfd, buf, (size_t)r) != r) + if (swrite(tfd, buf, CAST(size_t, r)) != r) break; } @@ -452,7 +465,7 @@ file_pipe2file(struct magic_set *ms, int fd, const void *startbuf, return -1; } (void)close(tfd); - if (lseek(fd, (off_t)0, SEEK_SET) == (off_t)-1) { + if (lseek(fd, CAST(off_t, 0), SEEK_SET) == CAST(off_t, -1)) { file_badseek(ms); return -1; } @@ -509,7 +522,7 @@ uncompresszlib(const unsigned char *old, unsigned char **newch, int rc; z_stream z; - if ((*newch = CAST(unsigned char *, malloc(bytes_max + 1))) == NULL) + if ((*newch = CAST(unsigned char *, malloc(bytes_max + 1))) == NULL) return makeerror(newch, n, "No buffer, %s", strerror(errno)); z.next_in = CCAST(Bytef *, old); @@ -529,18 +542,18 @@ uncompresszlib(const unsigned char *old, unsigned char **newch, if (rc != Z_OK && rc != Z_STREAM_END) goto err; - *n = (size_t)z.total_out; + *n = CAST(size_t, z.total_out); rc = inflateEnd(&z); if (rc != Z_OK) goto err; - + /* let's keep the nul-terminate tradition */ (*newch)[*n] = '\0'; return OKDATA; err: - strlcpy((char *)*newch, z.msg ? z.msg : zError(rc), bytes_max); - *n = strlen((char *)*newch); + strlcpy(RCAST(char *, *newch), z.msg ? z.msg : zError(rc), bytes_max); + *n = strlen(RCAST(char *, *newch)); return ERRDATA; } #endif @@ -560,7 +573,7 @@ makeerror(unsigned char **buf, size_t *len, const char *fmt, ...) *len = 0; return NODATA; } - *buf = (unsigned char *)msg; + *buf = RCAST(unsigned char *, msg); *len = strlen(msg); return ERRDATA; } @@ -601,14 +614,14 @@ writechild(int fdp[3][2], const void *old, size_t n) int status; closefd(fdp[STDIN_FILENO], 0); - /* + /* * fork again, to avoid blocking because both * pipes filled */ switch (fork()) { case 0: /* child */ closefd(fdp[STDOUT_FILENO], 0); - if (swrite(fdp[STDIN_FILENO][1], old, n) != (ssize_t)n) { + if (swrite(fdp[STDIN_FILENO][1], old, n) != CAST(ssize_t, n)) { DPRINTF("Write failed (%s)\n", strerror(errno)); exit(1); } @@ -637,17 +650,17 @@ filter_error(unsigned char *ubuf, ssize_t n) char *buf; ubuf[n] = '\0'; - buf = (char *)ubuf; - while (isspace((unsigned char)*buf)) + buf = RCAST(char *, ubuf); + while (isspace(CAST(unsigned char, *buf))) buf++; DPRINTF("Filter error[[[%s]]]\n", buf); - if ((p = strchr((char *)buf, '\n')) != NULL) + if ((p = strchr(CAST(char *, buf), '\n')) != NULL) *p = '\0'; - if ((p = strchr((char *)buf, ';')) != NULL) + if ((p = strchr(CAST(char *, buf), ';')) != NULL) *p = '\0'; - if ((p = strrchr((char *)buf, ':')) != NULL) { + if ((p = strrchr(CAST(char *, buf), ':')) != NULL) { ++p; - while (isspace((unsigned char)*p)) + while (isspace(CAST(unsigned char, *p))) p++; n = strlen(p); memmove(ubuf, p, CAST(size_t, n + 1)); @@ -702,15 +715,15 @@ uncompressbuf(int fd, size_t bytes_max, size_t method, const unsigned char *old, case 0: /* child */ if (fd != -1) { fdp[STDIN_FILENO][0] = fd; - (void) lseek(fd, (off_t)0, SEEK_SET); + (void) lseek(fd, CAST(off_t, 0), SEEK_SET); } - + for (i = 0; i < __arraycount(fdp); i++) copydesc(CAST(int, i), fdp[i]); (void)execvp(compr[method].argv[0], - (char *const *)(intptr_t)compr[method].argv); - dprintf(STDERR_FILENO, "exec `%s' failed, %s", + RCAST(char *const *, RCAST(intptr_t, compr[method].argv))); + dprintf(STDERR_FILENO, "exec `%s' failed, %s", compr[method].argv[0], strerror(errno)); exit(1); /*NOTREACHED*/ @@ -772,8 +785,8 @@ uncompressbuf(int fd, size_t bytes_max, size_t method, const unsigned char *old, } closefd(fdp[STDIN_FILENO], 0); - DPRINTF("Returning %p n=%zu rv=%d\n", *newch, *n, rv); - + DPRINTF("Returning %p n=%" SIZE_T_FORMAT "u rv=%d\n", *newch, *n, rv); + return rv; } #endif diff --git a/libmagic/src/main/cpp/file/config.h b/libmagic/src/main/cpp/file/config.h index d7041f6..6431d3a 100644 --- a/libmagic/src/main/cpp/file/config.h +++ b/libmagic/src/main/cpp/file/config.h @@ -87,9 +87,6 @@ /* Define to 1 if you have the header file. */ #define HAVE_LIMITS_H 1 -/* Define to 1 if you have the header file. */ -#define HAVE_LOCALE_H 1 - /* Define to 1 if you have the `localtime_r' function. */ #define HAVE_LOCALTIME_R 1 @@ -112,7 +109,7 @@ #define HAVE_MMAP 1 /* Define to 1 if you have the `newlocale' function. */ -//#define HAVE_NEWLOCALE 1 +#define HAVE_NEWLOCALE 1 /* Define to 1 if you have the `pread' function. */ #define HAVE_PREAD 1 @@ -120,9 +117,6 @@ /* Define to 1 if you have the `setlocale' function. */ #define HAVE_SETLOCALE 1 -/* Define to 1 if you have the header file. */ -#define HAVE_SIGNAL_H 1 - /* Have sig_t type */ #define HAVE_SIG_T 1 @@ -277,7 +271,7 @@ #define PACKAGE_NAME "file" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "file 5.34" +#define PACKAGE_STRING "file 5.36" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "file" @@ -286,7 +280,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "5.34" +#define PACKAGE_VERSION "5.36" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -317,7 +311,7 @@ /* Version number of package */ -#define VERSION "5.34" +#define VERSION "5.36" /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ diff --git a/libmagic/src/main/cpp/file/der.c b/libmagic/src/main/cpp/file/der.c index d017b63..8867c56 100644 --- a/libmagic/src/main/cpp/file/der.c +++ b/libmagic/src/main/cpp/file/der.c @@ -35,7 +35,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: der.c,v 1.13 2018/06/23 15:15:26 christos Exp $") +FILE_RCSID("@(#)$File: der.c,v 1.16 2019/02/20 02:35:27 christos Exp $") #endif #endif @@ -56,7 +56,7 @@ FILE_RCSID("@(#)$File: der.c,v 1.13 2018/06/23 15:15:26 christos Exp $") #include #endif -#define DER_BAD ((uint32_t)-1) +#define DER_BAD CAST(uint32_t, -1) #define DER_CLASS_UNIVERSAL 0 #define DER_CLASS_APPLICATION 1 @@ -207,7 +207,7 @@ getlength(const uint8_t *c, size_t *p, size_t l) static const char * der_tag(char *buf, size_t len, uint32_t tag) { - if (tag < DER_TAG_LONG) + if (tag < DER_TAG_LONG) strlcpy(buf, der__tag[tag], len); else snprintf(buf, len, "%#x", tag); @@ -224,11 +224,11 @@ der_data(char *buf, size_t blen, uint32_t tag, const void *q, uint32_t len) case DER_TAG_UTF8_STRING: case DER_TAG_IA5_STRING: case DER_TAG_UTCTIME: - return snprintf(buf, blen, "%.*s", len, (const char *)q); + return snprintf(buf, blen, "%.*s", len, RCAST(const char *, q)); default: break; } - + for (uint32_t i = 0; i < len; i++) { uint32_t z = i << 1; if (z < blen - 2) @@ -245,18 +245,21 @@ der_offs(struct magic_set *ms, struct magic *m, size_t nbytes) if (gettag(b, &offs, len) == DER_BAD) return -1; - DPRINTF(("%s1: %d %zu %u\n", __func__, ms->offset, offs, m->offset)); + DPRINTF(("%s1: %d %" SIZE_T_FORMAT "u %u\n", __func__, ms->offset, + offs, m->offset)); uint32_t tlen = getlength(b, &offs, len); if (tlen == DER_BAD) return -1; - DPRINTF(("%s2: %d %zu %u\n", __func__, ms->offset, offs, tlen)); + DPRINTF(("%s2: %d %" SIZE_T_FORMAT "u %u\n", __func__, ms->offset, + offs, tlen)); offs += ms->offset + m->offset; DPRINTF(("cont_level = %d\n", m->cont_level)); #ifdef DEBUG_DER for (size_t i = 0; i < m->cont_level; i++) - printf("cont_level[%zu] = %u\n", i, ms->c.li[i].off); + printf("cont_level[%" SIZE_T_FORMAT "u] = %u\n", i, + ms->c.li[i].off); #endif if (m->cont_level != 0) { if (offs + tlen > nbytes) @@ -304,22 +307,23 @@ der_cmp(struct magic_set *ms, struct magic *m) s++; goto val; default: - if (!isdigit((unsigned char)*s)) + if (!isdigit(CAST(unsigned char, *s))) return 0; slen = 0; do slen = slen * 10 + *s - '0'; - while (isdigit((unsigned char)*++s)); + while (isdigit(CAST(unsigned char, *++s))); if ((ms->flags & MAGIC_DEBUG) != 0) - fprintf(stderr, "%s: len %zu %u\n", __func__, - slen, tlen); + fprintf(stderr, "%s: len %" SIZE_T_FORMAT "u %u\n", + __func__, slen, tlen); if (tlen != slen) return 0; goto again; } val: - DPRINTF(("%s: before data %zu %u\n", __func__, offs, tlen)); + DPRINTF(("%s: before data %" SIZE_T_FORMAT "u %u\n", __func__, offs, + tlen)); der_data(buf, sizeof(buf), tag, b + offs, tlen); if ((ms->flags & MAGIC_DEBUG) != 0) fprintf(stderr, "%s: data %s %s\n", __func__, buf, s); @@ -343,7 +347,7 @@ printtag(uint32_t tag, const void *q, uint32_t len) default: break; } - + for (uint32_t i = 0; i < len; i++) printf("%.2x", d[i]); printf("\n"); @@ -367,8 +371,9 @@ printdata(size_t level, const void *v, size_t x, size_t l) if (p + x >= ep) break; uint32_t len = getlength(p, &x, ep - p + x); - - printf("%zu %zu-%zu %c,%c,%s,%u:", level, ox, x, + + printf("%" SIZE_T_FORMAT "u %" SIZE_T_FORMAT "u-%" + SIZE_T_FORMAT "u %c,%c,%s,%u:", level, ox, x, der_class[c], der_type[t], der_tag(buf, sizeof(buf), tag), len); q = p + x; diff --git a/libmagic/src/main/cpp/file/dprintf.c b/libmagic/src/main/cpp/file/dprintf.c index 5d9c58b..027a64f 100644 --- a/libmagic/src/main/cpp/file/dprintf.c +++ b/libmagic/src/main/cpp/file/dprintf.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -28,7 +28,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: dprintf.c,v 1.13 2014/12/04 15:56:46 christos Exp $") +FILE_RCSID("@(#)$File: dprintf.c,v 1.2 2018/09/09 20:33:28 christos Exp $") #endif /* lint */ #include diff --git a/libmagic/src/main/cpp/file/elfclass.h b/libmagic/src/main/cpp/file/elfclass.h index 5360b0b..936d8dc 100644 --- a/libmagic/src/main/cpp/file/elfclass.h +++ b/libmagic/src/main/cpp/file/elfclass.h @@ -1,7 +1,7 @@ /* * Copyright (c) Christos Zoulas 2008. * All Rights Reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -11,7 +11,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -41,8 +41,8 @@ return toomany(ms, "program headers", phnum); flags |= FLAGS_IS_CORE; if (dophn_core(ms, clazz, swap, fd, - (off_t)elf_getu(swap, elfhdr.e_phoff), phnum, - (size_t)elf_getu16(swap, elfhdr.e_phentsize), + CAST(off_t, elf_getu(swap, elfhdr.e_phoff)), phnum, + CAST(size_t, elf_getu16(swap, elfhdr.e_phentsize)), fsize, &flags, ¬ecount) == -1) return -1; break; @@ -56,8 +56,8 @@ if (shnum > ms->elf_shnum_max) return toomany(ms, "section", shnum); if (dophn_exec(ms, clazz, swap, fd, - (off_t)elf_getu(swap, elfhdr.e_phoff), phnum, - (size_t)elf_getu16(swap, elfhdr.e_phentsize), + CAST(off_t, elf_getu(swap, elfhdr.e_phoff)), phnum, + CAST(size_t, elf_getu16(swap, elfhdr.e_phentsize)), fsize, shnum, &flags, ¬ecount) == -1) return -1; /*FALLTHROUGH*/ @@ -66,10 +66,10 @@ if (shnum > ms->elf_shnum_max) return toomany(ms, "section headers", shnum); if (doshn(ms, clazz, swap, fd, - (off_t)elf_getu(swap, elfhdr.e_shoff), shnum, - (size_t)elf_getu16(swap, elfhdr.e_shentsize), + CAST(off_t, elf_getu(swap, elfhdr.e_shoff)), shnum, + CAST(size_t, elf_getu16(swap, elfhdr.e_shentsize)), fsize, elf_getu16(swap, elfhdr.e_machine), - (int)elf_getu16(swap, elfhdr.e_shstrndx), + CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)), &flags, ¬ecount) == -1) return -1; break; diff --git a/libmagic/src/main/cpp/file/encoding.c b/libmagic/src/main/cpp/file/encoding.c index 3e7b9e5..81cd925 100644 --- a/libmagic/src/main/cpp/file/encoding.c +++ b/libmagic/src/main/cpp/file/encoding.c @@ -35,7 +35,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: encoding.c,v 1.14 2017/11/02 20:25:39 christos Exp $") +FILE_RCSID("@(#)$File: encoding.c,v 1.17 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -49,6 +49,7 @@ private int looks_utf8_with_BOM(const unsigned char *, size_t, unichar *, size_t *); private int looks_utf7(const unsigned char *, size_t, unichar *, size_t *); private int looks_ucs16(const unsigned char *, size_t, unichar *, size_t *); +private int looks_ucs32(const unsigned char *, size_t, unichar *, size_t *); private int looks_latin1(const unsigned char *, size_t, unichar *, size_t *); private int looks_extended(const unsigned char *, size_t, unichar *, size_t *); private void from_ebcdic(const unsigned char *, size_t, unsigned char *); @@ -69,7 +70,7 @@ protected int file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf, size_t *ulen, const char **code, const char **code_mime, const char **type) { - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; size_t mlen; int rv = 1, ucs_type; @@ -88,12 +89,12 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf, *code_mime = "binary"; mlen = (nbytes + 1) * sizeof((*ubuf)[0]); - if ((*ubuf = CAST(unichar *, calloc((size_t)1, mlen))) == NULL) { + if ((*ubuf = CAST(unichar *, calloc(CAST(size_t, 1), mlen))) == NULL) { file_oomem(ms, mlen); goto done; } mlen = (nbytes + 1) * sizeof(nbuf[0]); - if ((nbuf = CAST(unsigned char *, calloc((size_t)1, mlen))) == NULL) { + if ((nbuf = CAST(unsigned char *, calloc(CAST(size_t, 1), mlen))) == NULL) { file_oomem(ms, mlen); goto done; } @@ -116,6 +117,15 @@ file_encoding(struct magic_set *ms, const struct buffer *b, unichar **ubuf, DPRINTF(("utf8 %" SIZE_T_FORMAT "u\n", *ulen)); *code = "UTF-8 Unicode"; *code_mime = "utf-8"; + } else if ((ucs_type = looks_ucs32(buf, nbytes, *ubuf, ulen)) != 0) { + if (ucs_type == 1) { + *code = "Little-endian UTF-32 Unicode"; + *code_mime = "utf-32le"; + } else { + *code = "Big-endian UTF-32 Unicode"; + *code_mime = "utf-32be"; + } + DPRINTF(("ucs32 %" SIZE_T_FORMAT "u\n", *ulen)); } else if ((ucs_type = looks_ucs16(buf, nbytes, *ubuf, ulen)) != 0) { if (ucs_type == 1) { *code = "Little-endian UTF-16 Unicode"; @@ -410,7 +420,7 @@ looks_utf7(const unsigned char *buf, size_t nbytes, unichar *ubuf, size_t *ulen) } private int -looks_ucs16(const unsigned char *buf, size_t nbytes, unichar *ubuf, +looks_ucs16(const unsigned char *bf, size_t nbytes, unichar *ubf, size_t *ulen) { int bigend; @@ -419,9 +429,9 @@ looks_ucs16(const unsigned char *buf, size_t nbytes, unichar *ubuf, if (nbytes < 2) return 0; - if (buf[0] == 0xff && buf[1] == 0xfe) + if (bf[0] == 0xff && bf[1] == 0xfe) bigend = 0; - else if (buf[0] == 0xfe && buf[1] == 0xff) + else if (bf[0] == 0xfe && bf[1] == 0xff) bigend = 1; else return 0; @@ -432,20 +442,58 @@ looks_ucs16(const unsigned char *buf, size_t nbytes, unichar *ubuf, /* XXX fix to properly handle chars > 65536 */ if (bigend) - ubuf[(*ulen)++] = buf[i + 1] + 256 * buf[i]; + ubf[(*ulen)++] = bf[i + 1] + 256 * bf[i]; else - ubuf[(*ulen)++] = buf[i] + 256 * buf[i + 1]; + ubf[(*ulen)++] = bf[i] + 256 * bf[i + 1]; - if (ubuf[*ulen - 1] == 0xfffe) + if (ubf[*ulen - 1] == 0xfffe) return 0; - if (ubuf[*ulen - 1] < 128 && - text_chars[(size_t)ubuf[*ulen - 1]] != T) + if (ubf[*ulen - 1] < 128 && + text_chars[CAST(size_t, ubf[*ulen - 1])] != T) return 0; } return 1 + bigend; } +private int +looks_ucs32(const unsigned char *bf, size_t nbytes, unichar *ubf, + size_t *ulen) +{ + int bigend; + size_t i; + + if (nbytes < 4) + return 0; + + if (bf[0] == 0xff && bf[1] == 0xfe && bf[2] == 0 && bf[3] == 0) + bigend = 0; + else if (bf[0] == 0 && bf[1] == 0 && bf[2] == 0xfe && bf[3] == 0xff) + bigend = 1; + else + return 0; + + *ulen = 0; + + for (i = 4; i + 1 < nbytes; i += 4) { + /* XXX fix to properly handle chars > 65536 */ + + if (bigend) + ubf[(*ulen)++] = bf[i + 3] | (bf[i + 2] << 8) + | (bf[i + 1] << 16) | bf[i] << 24; + else + ubf[(*ulen)++] = bf[i] | (bf[i + 1] << 8) + | (bf[i + 2] << 16) | (bf[i + 3] << 24); + + if (ubf[*ulen - 1] == 0xfffe) + return 0; + if (ubf[*ulen - 1] < 128 && + text_chars[CAST(size_t, ubf[*ulen - 1])] != T) + return 0; + } + + return 1 + bigend; +} #undef F #undef T #undef I diff --git a/libmagic/src/main/cpp/file/file.c b/libmagic/src/main/cpp/file/file.c index 87dd1bb..5f0303e 100644 --- a/libmagic/src/main/cpp/file/file.c +++ b/libmagic/src/main/cpp/file/file.c @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: file.c,v 1.175 2018/03/02 16:11:37 christos Exp $") +FILE_RCSID("@(#)$File: file.c,v 1.179 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -128,6 +128,7 @@ private const struct { { "encoding", MAGIC_NO_CHECK_ENCODING }, { "soft", MAGIC_NO_CHECK_SOFT }, { "tar", MAGIC_NO_CHECK_TAR }, + { "json", MAGIC_NO_CHECK_JSON }, { "text", MAGIC_NO_CHECK_TEXT }, /* synonym for ascii */ { "tokens", MAGIC_NO_CHECK_TOKENS }, /* OBSOLETE: ignored for backwards compatibility */ }; @@ -136,14 +137,15 @@ private struct { const char *name; int tag; size_t value; + int set; } pm[] = { - { "indir", MAGIC_PARAM_INDIR_MAX, 0 }, - { "name", MAGIC_PARAM_NAME_MAX, 0 }, - { "elf_phnum", MAGIC_PARAM_ELF_PHNUM_MAX, 0 }, - { "elf_shnum", MAGIC_PARAM_ELF_SHNUM_MAX, 0 }, - { "elf_notes", MAGIC_PARAM_ELF_NOTES_MAX, 0 }, - { "regex", MAGIC_PARAM_REGEX_MAX, 0 }, - { "bytes", MAGIC_PARAM_BYTES_MAX, 0 }, + { "indir", MAGIC_PARAM_INDIR_MAX, 0, 0 }, + { "name", MAGIC_PARAM_NAME_MAX, 0, 0 }, + { "elf_phnum", MAGIC_PARAM_ELF_PHNUM_MAX, 0, 0 }, + { "elf_shnum", MAGIC_PARAM_ELF_SHNUM_MAX, 0, 0 }, + { "elf_notes", MAGIC_PARAM_ELF_NOTES_MAX, 0, 0 }, + { "regex", MAGIC_PARAM_REGEX_MAX, 0, 0 }, + { "bytes", MAGIC_PARAM_BYTES_MAX, 0, 0 }, }; private int posixly; @@ -398,7 +400,8 @@ main(int argc, char *argv[]) } else { size_t j, wid, nw; - for (wid = 0, j = (size_t)optind; j < (size_t)argc; j++) { + for (wid = 0, j = CAST(size_t, optind); j < CAST(size_t, argc); + j++) { nw = file_mbswidth(argv[j]); if (nw > wid) wid = nw; @@ -426,7 +429,7 @@ applyparam(magic_t magic) size_t i; for (i = 0; i < __arraycount(pm); i++) { - if (pm[i].value == 0) + if (!pm[i].set) continue; if (magic_setparam(magic, pm[i].tag, &pm[i].value) == -1) file_err(EXIT_FAILURE, "Can't set %s", pm[i].name); @@ -446,6 +449,7 @@ setparam(const char *p) if (strncmp(p, pm[i].name, s - p) != 0) continue; pm[i].value = atoi(s + 1); + pm[i].set = 1; return; } badparm: @@ -534,9 +538,8 @@ process(struct magic_set *ms, const char *inname, int wid) (void)putc('\0', stdout); if (nulsep < 2) { (void)printf("%s", separator); - (void)printf("%*s ", - (int) (nopad ? 0 : (wid - file_mbswidth(inname))), - ""); + (void)printf("%*s ", CAST(int, nopad ? 0 + : (wid - file_mbswidth(inname))), ""); } } @@ -563,8 +566,8 @@ file_mbswidth(const char *s) while (n > 0) { bytesconsumed = mbrtowc(&nextchar, s, n, &state); - if (bytesconsumed == (size_t)(-1) || - bytesconsumed == (size_t)(-2)) { + if (bytesconsumed == CAST(size_t, -1) || + bytesconsumed == CAST(size_t, -2)) { /* Something went wrong, return something reasonable */ return old_n; } @@ -623,13 +626,13 @@ docprint(const char *opts, int def) for (sp = p - 1; sp > opts && *sp == ' '; sp--) continue; - fprintf(stdout, "%.*s", (int)(p - opts), opts); + fprintf(stdout, "%.*s", CAST(int, p - opts), opts); comma = 0; for (i = 0; i < __arraycount(nv); i++) { fprintf(stdout, "%s%s", comma++ ? ", " : "", nv[i].name); - if (i && i % 5 == 0) { - fprintf(stdout, ",\n%*s", (int)(p - sp - 1), ""); + if (i && i % 5 == 0 && i != __arraycount(nv) - 1) { + fprintf(stdout, ",\n%*s", CAST(int, p - sp - 1), ""); comma = 0; } } @@ -653,7 +656,7 @@ help(void) #include "file_opts.h" #undef OPT #undef OPT_LONGONLY - fprintf(stdout, "\nReport bugs to http://bugs.gw.com/\n"); + fprintf(stdout, "\nReport bugs to https://bugs.astron.com/\n"); exit(EXIT_SUCCESS); } diff --git a/libmagic/src/main/cpp/file/file.h b/libmagic/src/main/cpp/file/file.h index 57a84a8..f8e0835 100644 --- a/libmagic/src/main/cpp/file/file.h +++ b/libmagic/src/main/cpp/file/file.h @@ -27,7 +27,7 @@ */ /* * file.h - definitions for file(1) program - * @(#)$File: file.h,v 1.193 2018/05/24 18:09:17 christos Exp $ + * @(#)$File: file.h,v 1.202 2019/02/18 17:46:56 christos Exp $ */ #ifndef __file_h__ @@ -40,6 +40,9 @@ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS #endif +#ifndef __STDC_FORMAT_MACROS +#define __STDC_FORMAT_MACROS +#endif #ifdef WIN32 #ifdef _WIN64 @@ -379,7 +382,7 @@ struct mlist { #define CCAST(T, b) const_cast(b) #else #define CAST(T, b) ((T)(b)) -#define RCAST(T, b) ((T)(b)) +#define RCAST(T, b) ((T)(uintptr_t)(b)) #define CCAST(T, b) ((T)(uintptr_t)(b)) #endif @@ -450,6 +453,7 @@ struct stat; protected const char *file_fmttime(uint64_t, int, char *); protected struct magic_set *file_ms_alloc(int); protected void file_ms_free(struct magic_set *); +protected int file_default(struct magic_set *, size_t); protected int file_buffer(struct magic_set *, int, const char *, const void *, size_t); protected int file_fsmagic(struct magic_set *, const char *, struct stat *); @@ -473,6 +477,7 @@ protected int file_ascmagic_with_encoding(struct magic_set *, const struct buffer *, unichar *, size_t, const char *, const char *, int); protected int file_encoding(struct magic_set *, const struct buffer *, unichar **, size_t *, const char **, const char **, const char **); +protected int file_is_json(struct magic_set *, const struct buffer *); protected int file_is_tar(struct magic_set *, const struct buffer *); protected int file_softmagic(struct magic_set *, const struct buffer *, uint16_t *, uint16_t *, int, int); @@ -501,7 +506,7 @@ protected int file_looks_utf8(const unsigned char *, size_t, unichar *, size_t *); protected size_t file_pstring_length_size(const struct magic *); protected size_t file_pstring_get_length(const struct magic *, const char *); -protected char * file_printable(char *, size_t, const char *); +protected char * file_printable(char *, size_t, const char *, size_t); #ifdef __EMX__ protected int file_os2_apptype(struct magic_set *, const char *, const void *, size_t); @@ -511,9 +516,7 @@ protected void buffer_init(struct buffer *, int, const void *, size_t); protected void buffer_fini(struct buffer *); protected int buffer_fill(const struct buffer *); -#if defined(HAVE_LOCALE_H) #include -#endif #if defined(HAVE_XLOCALE_H) #include #endif @@ -600,17 +603,17 @@ struct tm *gmtime_r(const time_t *, struct tm *); struct tm *localtime_r(const time_t *, struct tm *); #endif #ifndef HAVE_FMTCHECK -const char *fmtcheck(const char *, const char *) +const char *fmtcheck(const char *, const char *) __attribute__((__format_arg__(2))); #endif #ifdef HAVE_LIBSECCOMP -// basic filter +// basic filter // this mode should not interfere with normal operations // only some dangerous syscalls are blacklisted int enable_sandbox_basic(void); -// enhanced filter +// enhanced filter // this mode allows only the necessary syscalls used during normal operation // extensive testing required !!! int enable_sandbox_full(void); @@ -634,6 +637,9 @@ protected void file_warnx(const char *, ...) #ifndef O_BINARY #define O_BINARY 0 #endif +#ifndef O_NONBLOCK +#define O_NONBLOCK 0 +#endif #ifndef __cplusplus #if defined(__GNUC__) && (__GNUC__ >= 3) diff --git a/libmagic/src/main/cpp/file/fmtcheck.c b/libmagic/src/main/cpp/file/fmtcheck.c index 486aa08..fcad436 100644 --- a/libmagic/src/main/cpp/file/fmtcheck.c +++ b/libmagic/src/main/cpp/file/fmtcheck.c @@ -235,7 +235,7 @@ fmtcheck(const char *f1, const char *f2) EFT f1t, f2t; if (!f1) return f2; - + f1p = f1; f1t = FMTCHECK_START; f2p = f2; diff --git a/libmagic/src/main/cpp/file/fsmagic.c b/libmagic/src/main/cpp/file/fsmagic.c index c0a437a..3d74255 100644 --- a/libmagic/src/main/cpp/file/fsmagic.c +++ b/libmagic/src/main/cpp/file/fsmagic.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: fsmagic.c,v 1.77 2017/05/24 19:17:50 christos Exp $") +FILE_RCSID("@(#)$File: fsmagic.c,v 1.79 2018/10/02 00:38:33 christos Exp $") #endif /* lint */ #include "magic.h" @@ -77,7 +77,7 @@ bad_link(struct magic_set *ms, int err, char *buf) file_error(ms, err, "broken symbolic link to %s", buf); return -1; - } + } if (file_printf(ms, "broken symbolic link to %s", buf) == -1) return -1; } @@ -174,17 +174,17 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) return -1; #endif #ifdef S_ISGID - if (sb->st_mode & S_ISGID) + if (sb->st_mode & S_ISGID) if (file_printf(ms, "%ssetgid", COMMA) == -1) return -1; #endif #ifdef S_ISVTX - if (sb->st_mode & S_ISVTX) + if (sb->st_mode & S_ISVTX) if (file_printf(ms, "%ssticky", COMMA) == -1) return -1; #endif } - + switch (sb->st_mode & S_IFMT) { case S_IFDIR: if (mime) { @@ -196,7 +196,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) break; #ifdef S_IFCHR case S_IFCHR: - /* + /* * If -s has been specified, treat character special files * like ordinary files. Otherwise, just report that they * are block special files and go on to the next file. @@ -231,7 +231,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) #endif #ifdef S_IFBLK case S_IFBLK: - /* + /* * If -s has been specified, treat block special files * like ordinary files. Otherwise, just report that they * are block special files and go on to the next file. @@ -308,6 +308,15 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) buf[nch] = '\0'; /* readlink(2) does not do this */ /* If broken symlink, say so and quit early. */ +#ifdef __linux__ + /* + * linux procfs/devfs makes symlinks like pipe:[3515864880] + * that we can't stat their readlink output, so stat the + * original filename instead. + */ + if (stat(fn, &tstatbuf) < 0) + return bad_link(ms, errno, buf); +#else if (*buf == '/') { if (stat(buf, &tstatbuf) < 0) return bad_link(ms, errno, buf); @@ -320,7 +329,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) } else { if (tmp - fn + 1 > BUFSIZ) { if (ms->flags & MAGIC_ERROR) { - file_error(ms, 0, + file_error(ms, 0, "path too long: `%s'", buf); return -1; } @@ -345,6 +354,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) if (stat(tmp, &tstatbuf) < 0) return bad_link(ms, errno, buf); } +#endif /* Otherwise, handle it. */ if ((ms->flags & MAGIC_SYMLINK) != 0) { diff --git a/libmagic/src/main/cpp/file/funcs.c b/libmagic/src/main/cpp/file/funcs.c index 0bf92fe..eca99ad 100644 --- a/libmagic/src/main/cpp/file/funcs.c +++ b/libmagic/src/main/cpp/file/funcs.c @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: funcs.c,v 1.95 2018/05/24 18:09:17 christos Exp $") +FILE_RCSID("@(#)$File: funcs.c,v 1.102 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -42,9 +42,7 @@ FILE_RCSID("@(#)$File: funcs.c,v 1.95 2018/05/24 18:09:17 christos Exp $") #if defined(HAVE_WCTYPE_H) #include #endif -#if defined(HAVE_LIMITS_H) #include -#endif #ifndef SIZE_MAX #define SIZE_MAX ((size_t)~0) @@ -107,13 +105,13 @@ file_error_core(struct magic_set *ms, int error, const char *f, va_list va, if (lineno != 0) { free(ms->o.buf); ms->o.buf = NULL; - file_printf(ms, "line %" SIZE_T_FORMAT "u:", lineno); + (void)file_printf(ms, "line %" SIZE_T_FORMAT "u:", lineno); } if (ms->o.buf && *ms->o.buf) - file_printf(ms, " "); - file_vprintf(ms, f, va); + (void)file_printf(ms, " "); + (void)file_vprintf(ms, f, va); if (error > 0) - file_printf(ms, " (%s)", strerror(error)); + (void)file_printf(ms, " (%s)", strerror(error)); ms->event_flags |= EVENT_HAD_ERR; ms->error = error; } @@ -172,6 +170,35 @@ checkdone(struct magic_set *ms, int *rv) return 0; } +protected int +file_default(struct magic_set *ms, size_t nb) +{ + if (ms->flags & MAGIC_MIME) { + if ((ms->flags & MAGIC_MIME_TYPE) && + file_printf(ms, "application/%s", + nb ? "octet-stream" : "x-empty") == -1) + return -1; + return 1; + } + if (ms->flags & MAGIC_APPLE) { + if (file_printf(ms, "UNKNUNKN") == -1) + return -1; + return 1; + } + if (ms->flags & MAGIC_EXTENSION) { + if (file_printf(ms, "???") == -1) + return -1; + return 1; + } + return 0; +} + +/* + * The magic detection functions return: + * 1: found + * 0: not found + * -1: error + */ /*ARGSUSED*/ protected int file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__unused__)), @@ -180,7 +207,6 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u int m = 0, rv = 0, looks_text = 0; const char *code = NULL; const char *code_mime = "binary"; - const char *type = "application/octet-stream"; const char *def = "data"; const char *ftype = NULL; char *rbuf = NULL; @@ -191,7 +217,6 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u if (nb == 0) { def = "empty"; - type = "application/x-empty"; goto simple; } else if (nb == 1) { def = "very short file (no magic)"; @@ -240,6 +265,17 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u } } + /* Check if we have a JSON file */ + if ((ms->flags & MAGIC_NO_CHECK_JSON) == 0) { + m = file_is_json(ms, &b); + if ((ms->flags & MAGIC_DEBUG) != 0) + (void)fprintf(stderr, "[try json %d]\n", m); + if (m) { + if (checkdone(ms, &rv)) + goto done; + } + } + /* Check if we have a CDF file */ if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0) { m = file_trycdf(ms, &b); @@ -268,7 +304,7 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u rv = file_tryelf(ms, &b); rbuf = file_pop_buffer(ms, pb); - if (rv != 1) { + if (rv == -1) { free(rbuf); rbuf = NULL; } @@ -306,20 +342,12 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((__u simple: /* give up */ - m = 1; - if (ms->flags & MAGIC_MIME) { - if ((ms->flags & MAGIC_MIME_TYPE) && - file_printf(ms, "%s", type) == -1) - rv = -1; - } else if (ms->flags & MAGIC_APPLE) { - if (file_printf(ms, "UNKNUNKN") == -1) - rv = -1; - } else if (ms->flags & MAGIC_EXTENSION) { - if (file_printf(ms, "???") == -1) - rv = -1; - } else { - if (file_printf(ms, "%s", def) == -1) - rv = -1; + if (m == 0) { + m = 1; + rv = file_default(ms, nb); + if (rv == 0) + if (file_printf(ms, "%s", def) == -1) + rv = -1; } done: if ((ms->flags & MAGIC_MIME_ENCODING) != 0) { @@ -364,9 +392,9 @@ file_reset(struct magic_set *ms, int checkloaded) #define OCTALIFY(n, o) \ /*LINTED*/ \ (void)(*(n)++ = '\\', \ - *(n)++ = (((uint32_t)*(o) >> 6) & 3) + '0', \ - *(n)++ = (((uint32_t)*(o) >> 3) & 7) + '0', \ - *(n)++ = (((uint32_t)*(o) >> 0) & 7) + '0', \ + *(n)++ = ((CAST(uint32_t, *(o)) >> 6) & 3) + '0', \ + *(n)++ = ((CAST(uint32_t, *(o)) >> 3) & 7) + '0', \ + *(n)++ = ((CAST(uint32_t, *(o)) >> 0) & 7) + '0', \ (o)++) protected const char * @@ -412,9 +440,9 @@ file_getbuffer(struct magic_set *ms) while (op < eop) { bytesconsumed = mbrtowc(&nextchar, op, - (size_t)(eop - op), &state); - if (bytesconsumed == (size_t)(-1) || - bytesconsumed == (size_t)(-2)) { + CAST(size_t, eop - op), &state); + if (bytesconsumed == CAST(size_t, -1) || + bytesconsumed == CAST(size_t, -2)) { mb_conv = 0; break; } @@ -437,7 +465,7 @@ file_getbuffer(struct magic_set *ms) #endif for (np = ms->o.pbuf, op = ms->o.buf; *op;) { - if (isprint((unsigned char)*op)) { + if (isprint(CAST(unsigned char, *op))) { *np++ = *op++; } else { OCTALIFY(np, op); @@ -595,12 +623,13 @@ file_pop_buffer(struct magic_set *ms, file_pushbuf_t *pb) * convert string to ascii printable format. */ protected char * -file_printable(char *buf, size_t bufsiz, const char *str) +file_printable(char *buf, size_t bufsiz, const char *str, size_t slen) { - char *ptr, *eptr; - const unsigned char *s = (const unsigned char *)str; + char *ptr, *eptr = buf + bufsiz - 1; + const unsigned char *s = RCAST(const unsigned char *, str); + const unsigned char *es = s + slen; - for (ptr = buf, eptr = ptr + bufsiz - 1; ptr < eptr && *s; s++) { + for (ptr = buf; ptr < eptr && s < es && *s; s++) { if (isprint(*s)) { *ptr++ = *s; continue; diff --git a/libmagic/src/main/cpp/file/getopt_long.c b/libmagic/src/main/cpp/file/getopt_long.c deleted file mode 100644 index f0fb1b0..0000000 --- a/libmagic/src/main/cpp/file/getopt_long.c +++ /dev/null @@ -1,498 +0,0 @@ -/* $NetBSD: getopt_long.c,v 1.21.4.1 2008/01/09 01:34:14 matt Exp $ */ - -/*- - * Copyright (c) 2000 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Dieter Baron and Thomas Klausner. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "file.h" - -#ifndef lint -FILE_RCSID("@(#)$File: getopt_long.c,v 1.5 2009/02/03 20:27:51 christos Exp $") -#endif /* lint */ - -#include -#ifdef HAVE_ERR_H -#include -#else -#define warnx printf -#endif -#include -#if defined(HAVE_GETOPT_H) && defined(HAVE_STRUCT_OPTION) -#include -#else -#include "mygetopt.h" -#endif -#include -#include - -#define REPLACE_GETOPT - -#ifndef _DIAGASSERT -#define _DIAGASSERT assert -#endif - -#ifdef REPLACE_GETOPT -#ifdef __weak_alias -__weak_alias(getopt,_getopt) -#endif -int opterr = 1; /* if error message should be printed */ -int optind = 1; /* index into parent argv vector */ -int optopt = '?'; /* character checked for validity */ -int optreset; /* reset getopt */ -char *optarg; /* argument associated with option */ -#elif HAVE_NBTOOL_CONFIG_H && !HAVE_DECL_OPTRESET -static int optreset; -#endif - -#ifdef __weak_alias -__weak_alias(getopt_long,_getopt_long) -#endif - -#define IGNORE_FIRST (*options == '-' || *options == '+') -#define PRINT_ERROR ((opterr) && ((*options != ':') \ - || (IGNORE_FIRST && options[1] != ':'))) -#define IS_POSIXLY_CORRECT (getenv("POSIXLY_CORRECT") != NULL) -#define PERMUTE (!IS_POSIXLY_CORRECT && !IGNORE_FIRST) -/* XXX: GNU ignores PC if *options == '-' */ -#define IN_ORDER (!IS_POSIXLY_CORRECT && *options == '-') - -/* return values */ -#define BADCH (int)'?' -#define BADARG ((IGNORE_FIRST && options[1] == ':') \ - || (*options == ':') ? (int)':' : (int)'?') -#define INORDER (int)1 - -#define EMSG "" - -static int getopt_internal(int, char **, const char *); -static int gcd(int, int); -static void permute_args(int, int, int, char **); - -static const char *place = EMSG; /* option letter processing */ - -/* XXX: set optreset to 1 rather than these two */ -static int nonopt_start = -1; /* first non option argument (for permute) */ -static int nonopt_end = -1; /* first option after non options (for permute) */ - -/* Error messages */ -static const char recargchar[] = "option requires an argument -- %c"; -static const char recargstring[] = "option requires an argument -- %s"; -static const char ambig[] = "ambiguous option -- %.*s"; -static const char noarg[] = "option doesn't take an argument -- %.*s"; -static const char illoptchar[] = "unknown option -- %c"; -static const char illoptstring[] = "unknown option -- %s"; - - -/* - * Compute the greatest common divisor of a and b. - */ -static int -gcd(a, b) - int a; - int b; -{ - int c; - - c = a % b; - while (c != 0) { - a = b; - b = c; - c = a % b; - } - - return b; -} - -/* - * Exchange the block from nonopt_start to nonopt_end with the block - * from nonopt_end to opt_end (keeping the same order of arguments - * in each block). - */ -static void -permute_args(panonopt_start, panonopt_end, opt_end, nargv) - int panonopt_start; - int panonopt_end; - int opt_end; - char **nargv; -{ - int cstart, cyclelen, i, j, ncycle, nnonopts, nopts, pos; - char *swap; - - _DIAGASSERT(nargv != NULL); - - /* - * compute lengths of blocks and number and size of cycles - */ - nnonopts = panonopt_end - panonopt_start; - nopts = opt_end - panonopt_end; - ncycle = gcd(nnonopts, nopts); - cyclelen = (opt_end - panonopt_start) / ncycle; - - for (i = 0; i < ncycle; i++) { - cstart = panonopt_end+i; - pos = cstart; - for (j = 0; j < cyclelen; j++) { - if (pos >= panonopt_end) - pos -= nnonopts; - else - pos += nopts; - swap = nargv[pos]; - nargv[pos] = nargv[cstart]; - nargv[cstart] = swap; - } - } -} - -/* - * getopt_internal -- - * Parse argc/argv argument vector. Called by user level routines. - * Returns -2 if -- is found (can be long option or end of options marker). - */ -static int -getopt_internal(nargc, nargv, options) - int nargc; - char **nargv; - const char *options; -{ - char *oli; /* option letter list index */ - int optchar; - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - - optarg = NULL; - - /* - * XXX Some programs (like rsyncd) expect to be able to - * XXX re-initialize optind to 0 and have getopt_long(3) - * XXX properly function again. Work around this braindamage. - */ - if (optind == 0) - optind = 1; - - if (optreset) - nonopt_start = nonopt_end = -1; -start: - if (optreset || !*place) { /* update scanning pointer */ - optreset = 0; - if (optind >= nargc) { /* end of argument vector */ - place = EMSG; - if (nonopt_end != -1) { - /* do permutation, if we have to */ - permute_args(nonopt_start, nonopt_end, - optind, nargv); - optind -= nonopt_end - nonopt_start; - } - else if (nonopt_start != -1) { - /* - * If we skipped non-options, set optind - * to the first of them. - */ - optind = nonopt_start; - } - nonopt_start = nonopt_end = -1; - return -1; - } - if ((*(place = nargv[optind]) != '-') - || (place[1] == '\0')) { /* found non-option */ - place = EMSG; - if (IN_ORDER) { - /* - * GNU extension: - * return non-option as argument to option 1 - */ - optarg = nargv[optind++]; - return INORDER; - } - if (!PERMUTE) { - /* - * if no permutation wanted, stop parsing - * at first non-option - */ - return -1; - } - /* do permutation */ - if (nonopt_start == -1) - nonopt_start = optind; - else if (nonopt_end != -1) { - permute_args(nonopt_start, nonopt_end, - optind, nargv); - nonopt_start = optind - - (nonopt_end - nonopt_start); - nonopt_end = -1; - } - optind++; - /* process next argument */ - goto start; - } - if (nonopt_start != -1 && nonopt_end == -1) - nonopt_end = optind; - if (place[1] && *++place == '-') { /* found "--" */ - place++; - return -2; - } - } - if ((optchar = (int)*place++) == (int)':' || - (oli = strchr(options + (IGNORE_FIRST ? 1 : 0), optchar)) == NULL) { - /* option letter unknown or ':' */ - if (!*place) - ++optind; - if (PRINT_ERROR) - warnx(illoptchar, optchar); - optopt = optchar; - return BADCH; - } - if (optchar == 'W' && oli[1] == ';') { /* -W long-option */ - /* XXX: what if no long options provided (called by getopt)? */ - if (*place) - return -2; - - if (++optind >= nargc) { /* no arg */ - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar, optchar); - optopt = optchar; - return BADARG; - } else /* white space */ - place = nargv[optind]; - /* - * Handle -W arg the same as --arg (which causes getopt to - * stop parsing). - */ - return -2; - } - if (*++oli != ':') { /* doesn't take argument */ - if (!*place) - ++optind; - } else { /* takes (optional) argument */ - optarg = NULL; - if (*place) /* no white space */ - optarg = (char *)place; - /* XXX: disable test for :: if PC? (GNU doesn't) */ - else if (oli[1] != ':') { /* arg not optional */ - if (++optind >= nargc) { /* no arg */ - place = EMSG; - if (PRINT_ERROR) - warnx(recargchar, optchar); - optopt = optchar; - return BADARG; - } else - optarg = nargv[optind]; - } - place = EMSG; - ++optind; - } - /* dump back option letter */ - return optchar; -} - -#ifdef REPLACE_GETOPT -/* - * getopt -- - * Parse argc/argv argument vector. - * - * [eventually this will replace the real getopt] - */ -int -getopt(nargc, nargv, options) - int nargc; - char * const *nargv; - const char *options; -{ - int retval; - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - - retval = getopt_internal(nargc, (char **)nargv, options); - if (retval == -2) { - ++optind; - /* - * We found an option (--), so if we skipped non-options, - * we have to permute. - */ - if (nonopt_end != -1) { - permute_args(nonopt_start, nonopt_end, optind, - (char **)nargv); - optind -= nonopt_end - nonopt_start; - } - nonopt_start = nonopt_end = -1; - retval = -1; - } - return retval; -} -#endif - -/* - * getopt_long -- - * Parse argc/argv argument vector. - */ -int -getopt_long(nargc, nargv, options, long_options, idx) - int nargc; - char * const *nargv; - const char *options; - const struct option *long_options; - int *idx; -{ - int retval; - -#define IDENTICAL_INTERPRETATION(_x, _y) \ - (long_options[(_x)].has_arg == long_options[(_y)].has_arg && \ - long_options[(_x)].flag == long_options[(_y)].flag && \ - long_options[(_x)].val == long_options[(_y)].val) - - _DIAGASSERT(nargv != NULL); - _DIAGASSERT(options != NULL); - _DIAGASSERT(long_options != NULL); - /* idx may be NULL */ - - retval = getopt_internal(nargc, (char **)nargv, options); - if (retval == -2) { - char *current_argv, *has_equal; - size_t current_argv_len; - int i, ambiguous, match; - - current_argv = (char *)place; - match = -1; - ambiguous = 0; - - optind++; - place = EMSG; - - if (*current_argv == '\0') { /* found "--" */ - /* - * We found an option (--), so if we skipped - * non-options, we have to permute. - */ - if (nonopt_end != -1) { - permute_args(nonopt_start, nonopt_end, - optind, (char **)nargv); - optind -= nonopt_end - nonopt_start; - } - nonopt_start = nonopt_end = -1; - return -1; - } - if ((has_equal = strchr(current_argv, '=')) != NULL) { - /* argument found (--option=arg) */ - current_argv_len = has_equal - current_argv; - has_equal++; - } else - current_argv_len = strlen(current_argv); - - for (i = 0; long_options[i].name; i++) { - /* find matching long option */ - if (strncmp(current_argv, long_options[i].name, - current_argv_len)) - continue; - - if (strlen(long_options[i].name) == - (unsigned)current_argv_len) { - /* exact match */ - match = i; - ambiguous = 0; - break; - } - if (match == -1) /* partial match */ - match = i; - else if (!IDENTICAL_INTERPRETATION(i, match)) - ambiguous = 1; - } - if (ambiguous) { - /* ambiguous abbreviation */ - if (PRINT_ERROR) - warnx(ambig, (int)current_argv_len, - current_argv); - optopt = 0; - return BADCH; - } - if (match != -1) { /* option found */ - if (long_options[match].has_arg == no_argument - && has_equal) { - if (PRINT_ERROR) - warnx(noarg, (int)current_argv_len, - current_argv); - /* - * XXX: GNU sets optopt to val regardless of - * flag - */ - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - return BADARG; - } - if (long_options[match].has_arg == required_argument || - long_options[match].has_arg == optional_argument) { - if (has_equal) - optarg = has_equal; - else if (long_options[match].has_arg == - required_argument) { - /* - * optional argument doesn't use - * next nargv - */ - optarg = nargv[optind++]; - } - } - if ((long_options[match].has_arg == required_argument) - && (optarg == NULL)) { - /* - * Missing argument; leading ':' - * indicates no error should be generated - */ - if (PRINT_ERROR) - warnx(recargstring, current_argv); - /* - * XXX: GNU sets optopt to val regardless - * of flag - */ - if (long_options[match].flag == NULL) - optopt = long_options[match].val; - else - optopt = 0; - --optind; - return BADARG; - } - } else { /* unknown option */ - if (PRINT_ERROR) - warnx(illoptstring, current_argv); - optopt = 0; - return BADCH; - } - if (long_options[match].flag) { - *long_options[match].flag = long_options[match].val; - retval = 0; - } else - retval = long_options[match].val; - if (idx) - *idx = match; - } - return retval; -#undef IDENTICAL_INTERPRETATION -} diff --git a/libmagic/src/main/cpp/file/is_json.c b/libmagic/src/main/cpp/file/is_json.c new file mode 100644 index 0000000..a8a6eca --- /dev/null +++ b/libmagic/src/main/cpp/file/is_json.c @@ -0,0 +1,455 @@ +/*- + * Copyright (c) 2018 Christos Zoulas + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Parse JSON object serialization format (RFC-7159) + */ + +#ifndef TEST +#include "file.h" + +#ifndef lint +FILE_RCSID("@(#)$File: is_json.c,v 1.12 2018/10/19 00:26:26 christos Exp $") +#endif + +#include +#include "magic.h" +#endif + +#ifdef DEBUG +#include +#define DPRINTF(a, b, c) \ + printf("%s [%.2x/%c] %.20s\n", (a), *(b), *(b), (const char *)(c)) +#else +#define DPRINTF(a, b, c) do { } while (/*CONSTCOND*/0) +#endif + +#define JSON_ARRAY 0 +#define JSON_CONSTANT 1 +#define JSON_NUMBER 2 +#define JSON_OBJECT 3 +#define JSON_STRING 4 +#define JSON_MAX 5 + +/* + * if JSON_COUNT != 0: + * count all the objects, require that we have the whole data file + * otherwise: + * stop if we find an object or an array + */ +#ifndef JSON_COUNT +#define JSON_COUNT 0 +#endif + +static int json_parse(const unsigned char **, const unsigned char *, size_t *, + size_t); + +static int +json_isspace(const unsigned char uc) +{ + switch (uc) { + case ' ': + case '\n': + case '\r': + case '\t': + return 1; + default: + return 0; + } +} + +static int +json_isdigit(unsigned char uc) +{ + switch (uc) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + return 1; + default: + return 0; + } +} + +static int +json_isxdigit(unsigned char uc) +{ + if (json_isdigit(uc)) + return 1; + switch (uc) { + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + return 1; + default: + return 0; + } +} + +static const unsigned char * +json_skip_space(const unsigned char *uc, const unsigned char *ue) +{ + while (uc < ue && json_isspace(*uc)) + uc++; + return uc; +} + +static int +json_parse_string(const unsigned char **ucp, const unsigned char *ue) +{ + const unsigned char *uc = *ucp; + size_t i; + + DPRINTF("Parse string: ", uc, *ucp); + while (uc < ue) { + switch (*uc++) { + case '\0': + goto out; + case '\\': + if (uc == ue) + goto out; + switch (*uc++) { + case '\0': + goto out; + case '"': + case '\\': + case '/': + case 'b': + case 'f': + case 'n': + case 'r': + case 't': + continue; + case 'u': + if (ue - uc < 4) { + uc = ue; + goto out; + } + for (i = 0; i < 4; i++) + if (!json_isxdigit(*uc++)) + goto out; + continue; + default: + goto out; + } + case '"': + *ucp = uc; + return 1; + default: + continue; + } + } +out: + DPRINTF("Bad string: ", uc, *ucp); + *ucp = uc; + return 0; +} + +static int +json_parse_array(const unsigned char **ucp, const unsigned char *ue, + size_t *st, size_t lvl) +{ + const unsigned char *uc = *ucp; + + DPRINTF("Parse array: ", uc, *ucp); + while (uc < ue) { + if (!json_parse(&uc, ue, st, lvl + 1)) + goto out; + if (uc == ue) + goto out; + switch (*uc) { + case ',': + uc++; + continue; + case ']': + *ucp = uc + 1; + return 1; + default: + goto out; + } + } +out: + DPRINTF("Bad array: ", uc, *ucp); + *ucp = uc; + return 0; +} + +static int +json_parse_object(const unsigned char **ucp, const unsigned char *ue, + size_t *st, size_t lvl) +{ + const unsigned char *uc = *ucp; + DPRINTF("Parse object: ", uc, *ucp); + while (uc < ue) { + uc = json_skip_space(uc, ue); + if (uc == ue) + goto out; + if (*uc++ != '"') { + DPRINTF("not string", uc, *ucp); + goto out; + } + DPRINTF("next field", uc, *ucp); + if (!json_parse_string(&uc, ue)) { + DPRINTF("not string", uc, *ucp); + goto out; + } + uc = json_skip_space(uc, ue); + if (uc == ue) + goto out; + if (*uc++ != ':') { + DPRINTF("not colon", uc, *ucp); + goto out; + } + if (!json_parse(&uc, ue, st, lvl + 1)) { + DPRINTF("not json", uc, *ucp); + goto out; + } + if (uc == ue) + goto out; + switch (*uc++) { + case ',': + continue; + case '}': /* { */ + *ucp = uc; + DPRINTF("Good object: ", uc, *ucp); + return 1; + default: + *ucp = uc - 1; + DPRINTF("not more", uc, *ucp); + goto out; + } + } +out: + DPRINTF("Bad object: ", uc, *ucp); + *ucp = uc; + return 0; +} + +static int +json_parse_number(const unsigned char **ucp, const unsigned char *ue) +{ + const unsigned char *uc = *ucp; + int got = 0; + + DPRINTF("Parse number: ", uc, *ucp); + if (uc == ue) + return 0; + if (*uc == '-') + uc++; + + for (; uc < ue; uc++) { + if (!json_isdigit(*uc)) + break; + got = 1; + } + if (uc == ue) + goto out; + if (*uc == '.') + uc++; + for (; uc < ue; uc++) { + if (!json_isdigit(*uc)) + break; + got = 1; + } + if (uc == ue) + goto out; + if (got && (*uc == 'e' || *uc == 'E')) { + uc++; + got = 0; + if (uc == ue) + goto out; + if (*uc == '+' || *uc == '-') + uc++; + for (; uc < ue; uc++) { + if (!json_isdigit(*uc)) + break; + got = 1; + } + } +out: + if (!got) + DPRINTF("Bad number: ", uc, *ucp); + else + DPRINTF("Good number: ", uc, *ucp); + *ucp = uc; + return got; +} + +static int +json_parse_const(const unsigned char **ucp, const unsigned char *ue, + const char *str, size_t len) +{ + const unsigned char *uc = *ucp; + + DPRINTF("Parse const: ", uc, *ucp); + for (len--; uc < ue && --len;) { + if (*uc++ == *++str) + continue; + } + if (len) + DPRINTF("Bad const: ", uc, *ucp); + *ucp = uc; + return len == 0; +} + +static int +json_parse(const unsigned char **ucp, const unsigned char *ue, + size_t *st, size_t lvl) +{ + const unsigned char *uc; + int rv = 0; + int t; + + uc = json_skip_space(*ucp, ue); + if (uc == ue) + goto out; + + // Avoid recursion + if (lvl > 20) + return 0; +#if JSON_COUNT + /* bail quickly if not counting */ + if (lvl > 1 && (st[JSON_OBJECT] || st[JSON_ARRAY])) + return 1; +#endif + + DPRINTF("Parse general: ", uc, *ucp); + switch (*uc++) { + case '"': + rv = json_parse_string(&uc, ue); + t = JSON_STRING; + break; + case '[': + rv = json_parse_array(&uc, ue, st, lvl + 1); + t = JSON_ARRAY; + break; + case '{': /* '}' */ + rv = json_parse_object(&uc, ue, st, lvl + 1); + t = JSON_OBJECT; + break; + case 't': + rv = json_parse_const(&uc, ue, "true", sizeof("true")); + t = JSON_CONSTANT; + break; + case 'f': + rv = json_parse_const(&uc, ue, "false", sizeof("false")); + t = JSON_CONSTANT; + break; + case 'n': + rv = json_parse_const(&uc, ue, "null", sizeof("null")); + t = JSON_CONSTANT; + break; + default: + --uc; + rv = json_parse_number(&uc, ue); + t = JSON_NUMBER; + break; + } + if (rv) + st[t]++; + uc = json_skip_space(uc, ue); +out: + *ucp = uc; + DPRINTF("End general: ", uc, *ucp); + if (lvl == 0) + return rv && (st[JSON_ARRAY] || st[JSON_OBJECT]); + return rv; +} + +#ifndef TEST +int +file_is_json(struct magic_set *ms, const struct buffer *b) +{ + const unsigned char *uc = CAST(const unsigned char *, b->fbuf); + const unsigned char *ue = uc + b->flen; + size_t st[JSON_MAX]; + int mime = ms->flags & MAGIC_MIME; + + + if ((ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION)) != 0) + return 0; + + memset(st, 0, sizeof(st)); + + if (!json_parse(&uc, ue, st, 0)) + return 0; + + if (mime == MAGIC_MIME_ENCODING) + return 1; + if (mime) { + if (file_printf(ms, "application/json") == -1) + return -1; + return 1; + } + if (file_printf(ms, "JSON data") == -1) + return -1; +#if JSON_COUNT +#define P(n) st[n], st[n] > 1 ? "s" : "" + if (file_printf(ms, " (%" SIZE_T_FORMAT "u object%s, %" SIZE_T_FORMAT + "u array%s, %" SIZE_T_FORMAT "u string%s, %" SIZE_T_FORMAT + "u constant%s, %" SIZE_T_FORMAT "u number%s)", P(JSON_OBJECT), + P(JSON_ARRAY), P(JSON_STRING), P(JSON_CONSTANT), P(JSON_NUMBER)) + == -1) + return -1; +#endif + return 1; +} + +#else + +#include +#include +#include +#include +#include +#include +#include +#include + +int +main(int argc, char *argv[]) +{ + int fd, rv; + struct stat st; + unsigned char *p; + size_t stats[JSON_MAX]; + + if ((fd = open(argv[1], O_RDONLY)) == -1) + err(EXIT_FAILURE, "Can't open `%s'", argv[1]); + + if (fstat(fd, &st) == -1) + err(EXIT_FAILURE, "Can't stat `%s'", argv[1]); + + if ((p = malloc(st.st_size)) == NULL) + err(EXIT_FAILURE, "Can't allocate %jd bytes", + (intmax_t)st.st_size); + if (read(fd, p, st.st_size) != st.st_size) + err(EXIT_FAILURE, "Can't read %jd bytes", + (intmax_t)st.st_size); + memset(stats, 0, sizeof(stats)); + printf("is json %d\n", json_parse((const unsigned char **)&p, + p + st.st_size, stats, 0)); + return 0; +} +#endif diff --git a/libmagic/src/main/cpp/file/is_tar.c b/libmagic/src/main/cpp/file/is_tar.c index 7110604..82b0805 100644 --- a/libmagic/src/main/cpp/file/is_tar.c +++ b/libmagic/src/main/cpp/file/is_tar.c @@ -40,7 +40,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: is_tar.c,v 1.41 2017/11/02 20:25:39 christos Exp $") +FILE_RCSID("@(#)$File: is_tar.c,v 1.44 2019/02/20 02:35:27 christos Exp $") #endif #include "magic.h" @@ -62,7 +62,7 @@ static const char tartype[][32] = { /* should be equal to messages */ protected int file_is_tar(struct magic_set *ms, const struct buffer *b) { - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; /* * Do the tar test first, because if the first file in the tar @@ -78,9 +78,13 @@ file_is_tar(struct magic_set *ms, const struct buffer *b) if (tar < 1 || tar > 3) return 0; + if (mime == MAGIC_MIME_ENCODING) + return 1; + if (file_printf(ms, "%s", mime ? "application/x-tar" : tartype[tar - 1]) == -1) return -1; + return 1; } @@ -94,7 +98,8 @@ file_is_tar(struct magic_set *ms, const struct buffer *b) private int is_tar(const unsigned char *buf, size_t nbytes) { - const union record *header = (const union record *)(const void *)buf; + const union record *header = RCAST(const union record *, + RCAST(const void *, buf)); size_t i; int sum, recsum; const unsigned char *p, *ep; @@ -143,7 +148,7 @@ from_oct(const char *where, size_t digs) if (digs == 0) return -1; - while (isspace((unsigned char)*where)) { /* Skip spaces */ + while (isspace(CAST(unsigned char, *where))) { /* Skip spaces */ where++; if (digs-- == 0) return -1; /* All blank field */ @@ -154,7 +159,7 @@ from_oct(const char *where, size_t digs) digs--; } - if (digs > 0 && *where && !isspace((unsigned char)*where)) + if (digs > 0 && *where && !isspace(CAST(unsigned char, *where))) return -1; /* Ended on non-(space/NUL) */ return value; diff --git a/libmagic/src/main/cpp/file/localtime_r.c b/libmagic/src/main/cpp/file/localtime_r.c deleted file mode 100644 index 35c3b40..0000000 --- a/libmagic/src/main/cpp/file/localtime_r.c +++ /dev/null @@ -1,19 +0,0 @@ -/* $File: localtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $ */ - -#include "file.h" -#ifndef lint -FILE_RCSID("@(#)$File: localtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $") -#endif /* lint */ -#include -#include - -/* asctime_r is not thread-safe anyway */ -struct tm * -localtime_r(const time_t *t, struct tm *tm) -{ - struct tm *tmp = localtime(t); - if (tmp == NULL) - return NULL; - memcpy(tm, tmp, sizeof(*tm)); - return tmp; -} diff --git a/libmagic/src/main/cpp/file/magic.c b/libmagic/src/main/cpp/file/magic.c index 1448a69..2207f08 100644 --- a/libmagic/src/main/cpp/file/magic.c +++ b/libmagic/src/main/cpp/file/magic.c @@ -33,7 +33,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: magic.c,v 1.102 2017/08/28 13:39:18 christos Exp $") +FILE_RCSID("@(#)$File: magic.c,v 1.109 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -44,9 +44,7 @@ FILE_RCSID("@(#)$File: magic.c,v 1.102 2017/08/28 13:39:18 christos Exp $") #ifdef QUICK #include #endif -#ifdef HAVE_LIMITS_H #include /* for PIPE_BUF */ -#endif #if defined(HAVE_UTIMES) # include @@ -314,7 +312,8 @@ magic_load_buffers(struct magic_set *ms, void **bufs, size_t *sizes, { if (ms == NULL) return -1; - return buffer_apprentice(ms, (struct magic **)bufs, sizes, nbufs); + return buffer_apprentice(ms, RCAST(struct magic **, bufs), + sizes, nbufs); } #endif @@ -407,7 +406,7 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) struct stat sb; ssize_t nbytes = 0; /* number of bytes read from a datafile */ int ispipe = 0; - off_t pos = (off_t)-1; + off_t pos = CAST(off_t, -1); if (file_reset(ms, 1) == -1) goto out; @@ -435,25 +434,13 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) if (fd == STDIN_FILENO) _setmode(STDIN_FILENO, O_BINARY); #endif - - if (inname == NULL) { - if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode)) - ispipe = 1; - else - pos = lseek(fd, (off_t)0, SEEK_CUR); - } else { - int flags = O_RDONLY|O_BINARY; - int okstat = stat(inname, &sb) == 0; - - if (okstat && S_ISFIFO(sb.st_mode)) { -#ifdef O_NONBLOCK - flags |= O_NONBLOCK; -#endif - ispipe = 1; - } - + if (inname != NULL) { + int flags = O_RDONLY|O_BINARY|O_NONBLOCK; errno = 0; if ((fd = open(inname, flags)) < 0) { + int okstat = stat(inname, &sb) == 0; + if (okstat && S_ISFIFO(sb.st_mode)) + ispipe = 1; #ifdef WIN32 /* * Can't stat, can't open. It may have been opened in @@ -472,12 +459,13 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) rv = 0; goto done; } -#ifdef O_NONBLOCK - if ((flags = fcntl(fd, F_GETFL)) != -1) { - flags &= ~O_NONBLOCK; - (void)fcntl(fd, F_SETFL, flags); - } -#endif + } + + if (fd != -1) { + if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode)) + ispipe = 1; + if (inname == NULL) + pos = lseek(fd, CAST(off_t, 0), SEEK_CUR); } /* @@ -486,8 +474,8 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) if (ispipe) { ssize_t r = 0; - while ((r = sread(fd, (void *)&buf[nbytes], - (size_t)(ms->bytes_max - nbytes), 1)) > 0) { + while ((r = sread(fd, RCAST(void *, &buf[nbytes]), + CAST(size_t, ms->bytes_max - nbytes), 1)) > 0) { nbytes += r; if (r < PIPE_BUF) break; } @@ -507,7 +495,7 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) _isatty(fd) ? 8 * 1024 : #endif ms->bytes_max; - if ((nbytes = read(fd, (char *)buf, howmany)) == -1) { + if ((nbytes = read(fd, RCAST(void *, buf), howmany)) == -1) { if (inname == NULL && fd != STDIN_FILENO) file_error(ms, errno, "cannot read fd %d", fd); else @@ -518,13 +506,13 @@ file_or_fd(struct magic_set *ms, const char *inname, int fd) } (void)memset(buf + nbytes, 0, SLOP); /* NUL terminate */ - if (file_buffer(ms, fd, inname, buf, (size_t)nbytes) == -1) + if (file_buffer(ms, fd, inname, buf, CAST(size_t, nbytes)) == -1) goto done; rv = 0; done: free(buf); if (fd != -1) { - if (pos != (off_t)-1) + if (pos != CAST(off_t, -1)) (void)lseek(fd, pos, SEEK_SET); close_and_restore(ms, inname, fd, &sb); } @@ -598,27 +586,29 @@ magic_version(void) public int magic_setparam(struct magic_set *ms, int param, const void *val) { + if (ms == NULL) + return -1; switch (param) { case MAGIC_PARAM_INDIR_MAX: - ms->indir_max = (uint16_t)*(const size_t *)val; + ms->indir_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_NAME_MAX: - ms->name_max = (uint16_t)*(const size_t *)val; + ms->name_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_ELF_PHNUM_MAX: - ms->elf_phnum_max = (uint16_t)*(const size_t *)val; + ms->elf_phnum_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_ELF_SHNUM_MAX: - ms->elf_shnum_max = (uint16_t)*(const size_t *)val; + ms->elf_shnum_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_ELF_NOTES_MAX: - ms->elf_notes_max = (uint16_t)*(const size_t *)val; + ms->elf_notes_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_REGEX_MAX: - ms->elf_notes_max = (uint16_t)*(const size_t *)val; + ms->regex_max = CAST(uint16_t, *CAST(const size_t *, val)); return 0; case MAGIC_PARAM_BYTES_MAX: - ms->bytes_max = *(const size_t *)val; + ms->bytes_max = *CAST(const size_t *, val); return 0; default: errno = EINVAL; @@ -629,27 +619,29 @@ magic_setparam(struct magic_set *ms, int param, const void *val) public int magic_getparam(struct magic_set *ms, int param, void *val) { + if (ms == NULL) + return -1; switch (param) { case MAGIC_PARAM_INDIR_MAX: - *(size_t *)val = ms->indir_max; + *CAST(size_t *, val) = ms->indir_max; return 0; case MAGIC_PARAM_NAME_MAX: - *(size_t *)val = ms->name_max; + *CAST(size_t *, val) = ms->name_max; return 0; case MAGIC_PARAM_ELF_PHNUM_MAX: - *(size_t *)val = ms->elf_phnum_max; + *CAST(size_t *, val) = ms->elf_phnum_max; return 0; case MAGIC_PARAM_ELF_SHNUM_MAX: - *(size_t *)val = ms->elf_shnum_max; + *CAST(size_t *, val) = ms->elf_shnum_max; return 0; case MAGIC_PARAM_ELF_NOTES_MAX: - *(size_t *)val = ms->elf_notes_max; + *CAST(size_t *, val) = ms->elf_notes_max; return 0; case MAGIC_PARAM_REGEX_MAX: - *(size_t *)val = ms->regex_max; + *CAST(size_t *, val) = ms->regex_max; return 0; case MAGIC_PARAM_BYTES_MAX: - *(size_t *)val = ms->bytes_max; + *CAST(size_t *, val) = ms->bytes_max; return 0; default: errno = EINVAL; diff --git a/libmagic/src/main/cpp/file/magic.h b/libmagic/src/main/cpp/file/magic.h index 2d707d5..ac8f8e1 100644 --- a/libmagic/src/main/cpp/file/magic.h +++ b/libmagic/src/main/cpp/file/magic.h @@ -58,6 +58,7 @@ #define MAGIC_NO_CHECK_CDF 0x0040000 /* Don't check for cdf files */ #define MAGIC_NO_CHECK_TOKENS 0x0100000 /* Don't check tokens */ #define MAGIC_NO_CHECK_ENCODING 0x0200000 /* Don't check text encodings */ +#define MAGIC_NO_CHECK_JSON 0x0400000 /* Don't check for JSON files */ /* No built-in tests; only consult the magic file */ #define MAGIC_NO_CHECK_BUILTIN ( \ @@ -70,6 +71,7 @@ MAGIC_NO_CHECK_CDF | \ MAGIC_NO_CHECK_TOKENS | \ MAGIC_NO_CHECK_ENCODING | \ + MAGIC_NO_CHECK_JSON | \ 0 \ ) @@ -96,7 +98,7 @@ b\22no_check_cdf\0\ b\23no_check_reserved0\0\ b\24no_check_tokens\0\ b\25no_check_encoding\0\ -b\26no_check_reserved1\0\ +b\26no_check_json\0\ b\27no_check_reserved2\0\ b\30extension\0\ b\31transp_compression\0\ @@ -109,7 +111,7 @@ b\31transp_compression\0\ #define MAGIC_NO_CHECK_FORTRAN 0x000000 /* Don't check ascii/fortran */ #define MAGIC_NO_CHECK_TROFF 0x000000 /* Don't check ascii/troff */ -#define MAGIC_VERSION 532 /* This implementation */ +#define MAGIC_VERSION 536 /* This implementation */ #ifdef __cplusplus diff --git a/libmagic/src/main/cpp/file/mygetopt.h b/libmagic/src/main/cpp/file/mygetopt.h index ef87525..d766762 100644 --- a/libmagic/src/main/cpp/file/mygetopt.h +++ b/libmagic/src/main/cpp/file/mygetopt.h @@ -64,5 +64,5 @@ struct option { int getopt_long(int, char * const *, const char *, const struct option *, int *); - + #endif /* !_GETOPT_H_ */ diff --git a/libmagic/src/main/cpp/file/print.c b/libmagic/src/main/cpp/file/print.c index 4ffa445..6dad1de 100644 --- a/libmagic/src/main/cpp/file/print.c +++ b/libmagic/src/main/cpp/file/print.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: print.c,v 1.81 2016/01/19 15:09:03 christos Exp $") +FILE_RCSID("@(#)$File: print.c,v 1.84 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include @@ -65,7 +65,7 @@ file_mdump(struct magic *m) if (m->in_op & FILE_OPINVERSE) (void) fputc('~', stderr); (void) fprintf(stderr, "%c%u),", - ((size_t)(m->in_op & FILE_OPS_MASK) < + (CAST(size_t, m->in_op & FILE_OPS_MASK) < SZOF(optyp)) ? optyp[m->in_op & FILE_OPS_MASK] : '?', m->in_offset); } @@ -78,16 +78,16 @@ file_mdump(struct magic *m) if (IS_STRING(m->type)) { if (m->str_flags) { (void) fputc('/', stderr); - if (m->str_flags & STRING_COMPACT_WHITESPACE) + if (m->str_flags & STRING_COMPACT_WHITESPACE) (void) fputc(CHAR_COMPACT_WHITESPACE, stderr); - if (m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE) + if (m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE) (void) fputc(CHAR_COMPACT_OPTIONAL_WHITESPACE, stderr); - if (m->str_flags & STRING_IGNORE_LOWERCASE) + if (m->str_flags & STRING_IGNORE_LOWERCASE) (void) fputc(CHAR_IGNORE_LOWERCASE, stderr); - if (m->str_flags & STRING_IGNORE_UPPERCASE) + if (m->str_flags & STRING_IGNORE_UPPERCASE) (void) fputc(CHAR_IGNORE_UPPERCASE, stderr); - if (m->str_flags & REGEX_OFFSET_START) + if (m->str_flags & REGEX_OFFSET_START) (void) fputc(CHAR_REGEX_OFFSET_START, stderr); if (m->str_flags & STRING_TEXTTEST) (void) fputc(CHAR_TEXTTEST, stderr); @@ -112,14 +112,14 @@ file_mdump(struct magic *m) (void) fprintf(stderr, "/%u", m->str_range); } else { - if ((size_t)(m->mask_op & FILE_OPS_MASK) < SZOF(optyp)) + if (CAST(size_t, m->mask_op & FILE_OPS_MASK) < SZOF(optyp)) (void) fputc(optyp[m->mask_op & FILE_OPS_MASK], stderr); else (void) fputc('?', stderr); - + if (m->num_mask) { (void) fprintf(stderr, "%.8llx", - (unsigned long long)m->num_mask); + CAST(unsigned long long, m->num_mask)); } } (void) fprintf(stderr, ",%c", m->reln); @@ -141,7 +141,7 @@ file_mdump(struct magic *m) case FILE_LEQUAD: case FILE_QUAD: (void) fprintf(stderr, "%" INT64_T_FORMAT "d", - (unsigned long long)m->value.q); + CAST(long long, m->value.q)); break; case FILE_PSTRING: case FILE_STRING: @@ -149,7 +149,8 @@ file_mdump(struct magic *m) case FILE_BESTRING16: case FILE_LESTRING16: case FILE_SEARCH: - file_showstr(stderr, m->value.s, (size_t)m->vallen); + file_showstr(stderr, m->value.s, + CAST(size_t, m->vallen)); break; case FILE_DATE: case FILE_LEDATE: @@ -217,11 +218,11 @@ file_magwarn(struct magic_set *ms, const char *f, ...) va_list va; /* cuz we use stdout for most, stderr here */ - (void) fflush(stdout); + (void) fflush(stdout); if (ms->file) (void) fprintf(stderr, "%s, %lu: ", ms->file, - (unsigned long)ms->line); + CAST(unsigned long, ms->line)); (void) fprintf(stderr, "Warning: "); va_start(va, f); (void) vfprintf(stderr, f, va); @@ -243,7 +244,7 @@ file_fmttime(uint64_t v, int flags, char *buf) } else { // XXX: perhaps detect and print something if overflow // on 32 bit time_t? - t = (time_t)v; + t = CAST(time_t, v); } if (flags & FILE_T_LOCAL) { diff --git a/libmagic/src/main/cpp/file/readcdf.c b/libmagic/src/main/cpp/file/readcdf.c index 4b86e6f..5fa98e8 100644 --- a/libmagic/src/main/cpp/file/readcdf.c +++ b/libmagic/src/main/cpp/file/readcdf.c @@ -26,7 +26,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: readcdf.c,v 1.67 2018/04/15 19:57:07 christos Exp $") +FILE_RCSID("@(#)$File: readcdf.c,v 1.72 2019/02/20 02:35:27 christos Exp $") #endif #include @@ -204,7 +204,7 @@ cdf_file_property_info(struct magic_set *ms, const cdf_property_info_t *info, && len--; s += k) { if (*s == '\0') break; - if (isprint((unsigned char)*s)) + if (isprint(CAST(unsigned char, *s))) vbuf[j++] = *s; } if (j == sizeof(vbuf)) @@ -252,7 +252,7 @@ cdf_file_property_info(struct magic_set *ms, const cdf_property_info_t *info, return -1; } } - if (!NOTMIME(ms)) { + if (ms->flags & MAGIC_MIME_TYPE) { if (str == NULL) return 0; if (file_printf(ms, "application/%s", str) == -1) @@ -285,7 +285,7 @@ cdf_file_catalog(struct magic_set *ms, const cdf_header_t *h, return -1; } free(cat); - } else { + } else if (ms->flags & MAGIC_MIME_TYPE) { if (file_printf(ms, "application/CDFV2") == -1) return -1; } @@ -318,19 +318,19 @@ cdf_file_summary_info(struct magic_set *ms, const cdf_header_t *h, case 2: if (file_printf(ms, ", Os: Windows, Version %d.%d", si.si_os_version & 0xff, - (uint32_t)si.si_os_version >> 8) == -1) + CAST(uint32_t, si.si_os_version) >> 8) == -1) return -2; break; case 1: if (file_printf(ms, ", Os: MacOS, Version %d.%d", - (uint32_t)si.si_os_version >> 8, + CAST(uint32_t, si.si_os_version) >> 8, si.si_os_version & 0xff) == -1) return -2; break; default: if (file_printf(ms, ", Os %d, Version: %d.%d", si.si_os, si.si_os_version & 0xff, - (uint32_t)si.si_os_version >> 8) == -1) + CAST(uint32_t, si.si_os_version) >> 8) == -1) return -2; break; } @@ -353,11 +353,11 @@ cdf_file_summary_info(struct magic_set *ms, const cdf_header_t *h, #ifdef notdef private char * format_clsid(char *buf, size_t len, const uint64_t uuid[2]) { - snprintf(buf, len, "%.8" PRIx64 "-%.4" PRIx64 "-%.4" PRIx64 "-%.4" + snprintf(buf, len, "%.8" PRIx64 "-%.4" PRIx64 "-%.4" PRIx64 "-%.4" PRIx64 "-%.12" PRIx64, (uuid[0] >> 32) & (uint64_t)0x000000000ffffffffULL, (uuid[0] >> 16) & (uint64_t)0x0000000000000ffffULL, - (uuid[0] >> 0) & (uint64_t)0x0000000000000ffffULL, + (uuid[0] >> 0) & (uint64_t)0x0000000000000ffffULL, (uuid[1] >> 48) & (uint64_t)0x0000000000000ffffULL, (uuid[1] >> 0) & (uint64_t)0x0000fffffffffffffULL); return buf; @@ -406,7 +406,7 @@ cdf_check_summary_info(struct magic_set *ms, const cdf_info_t *info, for (j = 0; str == NULL && j < dir->dir_len; j++) { d = &dir->dir_tab[j]; for (k = 0; k < sizeof(name); k++) - name[k] = (char)cdf_tole2(d->d_name[k]); + name[k] = CAST(char, cdf_tole2(d->d_name[k])); str = cdf_app_to_mime(name, NOTMIME(ms) ? name2desc : name2mime); } @@ -416,7 +416,7 @@ cdf_check_summary_info(struct magic_set *ms, const cdf_info_t *info, return -1; i = 1; } - } else { + } else if (ms->flags & MAGIC_MIME_TYPE) { if (str == NULL) str = "vnd.ms-office"; if (file_printf(ms, "application/%s", str) == -1) @@ -436,7 +436,7 @@ private struct sinfo { const char *sections[5]; const int types[5]; } sectioninfo[] = { - { "Encrypted", "encrypted", + { "Encrypted", "encrypted", { "EncryptedPackage", "EncryptedSummary", NULL, NULL, NULL, @@ -448,7 +448,7 @@ private struct sinfo { }, }, - { "QuickBooks", "quickbooks", + { "QuickBooks", "quickbooks", { #if 0 "TaxForms", "PDFTaxForms", "modulesInBackup", @@ -527,7 +527,7 @@ cdf_file_dir_info(struct magic_set *ms, const cdf_dir_t *dir) if (NOTMIME(ms)) { if (file_printf(ms, "CDFV2 %s", si->name) == -1) return -1; - } else { + } else if (ms->flags & MAGIC_MIME_TYPE) { if (file_printf(ms, "application/%s", si->mime) == -1) return -1; } @@ -540,7 +540,7 @@ protected int file_trycdf(struct magic_set *ms, const struct buffer *b) { int fd = b->fd; - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; cdf_info_t info; cdf_header_t h; @@ -614,7 +614,7 @@ file_trycdf(struct magic_set *ms, const struct buffer *b) if (file_printf(ms, "Hangul (Korean) Word Processor File 5.x") == -1) return -1; - } else { + } else if (ms->flags & MAGIC_MIME_TYPE) { if (file_printf(ms, "application/x-hwp") == -1) return -1; } @@ -661,19 +661,20 @@ file_trycdf(struct magic_set *ms, const struct buffer *b) out1: free(sat.sat_tab); out0: - if (i == -1) { - if (NOTMIME(ms)) { + /* If we handled it already, return */ + if (i != -1) + return i; + /* Provide a default handler */ + if (NOTMIME(ms)) { if (file_printf(ms, "Composite Document File V2 Document") == -1) - return -1; - if (*expn) - if (file_printf(ms, ", %s", expn) == -1) return -1; - } else { + if (*expn) + if (file_printf(ms, ", %s", expn) == -1) + return -1; + } else if (ms->flags & MAGIC_MIME_TYPE) { if (file_printf(ms, "application/CDFV2") == -1) - return -1; - } - i = 1; + return -1; } - return i; + return 1; } diff --git a/libmagic/src/main/cpp/file/readelf.c b/libmagic/src/main/cpp/file/readelf.c index db0b35a..db43c6c 100644 --- a/libmagic/src/main/cpp/file/readelf.c +++ b/libmagic/src/main/cpp/file/readelf.c @@ -1,7 +1,7 @@ /* * Copyright (c) Christos Zoulas 2003. * All Rights Reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -11,7 +11,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: readelf.c,v 1.144 2018/07/08 23:37:33 christos Exp $") +FILE_RCSID("@(#)$File: readelf.c,v 1.162 2019/02/20 02:35:27 christos Exp $") #endif #ifdef BUILTIN_ELF @@ -69,7 +69,7 @@ toomany(struct magic_set *ms, const char *name, uint16_t num) { if (file_printf(ms, ", too many %s (%u)", name, num) == -1) return -1; - return 0; + return 1; } private uint16_t @@ -85,7 +85,7 @@ getu16(int swap, uint16_t value) retval.c[0] = tmpval.c[1]; retval.c[1] = tmpval.c[0]; - + return retval.ui; } else return value; @@ -106,7 +106,7 @@ getu32(int swap, uint32_t value) retval.c[1] = tmpval.c[2]; retval.c[2] = tmpval.c[1]; retval.c[3] = tmpval.c[0]; - + return retval.ui; } else return value; @@ -131,7 +131,7 @@ getu64(int swap, uint64_t value) retval.c[5] = tmpval.c[2]; retval.c[6] = tmpval.c[1]; retval.c[7] = tmpval.c[0]; - + return retval.ui; } else return value; @@ -262,7 +262,10 @@ static const size_t prpsoffsets32[] = { 84, /* SunOS 5.x (short name) */ 44, /* Linux (command line) */ - 28, /* Linux 2.0.36 (short name) */ + 28, /* Linux (short name) */ + + 48, /* Linux PowerPC (command line) */ + 32, /* Linux PowerPC (short name) */ 8, /* FreeBSD */ }; @@ -352,6 +355,11 @@ dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off, off_t ph_off = off; int ph_num = num; + if (num == 0) { + if (file_printf(ms, ", no program header") == -1) + return -1; + return 0; + } if (size != xph_sizeof) { if (file_printf(ms, ", corrupted program header size") == -1) return -1; @@ -388,9 +396,9 @@ dophn_core(struct magic_set *ms, int clazz, int swap, int fd, off_t off, } offset = 0; for (;;) { - if (offset >= (size_t)bufsize) + if (offset >= CAST(size_t, bufsize)) break; - offset = donote(ms, nbuf, offset, (size_t)bufsize, + offset = donote(ms, nbuf, offset, CAST(size_t, bufsize), clazz, swap, 4, flags, notecount, fd, ph_off, ph_num, fsize); if (offset == 0) @@ -461,25 +469,25 @@ do_note_freebsd_version(struct magic_set *ms, int swap, void *v) * Contents is __FreeBSD_version, whose relation to OS * versions is defined by a huge table in the Porter's * Handbook. This is the general scheme: - * + * * Releases: * Mmp000 (before 4.10) * Mmi0p0 (before 5.0) * Mmm0p0 - * + * * Development branches: * Mmpxxx (before 4.6) * Mmp1xx (before 4.10) * Mmi1xx (before 5.0) * M000xx (pre-M.0) * Mmm1xx - * + * * M = major version * m = minor version * i = minor version increment (491000 -> 4.10) * p = patchlevel * x = revision - * + * * The first release of FreeBSD to use ELF by default * was version 3.0. */ @@ -528,7 +536,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, int swap __attribute__((__unused__)), uint32_t namesz, uint32_t descsz, size_t noff, size_t doff, int *flags) { - if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && + if (namesz == 4 && strcmp(RCAST(char *, &nbuf[noff]), "GNU") == 0 && type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) { uint8_t desc[20]; const char *btype; @@ -556,11 +564,11 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, return 1; return 1; } - if (namesz == 4 && strcmp((char *)&nbuf[noff], "Go") == 0 && + if (namesz == 4 && strcmp(RCAST(char *, &nbuf[noff]), "Go") == 0 && type == NT_GO_BUILD_ID && descsz < 128) { - if (file_printf(ms, ", Go BuildID=%s", - (char *)&nbuf[doff]) == -1) - return 1; + if (file_printf(ms, ", Go BuildID=%.*s", + CAST(int, descsz), RCAST(char *, &nbuf[doff])) == -1) + return -1; return 1; } return 0; @@ -571,14 +579,18 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, int swap, uint32_t namesz, uint32_t descsz, size_t noff, size_t doff, int *flags) { - if (namesz == 5 && strcmp((char *)&nbuf[noff], "SuSE") == 0 && - type == NT_GNU_VERSION && descsz == 2) { - *flags |= FLAGS_DID_OS_NOTE; - file_printf(ms, ", for SuSE %d.%d", nbuf[doff], nbuf[doff + 1]); + const char *name = RCAST(const char *, &nbuf[noff]); + + if (namesz == 5 && strcmp(name, "SuSE") == 0 && + type == NT_GNU_VERSION && descsz == 2) { + *flags |= FLAGS_DID_OS_NOTE; + if (file_printf(ms, ", for SuSE %d.%d", nbuf[doff], + nbuf[doff + 1]) == -1) + return -1; return 1; } - if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 && + if (namesz == 4 && strcmp(name, "GNU") == 0 && type == NT_GNU_VERSION && descsz == 16) { uint32_t desc[4]; memcpy(desc, &nbuf[doff], sizeof(desc)); @@ -609,7 +621,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, break; default: if (file_printf(ms, "") == -1) - return 1; + return 1; } if (file_printf(ms, " %d.%d.%d", elf_getu32(swap, desc[1]), elf_getu32(swap, desc[2]), elf_getu32(swap, desc[3])) == -1) @@ -617,7 +629,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, return 1; } - if (namesz == 7 && strcmp((char *)&nbuf[noff], "NetBSD") == 0) { + if (namesz == 7 && strcmp(name, "NetBSD") == 0) { if (type == NT_NETBSD_VERSION && descsz == 4) { *flags |= FLAGS_DID_OS_NOTE; do_note_netbsd_version(ms, swap, &nbuf[doff]); @@ -625,7 +637,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, } } - if (namesz == 8 && strcmp((char *)&nbuf[noff], "FreeBSD") == 0) { + if (namesz == 8 && strcmp(name, "FreeBSD") == 0) { if (type == NT_FREEBSD_VERSION && descsz == 4) { *flags |= FLAGS_DID_OS_NOTE; do_note_freebsd_version(ms, swap, &nbuf[doff]); @@ -633,7 +645,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, } } - if (namesz == 8 && strcmp((char *)&nbuf[noff], "OpenBSD") == 0 && + if (namesz == 8 && strcmp(name, "OpenBSD") == 0 && type == NT_OPENBSD_VERSION && descsz == 4) { *flags |= FLAGS_DID_OS_NOTE; if (file_printf(ms, ", for OpenBSD") == -1) @@ -642,7 +654,7 @@ do_os_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, return 1; } - if (namesz == 10 && strcmp((char *)&nbuf[noff], "DragonFly") == 0 && + if (namesz == 10 && strcmp(name, "DragonFly") == 0 && type == NT_DRAGONFLY_VERSION && descsz == 4) { uint32_t desc; *flags |= FLAGS_DID_OS_NOTE; @@ -663,7 +675,9 @@ do_pax_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, int swap, uint32_t namesz, uint32_t descsz, size_t noff, size_t doff, int *flags) { - if (namesz == 4 && strcmp((char *)&nbuf[noff], "PaX") == 0 && + const char *name = RCAST(const char *, &nbuf[noff]); + + if (namesz == 4 && strcmp(name, "PaX") == 0 && type == NT_NETBSD_PAX && descsz == 4) { static const char *pax[] = { "+mprotect", @@ -685,7 +699,7 @@ do_pax_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, return 1; for (i = 0; i < __arraycount(pax); i++) { - if (((1 << (int)i) & desc) == 0) + if (((1 << CAST(int, i)) & desc) == 0) continue; if (file_printf(ms, "%s%s", did++ ? "," : "", pax[i]) == -1) @@ -702,6 +716,8 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, size_t noff, size_t doff, int *flags, size_t size, int clazz) { #ifdef ELFCORE + const char *name = RCAST(const char *, &nbuf[noff]); + int os_style = -1; /* * Sigh. The 2.0.36 kernel in Debian 2.1, at @@ -717,16 +733,16 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, * doesn't include the terminating null in the * name.... */ - if ((namesz == 4 && strncmp((char *)&nbuf[noff], "CORE", 4) == 0) || - (namesz == 5 && strcmp((char *)&nbuf[noff], "CORE") == 0)) { + if ((namesz == 4 && strncmp(name, "CORE", 4) == 0) || + (namesz == 5 && strcmp(name, "CORE") == 0)) { os_style = OS_STYLE_SVR4; - } + } - if ((namesz == 8 && strcmp((char *)&nbuf[noff], "FreeBSD") == 0)) { + if ((namesz == 8 && strcmp(name, "FreeBSD") == 0)) { os_style = OS_STYLE_FREEBSD; } - if ((namesz >= 11 && strncmp((char *)&nbuf[noff], "NetBSD-CORE", 11) + if ((namesz >= 11 && strncmp(name, "NetBSD-CORE", 11) == 0)) { os_style = OS_STYLE_NETBSD; } @@ -745,17 +761,17 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, char sbuf[512]; struct NetBSD_elfcore_procinfo pi; memset(&pi, 0, sizeof(pi)); - memcpy(&pi, nbuf + doff, descsz); + memcpy(&pi, nbuf + doff, MIN(descsz, sizeof(pi))); if (file_printf(ms, ", from '%.31s', pid=%u, uid=%u, " "gid=%u, nlwps=%u, lwp=%u (signal %u/code %u)", file_printable(sbuf, sizeof(sbuf), - CAST(char *, pi.cpi_name)), - elf_getu32(swap, (uint32_t)pi.cpi_pid), + RCAST(char *, pi.cpi_name), sizeof(pi.cpi_name)), + elf_getu32(swap, CAST(uint32_t, pi.cpi_pid)), elf_getu32(swap, pi.cpi_euid), elf_getu32(swap, pi.cpi_egid), elf_getu32(swap, pi.cpi_nlwps), - elf_getu32(swap, (uint32_t)pi.cpi_siglwp), + elf_getu32(swap, CAST(uint32_t, pi.cpi_siglwp)), elf_getu32(swap, pi.cpi_signo), elf_getu32(swap, pi.cpi_sigcode)) == -1) return 1; @@ -765,6 +781,28 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, } break; + case OS_STYLE_FREEBSD: + if (type == NT_PRPSINFO && *flags & FLAGS_IS_CORE) { + size_t argoff, pidoff; + + if (clazz == ELFCLASS32) + argoff = 4 + 4 + 17; + else + argoff = 4 + 4 + 8 + 17; + if (file_printf(ms, ", from '%.80s'", nbuf + doff + + argoff) == -1) + return 1; + pidoff = argoff + 81 + 2; + if (doff + pidoff + 4 <= size) { + if (file_printf(ms, ", pid=%u", + elf_getu32(swap, *RCAST(uint32_t *, (nbuf + + doff + pidoff)))) == -1) + return 1; + } + *flags |= FLAGS_DID_CORE; + } + break; + default: if (type == NT_PRPSINFO && *flags & FLAGS_IS_CORE) { size_t i, j; @@ -847,8 +885,8 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, i = k; } - cname = (unsigned char *) - &nbuf[doff + prpsoffsets(i)]; + cname = CAST(unsigned char *, + &nbuf[doff + prpsoffsets(i)]); for (cp = cname; cp < nbuf + size && *cp && isprint(*cp); cp++) continue; @@ -859,7 +897,7 @@ do_core_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, while (cp > cname && isspace(cp[-1])) cp--; if (file_printf(ms, ", from '%.*s'", - (int)(cp - cname), cname) == -1) + CAST(int, cp - cname), cname) == -1) return 1; *flags |= FLAGS_DID_CORE; return 1; @@ -886,7 +924,8 @@ get_offset_from_virtaddr(struct magic_set *ms, int swap, int clazz, int fd, * virtual address in which the "virtaddr" belongs to. */ for ( ; num; num--) { - if (pread(fd, xph_addr, xph_sizeof, off) < (ssize_t)xph_sizeof) { + if (pread(fd, xph_addr, xph_sizeof, off) < + CAST(ssize_t, xph_sizeof)) { file_badread(ms); return -1; } @@ -916,7 +955,8 @@ get_string_on_virtaddr(struct magic_set *ms, offset = get_offset_from_virtaddr(ms, swap, clazz, fd, ph_off, ph_num, fsize, virtaddr); - if ((buflen = pread(fd, buf, CAST(size_t, buflen), offset)) <= 0) { + if (offset < 0 || + (buflen = pread(fd, buf, CAST(size_t, buflen), offset)) <= 0) { file_badread(ms); return 0; } @@ -925,7 +965,7 @@ get_string_on_virtaddr(struct magic_set *ms, /* We expect only printable characters, so return if buffer contains * non-printable character before the '\0' or just '\0'. */ - for (bptr = buf; *bptr && isprint((unsigned char)*bptr); bptr++) + for (bptr = buf; *bptr && isprint(CAST(unsigned char, *bptr)); bptr++) continue; if (*bptr != '\0') return 0; @@ -1027,12 +1067,12 @@ do_auxv_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type, if (buflen == 0) continue; - + if (file_printf(ms, ", %s: '%s'", tag, buf) == -1) return 0; } else { - if (file_printf(ms, ", %s: %d", tag, (int) xauxv_val) - == -1) + if (file_printf(ms, ", %s: %d", tag, + CAST(int, xauxv_val)) == -1) return 0; } } @@ -1062,7 +1102,7 @@ dodynamic(struct magic_set *ms, void *vbuf, size_t offset, size_t size, switch (xdh_tag) { case DT_FLAGS_1: - if (xdh_val == DF_1_PIE) + if (xdh_val & DF_1_PIE) ms->mode |= 0111; else ms->mode &= ~0111; @@ -1110,14 +1150,16 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, } if (namesz & 0x80000000) { - file_printf(ms, ", bad note name size %#lx", - CAST(unsigned long, namesz)); + if (file_printf(ms, ", bad note name size %#lx", + CAST(unsigned long, namesz)) == -1) + return 0; return 0; } if (descsz & 0x80000000) { - file_printf(ms, ", bad note description size %#lx", - CAST(unsigned long, descsz)); + if (file_printf(ms, ", bad note description size %#lx", + CAST(unsigned long, descsz)) == -1) + return 0; return 0; } @@ -1151,7 +1193,7 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, namesz, descsz, noff, doff, flags)) return offset; } - + if ((*flags & FLAGS_DID_NETBSD_PAX) == 0) { if (do_pax_note(ms, nbuf, xnh_type, swap, namesz, descsz, noff, doff, flags)) @@ -1171,7 +1213,7 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, return offset; } - if (namesz == 7 && strcmp(CAST(char *, &nbuf[noff]), "NetBSD") == 0) { + if (namesz == 7 && strcmp(RCAST(char *, &nbuf[noff]), "NetBSD") == 0) { int descw, flag; const char *str, *tag; if (descsz > 100) @@ -1202,7 +1244,7 @@ donote(struct magic_set *ms, void *vbuf, size_t offset, size_t size, if (*flags & flag) return offset; - str = CAST(const char *, &nbuf[doff]); + str = RCAST(const char *, &nbuf[doff]); descw = CAST(int, descsz); *flags |= flag; file_printf(ms, ", %s: %.*s", tag, descw, str); @@ -1278,6 +1320,11 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, char name[50]; ssize_t namesize; + if (num == 0) { + if (file_printf(ms, ", no section header") == -1) + return -1; + return 0; + } if (size != xsh_sizeof) { if (file_printf(ms, ", corrupted section header size") == -1) return -1; @@ -1343,7 +1390,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, CAST(uintmax_t, xsh_size), CAST(uintmax_t, fsize)) == -1) return -1; - return 0; + return 0; } if ((nbuf = malloc(xsh_size)) == NULL) { file_error(ms, errno, "Cannot allocate memory" @@ -1428,7 +1475,7 @@ doshn(struct magic_set *ms, int clazz, int swap, int fd, off_t off, int num, return -1; break; } - // gnu attributes + // gnu attributes #endif break; } @@ -1548,7 +1595,12 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, char interp[BUFSIZ]; ssize_t bufsize; size_t offset, align, len; - + + if (num == 0) { + if (file_printf(ms, ", no program header") == -1) + return -1; + return 0; + } if (size != xph_sizeof) { if (file_printf(ms, ", corrupted program header size") == -1) return -1; @@ -1558,7 +1610,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, interp[0] = '\0'; for ( ; num; num--) { int doread; - if (pread(fd, xph_addr, xph_sizeof, off) < + if (pread(fd, xph_addr, xph_sizeof, off) < CAST(ssize_t, xph_sizeof)) { file_badread(ms); return -1; @@ -1579,7 +1631,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, continue; if (((align = xph_align) & 0x80000000UL) != 0 || align < 4) { - if (file_printf(ms, + if (file_printf(ms, ", invalid note alignment %#lx", CAST(unsigned long, align)) == -1) return -1; @@ -1613,8 +1665,10 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, switch (xph_type) { case PT_DYNAMIC: offset = 0; + // Let DF_1 determine if we are PIE or not. + ms->mode &= ~0111; for (;;) { - if (offset >= (size_t)bufsize) + if (offset >= CAST(size_t, bufsize)) break; offset = dodynamic(ms, nbuf, offset, CAST(size_t, bufsize), clazz, swap); @@ -1626,7 +1680,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, case PT_INTERP: if (bufsize && nbuf[0]) { nbuf[bufsize - 1] = '\0'; - memcpy(interp, nbuf, bufsize); + memcpy(interp, nbuf, CAST(size_t, bufsize)); } else strlcpy(interp, "*empty*", sizeof(interp)); break; @@ -1637,7 +1691,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, */ offset = 0; for (;;) { - if (offset >= (size_t)bufsize) + if (offset >= CAST(size_t, bufsize)) break; offset = donote(ms, nbuf, offset, CAST(size_t, bufsize), clazz, swap, align, @@ -1655,7 +1709,8 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off, return -1; if (interp[0]) if (file_printf(ms, ", interpreter %s", - file_printable(ibuf, sizeof(ibuf), interp)) == -1) + file_printable(ibuf, sizeof(ibuf), interp, sizeof(interp))) + == -1) return -1; return 0; } @@ -1665,7 +1720,7 @@ protected int file_tryelf(struct magic_set *ms, const struct buffer *b) { int fd = b->fd; - const unsigned char *buf = b->fbuf; + const unsigned char *buf = CAST(const unsigned char *, b->fbuf); size_t nbytes = b->flen; union { int32_t l; @@ -1687,7 +1742,8 @@ file_tryelf(struct magic_set *ms, const struct buffer *b) * file locations and thus file(1) cannot determine it from easily. * Instead we traverse thru all section headers until a symbol table * one is found or else the binary is stripped. - * Return immediately if it's not ELF (so we avoid pipe2file unless needed). + * Return immediately if it's not ELF (so we avoid pipe2file unless + * needed). */ if (buf[EI_MAG0] != ELFMAG0 || (buf[EI_MAG1] != ELFMAG1 && buf[EI_MAG1] != OLFMAG1) @@ -1701,7 +1757,7 @@ file_tryelf(struct magic_set *ms, const struct buffer *b) && (errno == ESPIPE)) fd = file_pipe2file(ms, fd, buf, nbytes); - if (fstat(fd, &st) == -1) { + if (fd == -1 || fstat(fd, &st) == -1) { file_badread(ms); return -1; } diff --git a/libmagic/src/main/cpp/file/readelf.h b/libmagic/src/main/cpp/file/readelf.h index 6ae63f2..809d3f7 100644 --- a/libmagic/src/main/cpp/file/readelf.h +++ b/libmagic/src/main/cpp/file/readelf.h @@ -1,7 +1,7 @@ /* * Copyright (c) Christos Zoulas 2003. * All Rights Reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -11,7 +11,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -304,7 +304,7 @@ typedef struct { #define GNU_OS_KNETBSD 4 /* - * GNU Hardware capability information + * GNU Hardware capability information * word[0]: Number of entries * word[1]: Bitmask of enabled entries * Followed by a byte id, and a NUL terminated string per entry @@ -313,7 +313,7 @@ typedef struct { /* * GNU Build ID generated by ld - * 160 bit SHA1 [default] + * 160 bit SHA1 [default] * 128 bit md5 or uuid */ #define NT_GNU_BUILD_ID 3 diff --git a/libmagic/src/main/cpp/file/seccomp.c b/libmagic/src/main/cpp/file/seccomp.c index a5abb4a..e7829ff 100644 --- a/libmagic/src/main/cpp/file/seccomp.c +++ b/libmagic/src/main/cpp/file/seccomp.c @@ -27,7 +27,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: seccomp.c,v 1.6 2018/06/26 20:29:29 christos Exp $") +FILE_RCSID("@(#)$File: seccomp.c,v 1.7 2018/09/09 20:33:28 christos Exp $") #endif /* lint */ #if HAVE_LIBSECCOMP @@ -126,14 +126,14 @@ enable_sandbox_basic(void) DENY_RULE (socket); // ... - + // applying filter... if (seccomp_load (ctx) == -1) goto out; // free ctx after the filter has been loaded into the kernel seccomp_release(ctx); return 0; - + out: seccomp_release(ctx); return -1; @@ -151,7 +151,7 @@ enable_sandbox_full(void) if (prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) == -1) return -1; - + // initialize the filter ctx = seccomp_init(SCMP_ACT_KILL); if (ctx == NULL) @@ -163,10 +163,10 @@ enable_sandbox_full(void) ALLOW_RULE(dup2); ALLOW_RULE(exit); ALLOW_RULE(exit_group); - ALLOW_RULE(fcntl); - ALLOW_RULE(fcntl64); + ALLOW_RULE(fcntl); + ALLOW_RULE(fcntl64); ALLOW_RULE(fstat); - ALLOW_RULE(fstat64); + ALLOW_RULE(fstat64); ALLOW_RULE(getdents); #ifdef __NR_getdents64 ALLOW_RULE(getdents64); diff --git a/libmagic/src/main/cpp/file/softmagic.c b/libmagic/src/main/cpp/file/softmagic.c index 9a5db9d..cfc1781 100644 --- a/libmagic/src/main/cpp/file/softmagic.c +++ b/libmagic/src/main/cpp/file/softmagic.c @@ -32,7 +32,7 @@ #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: softmagic.c,v 1.262 2018/06/22 20:39:50 christos Exp $") +FILE_RCSID("@(#)$File: softmagic.c,v 1.278 2019/02/20 02:35:27 christos Exp $") #endif /* lint */ #include "magic.h" @@ -45,11 +45,11 @@ FILE_RCSID("@(#)$File: softmagic.c,v 1.262 2018/06/22 20:39:50 christos Exp $") private int match(struct magic_set *, struct magic *, uint32_t, const struct buffer *, size_t, int, int, int, uint16_t *, - uint16_t *, int *, int *, int *); + uint16_t *, int *, int *, int *, int *); private int mget(struct magic_set *, struct magic *, const struct buffer *, - const unsigned char *, size_t, + const unsigned char *, size_t, size_t, unsigned int, int, int, int, uint16_t *, - uint16_t *, int *, int *, int *); + uint16_t *, int *, int *, int *, int *); private int msetoffset(struct magic_set *, struct magic *, struct buffer *, const struct buffer *, size_t, unsigned int); private int magiccheck(struct magic_set *, struct magic *); @@ -67,24 +67,46 @@ private int cvt_16(union VALUETYPE *, const struct magic *); private int cvt_32(union VALUETYPE *, const struct magic *); private int cvt_64(union VALUETYPE *, const struct magic *); -#define OFFSET_OOB(n, o, i) ((n) < (uint32_t)(o) || (i) > ((n) - (o))) -#define BE64(p) (((uint64_t)(p)->hq[0]<<56)|((uint64_t)(p)->hq[1]<<48)| \ - ((uint64_t)(p)->hq[2]<<40)|((uint64_t)(p)->hq[3]<<32)| \ - ((uint64_t)(p)->hq[4]<<24)|((uint64_t)(p)->hq[5]<<16)| \ - ((uint64_t)(p)->hq[6]<<8)|((uint64_t)(p)->hq[7])) -#define LE64(p) (((uint64_t)(p)->hq[7]<<56)|((uint64_t)(p)->hq[6]<<48)| \ - ((uint64_t)(p)->hq[5]<<40)|((uint64_t)(p)->hq[4]<<32)| \ - ((uint64_t)(p)->hq[3]<<24)|((uint64_t)(p)->hq[2]<<16)| \ - ((uint64_t)(p)->hq[1]<<8)|((uint64_t)(p)->hq[0])) -#define LE32(p) (((uint32_t)(p)->hl[3]<<24)|((uint32_t)(p)->hl[2]<<16)| \ - ((uint32_t)(p)->hl[1]<<8)|((uint32_t)(p)->hl[0])) -#define BE32(p) (((uint32_t)(p)->hl[0]<<24)|((uint32_t)(p)->hl[1]<<16)| \ - ((uint32_t)(p)->hl[2]<<8)|((uint32_t)(p)->hl[3])) -#define ME32(p) (((uint32_t)(p)->hl[1]<<24)|((uint32_t)(p)->hl[0]<<16)| \ - ((uint32_t)(p)->hl[3]<<8)|((uint32_t)(p)->hl[2])) -#define BE16(p) (((uint16_t)(p)->hs[0]<<8)|((uint16_t)(p)->hs[1])) -#define LE16(p) (((uint16_t)(p)->hs[1]<<8)|((uint16_t)(p)->hs[0])) -#define SEXT(s,v,p) ((s)?(intmax_t)(int##v##_t)(p):(intmax_t)(uint##v##_t)(p)) +#define OFFSET_OOB(n, o, i) ((n) < CAST(uint32_t, (o)) || (i) > ((n) - (o))) +#define BE64(p) ( \ + (CAST(uint64_t, (p)->hq[0])<<56)| \ + (CAST(uint64_t, (p)->hq[1])<<48)| \ + (CAST(uint64_t, (p)->hq[2])<<40)| \ + (CAST(uint64_t, (p)->hq[3])<<32)| \ + (CAST(uint64_t, (p)->hq[4])<<24)| \ + (CAST(uint64_t, (p)->hq[5])<<16)| \ + (CAST(uint64_t, (p)->hq[6])<<8)| \ + (CAST(uint64_t, (p)->hq[7]))) +#define LE64(p) ( \ + (CAST(uint64_t, (p)->hq[7])<<56)| \ + (CAST(uint64_t, (p)->hq[6])<<48)| \ + (CAST(uint64_t, (p)->hq[5])<<40)| \ + (CAST(uint64_t, (p)->hq[4])<<32)| \ + (CAST(uint64_t, (p)->hq[3])<<24)| \ + (CAST(uint64_t, (p)->hq[2])<<16)| \ + (CAST(uint64_t, (p)->hq[1])<<8)| \ + (CAST(uint64_t, (p)->hq[0]))) +#define LE32(p) ( \ + (CAST(uint32_t, (p)->hl[3])<<24)| \ + (CAST(uint32_t, (p)->hl[2])<<16)| \ + (CAST(uint32_t, (p)->hl[1])<<8)| \ + (CAST(uint32_t, (p)->hl[0]))) +#define BE32(p) ( \ + (CAST(uint32_t, (p)->hl[0])<<24)| \ + (CAST(uint32_t, (p)->hl[1])<<16)| \ + (CAST(uint32_t, (p)->hl[2])<<8)| \ + (CAST(uint32_t, (p)->hl[3]))) +#define ME32(p) ( \ + (CAST(uint32_t, (p)->hl[1])<<24)| \ + (CAST(uint32_t, (p)->hl[0])<<16)| \ + (CAST(uint32_t, (p)->hl[3])<<8)| \ + (CAST(uint32_t, (p)->hl[2]))) + +#define BE16(p) ((CAST(uint16_t, (p)->hs[0])<<8)|(CAST(uint16_t, (p)->hs[1]))) +#define LE16(p) ((CAST(uint16_t, (p)->hs[1])<<8)|(CAST(uint16_t, (p)->hs[0]))) +#define SEXT(s,v,p) ((s) ? \ + CAST(intmax_t, CAST(int##v##_t, p)) : \ + CAST(intmax_t, CAST(uint##v##_t, p))) /* * softmagic - lookup one file in parsed, in-memory copy of database @@ -111,7 +133,7 @@ file_softmagic(struct magic_set *ms, const struct buffer *b, for (ml = ms->mlist[0]->next; ml != ms->mlist[0]; ml = ml->next) if ((rv = match(ms, ml->magic, ml->nmagic, b, 0, mode, text, 0, indir_count, name_count, - &printed_something, &need_separator, NULL)) != 0) + &printed_something, &need_separator, NULL, NULL)) != 0) return rv; return 0; @@ -167,17 +189,25 @@ private int match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, const struct buffer *b, size_t offset, int mode, int text, int flip, uint16_t *indir_count, uint16_t *name_count, - int *printed_something, int *need_separator, int *returnval) + int *printed_something, int *need_separator, int *returnval, + int *found_match) { uint32_t magindex = 0; unsigned int cont_level = 0; - int returnvalv = 0, e; /* if a match is found it is set to 1*/ + int found_matchv = 0; /* if a match is found it is set to 1*/ + int returnvalv = 0, e; int firstline = 1; /* a flag to print X\n X\n- X */ struct buffer bb; int print = (ms->flags & MAGIC_NODESC) == 0; + /* + * returnval can be 0 if a match is found, but there was no + * annotation to be printed. + */ if (returnval == NULL) returnval = &returnvalv; + if (found_match == NULL) + found_match = &found_matchv; if (file_check_mem(ms, cont_level) == -1) return -1; @@ -206,17 +236,21 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, ms->line = m->lineno; /* if main entry matches, print it... */ - switch (mget(ms, m, b, bb.fbuf, bb.flen, offset, cont_level, + switch (mget(ms, m, b, CAST(const unsigned char *, bb.fbuf), + bb.flen, offset, cont_level, mode, text, flip, indir_count, name_count, - printed_something, need_separator, returnval)) { + printed_something, need_separator, returnval, found_match)) + { case -1: return -1; case 0: flush = m->reln != '!'; break; default: - if (m->type == FILE_INDIRECT) + if (m->type == FILE_INDIRECT) { + *found_match = 1; *returnval = 1; + } switch (magiccheck(ms, m)) { case -1: @@ -238,7 +272,11 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, goto flush; } - if ((e = handle_annotation(ms, m, firstline)) != 0) { + if (*m->desc) + *found_match = 1; + + if ((e = handle_annotation(ms, m, firstline)) != 0) + { *need_separator = 1; *printed_something = 1; *returnval = 1; @@ -249,16 +287,16 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, * If we are going to print something, we'll need to print * a blank before we print something else. */ - if (*m->desc) { + if (print && *m->desc) { *need_separator = 1; *printed_something = 1; + *returnval = 1; if (print_sep(ms, firstline) == -1) return -1; + if (mprint(ms, m) == -1) + return -1; } - if (print && mprint(ms, m) == -1) - return -1; - switch (moffset(ms, m, &bb, &ms->c.li[cont_level].off)) { case -1: case 0: @@ -299,10 +337,11 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, continue; } #endif - switch (mget(ms, m, b, bb.fbuf, bb.flen, offset, + switch (mget(ms, m, b, CAST(const unsigned char *, + bb.fbuf), bb.flen, offset, cont_level, mode, text, flip, indir_count, name_count, printed_something, need_separator, - returnval)) { + returnval, found_match)) { case -1: return -1; case 0: @@ -311,8 +350,10 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, flush = 1; break; default: - if (m->type == FILE_INDIRECT) + if (m->type == FILE_INDIRECT) { + *found_match = 1; *returnval = 1; + } flush = 0; break; } @@ -337,6 +378,9 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, } else ms->c.li[cont_level].got_match = 1; + if (*m->desc) + *found_match = 1; + if ((e = handle_annotation(ms, m, firstline)) != 0) { *need_separator = 1; @@ -344,35 +388,36 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, *returnval = 1; return e; } - /* - * If we are going to print something, - * make sure that we have a separator first. - */ - if (*m->desc) { + if (print && *m->desc) { + /* + * This continuation matched. Print + * its message, with a blank before it + * if the previous item printed and + * this item isn't empty. + */ + /* + * If we are going to print something, + * make sure that we have a separator + * first. + */ if (!*printed_something) { *printed_something = 1; if (print_sep(ms, firstline) == -1) return -1; } - } - /* - * This continuation matched. Print - * its message, with a blank before it - * if the previous item printed and - * this item isn't empty. - */ - /* space if previous printed */ - if (*need_separator - && ((m->flag & NOSPACE) == 0) - && *m->desc) { - if (print && - file_printf(ms, " ") == -1) - return -1; + /* space if previous printed */ + if (*need_separator + && (m->flag & NOSPACE) == 0) { + if (file_printf(ms, " ") == -1) + return -1; + } + *returnval = 1; *need_separator = 0; + if (mprint(ms, m) == -1) + return -1; + *need_separator = 1; } - if (print && mprint(ms, m) == -1) - return -1; switch (moffset(ms, m, &bb, &ms->c.li[cont_level].off)) { @@ -385,9 +430,6 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, break; } - if (*m->desc) - *need_separator = 1; - /* * If we see any continuations * at a higher level, @@ -400,10 +442,8 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, } if (*printed_something) { firstline = 0; - if (print) - *returnval = 1; } - if ((ms->flags & MAGIC_CONTINUE) == 0 && *printed_something) { + if ((ms->flags & MAGIC_CONTINUE) == 0 && *found_match) { return *returnval; /* don't keep searching */ } cont_level = 0; @@ -460,7 +500,7 @@ varexpand(struct magic_set *ms, char *buf, size_t len, const char *str) size_t l; for (sptr = str; (ptr = strstr(sptr, "${")) != NULL;) { - l = (size_t)(ptr - sptr); + l = CAST(size_t, ptr - sptr); if (l >= len) return -1; memcpy(buf, sptr, l); @@ -526,19 +566,19 @@ mprint(struct magic_set *ms, struct magic *m) switch (m->type) { case FILE_BYTE: - v = file_signextend(ms, m, (uint64_t)p->b); + v = file_signextend(ms, m, CAST(uint64_t, p->b)); switch (check_fmt(ms, desc)) { case -1: return -1; case 1: (void)snprintf(buf, sizeof(buf), "%d", - (unsigned char)v); + CAST(unsigned char, v)); if (file_printf(ms, F(ms, desc, "%s"), buf) == -1) return -1; break; default: if (file_printf(ms, F(ms, desc, "%d"), - (unsigned char) v) == -1) + CAST(unsigned char, v)) == -1) return -1; break; } @@ -548,19 +588,19 @@ mprint(struct magic_set *ms, struct magic *m) case FILE_SHORT: case FILE_BESHORT: case FILE_LESHORT: - v = file_signextend(ms, m, (uint64_t)p->h); + v = file_signextend(ms, m, CAST(uint64_t, p->h)); switch (check_fmt(ms, desc)) { case -1: return -1; case 1: (void)snprintf(buf, sizeof(buf), "%u", - (unsigned short)v); + CAST(unsigned short, v)); if (file_printf(ms, F(ms, desc, "%s"), buf) == -1) return -1; break; default: if (file_printf(ms, F(ms, desc, "%u"), - (unsigned short) v) == -1) + CAST(unsigned short, v)) == -1) return -1; break; } @@ -571,17 +611,19 @@ mprint(struct magic_set *ms, struct magic *m) case FILE_BELONG: case FILE_LELONG: case FILE_MELONG: - v = file_signextend(ms, m, (uint64_t)p->l); + v = file_signextend(ms, m, CAST(uint64_t, p->l)); switch (check_fmt(ms, desc)) { case -1: return -1; case 1: - (void)snprintf(buf, sizeof(buf), "%u", (uint32_t) v); + (void)snprintf(buf, sizeof(buf), "%u", + CAST(uint32_t, v)); if (file_printf(ms, F(ms, desc, "%s"), buf) == -1) return -1; break; default: - if (file_printf(ms, F(ms, desc, "%u"), (uint32_t) v) == -1) + if (file_printf(ms, F(ms, desc, "%u"), + CAST(uint32_t, v)) == -1) return -1; break; } @@ -597,13 +639,13 @@ mprint(struct magic_set *ms, struct magic *m) return -1; case 1: (void)snprintf(buf, sizeof(buf), "%" INT64_T_FORMAT "u", - (unsigned long long)v); + CAST(unsigned long long, v)); if (file_printf(ms, F(ms, desc, "%s"), buf) == -1) return -1; break; default: if (file_printf(ms, F(ms, desc, "%" INT64_T_FORMAT "u"), - (unsigned long long) v) == -1) + CAST(unsigned long long, v)) == -1) return -1; break; } @@ -615,9 +657,9 @@ mprint(struct magic_set *ms, struct magic *m) case FILE_BESTRING16: case FILE_LESTRING16: if (m->reln == '=' || m->reln == '!') { - if (file_printf(ms, F(ms, desc, "%s"), - file_printable(sbuf, sizeof(sbuf), m->value.s)) - == -1) + if (file_printf(ms, F(ms, desc, "%s"), + file_printable(sbuf, sizeof(sbuf), m->value.s, + sizeof(m->value.s))) == -1) return -1; t = ms->offset + m->vallen; } @@ -632,19 +674,20 @@ mprint(struct magic_set *ms, struct magic *m) if (m->str_flags & STRING_TRIM) { char *last; - while (isspace((unsigned char)*str)) + while (isspace(CAST(unsigned char, *str))) str++; last = str; while (*last) last++; --last; - while (isspace((unsigned char)*last)) + while (isspace(CAST(unsigned char, *last))) last--; *++last = '\0'; } if (file_printf(ms, F(ms, desc, "%s"), - file_printable(sbuf, sizeof(sbuf), str)) == -1) + file_printable(sbuf, sizeof(sbuf), str, + sizeof(p->s) - (str - p->s))) == -1) return -1; if (m->type == FILE_PSTRING) @@ -744,13 +787,14 @@ mprint(struct magic_set *ms, struct magic *m) char *cp; int rval; - cp = strndup((const char *)ms->search.s, ms->search.rm_len); + cp = strndup(RCAST(const char *, ms->search.s), + ms->search.rm_len); if (cp == NULL) { file_oomem(ms, ms->search.rm_len); return -1; } rval = file_printf(ms, F(ms, desc, "%s"), - file_printable(sbuf, sizeof(sbuf), cp)); + file_printable(sbuf, sizeof(sbuf), cp, ms->search.rm_len)); free(cp); if (rval == -1) @@ -776,8 +820,9 @@ mprint(struct magic_set *ms, struct magic *m) t = ms->offset; break; case FILE_DER: - if (file_printf(ms, F(ms, desc, "%s"), - file_printable(sbuf, sizeof(sbuf), ms->ms_value.s)) == -1) + if (file_printf(ms, F(ms, desc, "%s"), + file_printable(sbuf, sizeof(sbuf), ms->ms_value.s, + sizeof(ms->ms_value.s))) == -1) return -1; t = ms->offset; break; @@ -785,7 +830,7 @@ mprint(struct magic_set *ms, struct magic *m) file_magerror(ms, "invalid m->type (%d) in mprint()", m->type); return -1; } - return (int32_t)t; + return CAST(int32_t, t); } private int @@ -832,7 +877,8 @@ moffset(struct magic_set *ms, struct magic *m, const struct buffer *b, p->s[strcspn(p->s, "\r\n")] = '\0'; o = CAST(uint32_t, (ms->offset + strlen(p->s))); if (m->type == FILE_PSTRING) - o += (uint32_t)file_pstring_length_size(m); + o += CAST(uint32_t, + file_pstring_length_size(m)); } break; @@ -898,11 +944,11 @@ moffset(struct magic_set *ms, struct magic *m, const struct buffer *b, case FILE_DER: { o = der_offs(ms, m, nbytes); - if (o == -1 || (size_t)o > nbytes) { + if (o == -1 || CAST(size_t, o) > nbytes) { if ((ms->flags & MAGIC_DEBUG) != 0) { (void)fprintf(stderr, - "Bad DER offset %d nbytes=%zu", - o, nbytes); + "Bad DER offset %d nbytes=%" + SIZE_T_FORMAT "u", o, nbytes); } *op = 0; return 0; @@ -915,10 +961,10 @@ moffset(struct magic_set *ms, struct magic *m, const struct buffer *b, break; } - if ((size_t)o > nbytes) { + if (CAST(size_t, o) > nbytes) { #if 0 - file_error(ms, 0, "Offset out of range %zu > %zu", - (size_t)o, nbytes); + file_error(ms, 0, "Offset out of range %" SIZE_T_FORMAT + "u > %" SIZE_T_FORMAT "u", (size_t)o, nbytes); #endif return -1; } @@ -988,36 +1034,36 @@ cvt_flip(int type, int flip) return type; } } -#define DO_CVT(fld, cast) \ +#define DO_CVT(fld, type) \ if (m->num_mask) \ switch (m->mask_op & FILE_OPS_MASK) { \ case FILE_OPAND: \ - p->fld &= cast m->num_mask; \ + p->fld &= CAST(type, m->num_mask); \ break; \ case FILE_OPOR: \ - p->fld |= cast m->num_mask; \ + p->fld |= CAST(type, m->num_mask); \ break; \ case FILE_OPXOR: \ - p->fld ^= cast m->num_mask; \ + p->fld ^= CAST(type, m->num_mask); \ break; \ case FILE_OPADD: \ - p->fld += cast m->num_mask; \ + p->fld += CAST(type, m->num_mask); \ break; \ case FILE_OPMINUS: \ - p->fld -= cast m->num_mask; \ + p->fld -= CAST(type, m->num_mask); \ break; \ case FILE_OPMULTIPLY: \ - p->fld *= cast m->num_mask; \ + p->fld *= CAST(type, m->num_mask); \ break; \ case FILE_OPDIVIDE: \ - if (cast m->num_mask == 0) \ + if (CAST(type, m->num_mask) == 0) \ return -1; \ - p->fld /= cast m->num_mask; \ + p->fld /= CAST(type, m->num_mask); \ break; \ case FILE_OPMODULO: \ - if (cast m->num_mask == 0) \ + if (CAST(type, m->num_mask) == 0) \ return -1; \ - p->fld %= cast m->num_mask; \ + p->fld %= CAST(type, m->num_mask); \ break; \ } \ if (m->mask_op & FILE_OPINVERSE) \ @@ -1026,61 +1072,61 @@ cvt_flip(int type, int flip) private int cvt_8(union VALUETYPE *p, const struct magic *m) { - DO_CVT(b, (uint8_t)); + DO_CVT(b, uint8_t); return 0; } private int cvt_16(union VALUETYPE *p, const struct magic *m) { - DO_CVT(h, (uint16_t)); + DO_CVT(h, uint16_t); return 0; } private int cvt_32(union VALUETYPE *p, const struct magic *m) { - DO_CVT(l, (uint32_t)); + DO_CVT(l, uint32_t); return 0; } private int cvt_64(union VALUETYPE *p, const struct magic *m) { - DO_CVT(q, (uint64_t)); + DO_CVT(q, uint64_t); return 0; } -#define DO_CVT2(fld, cast) \ +#define DO_CVT2(fld, type) \ if (m->num_mask) \ switch (m->mask_op & FILE_OPS_MASK) { \ case FILE_OPADD: \ - p->fld += cast m->num_mask; \ + p->fld += CAST(type, m->num_mask); \ break; \ case FILE_OPMINUS: \ - p->fld -= cast m->num_mask; \ + p->fld -= CAST(type, m->num_mask); \ break; \ case FILE_OPMULTIPLY: \ - p->fld *= cast m->num_mask; \ + p->fld *= CAST(type, m->num_mask); \ break; \ case FILE_OPDIVIDE: \ - if (cast m->num_mask == 0) \ + if (CAST(type, m->num_mask) == 0) \ return -1; \ - p->fld /= cast m->num_mask; \ + p->fld /= CAST(type, m->num_mask); \ break; \ } \ private int cvt_float(union VALUETYPE *p, const struct magic *m) { - DO_CVT2(f, (float)); + DO_CVT2(f, float); return 0; } private int cvt_double(union VALUETYPE *p, const struct magic *m) { - DO_CVT2(d, (double)); + DO_CVT2(d, double); return 0; } @@ -1136,7 +1182,7 @@ mconvert(struct magic_set *ms, struct magic *m, int flip) * string by p->s, so we need to deduct sz. * Because we can use one of the bytes of the length * after we shifted as NUL termination. - */ + */ len = sz; } while (len--) @@ -1145,14 +1191,14 @@ mconvert(struct magic_set *ms, struct magic *m, int flip) return 1; } case FILE_BESHORT: - p->h = (short)BE16(p); + p->h = CAST(short, BE16(p)); if (cvt_16(p, m) == -1) goto out; return 1; case FILE_BELONG: case FILE_BEDATE: case FILE_BELDATE: - p->l = (int32_t)BE32(p); + p->l = CAST(int32_t, BE32(p)); if (cvt_32(p, m) == -1) goto out; return 1; @@ -1160,19 +1206,19 @@ mconvert(struct magic_set *ms, struct magic *m, int flip) case FILE_BEQDATE: case FILE_BEQLDATE: case FILE_BEQWDATE: - p->q = (uint64_t)BE64(p); + p->q = CAST(uint64_t, BE64(p)); if (cvt_64(p, m) == -1) goto out; return 1; case FILE_LESHORT: - p->h = (short)LE16(p); + p->h = CAST(short, LE16(p)); if (cvt_16(p, m) == -1) goto out; return 1; case FILE_LELONG: case FILE_LEDATE: case FILE_LELDATE: - p->l = (int32_t)LE32(p); + p->l = CAST(int32_t, LE32(p)); if (cvt_32(p, m) == -1) goto out; return 1; @@ -1180,14 +1226,14 @@ mconvert(struct magic_set *ms, struct magic *m, int flip) case FILE_LEQDATE: case FILE_LEQLDATE: case FILE_LEQWDATE: - p->q = (uint64_t)LE64(p); + p->q = CAST(uint64_t, LE64(p)); if (cvt_64(p, m) == -1) goto out; return 1; case FILE_MELONG: case FILE_MEDATE: case FILE_MELDATE: - p->l = (int32_t)ME32(p); + p->l = CAST(int32_t, ME32(p)); if (cvt_32(p, m) == -1) goto out; return 1; @@ -1210,7 +1256,7 @@ mconvert(struct magic_set *ms, struct magic *m, int flip) goto out; return 1; case FILE_BEDOUBLE: - p->q = BE64(p); + p->q = BE64(p); if (cvt_double(p, m) == -1) goto out; return 1; @@ -1301,9 +1347,11 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, || (b = CAST(const char *, memchr(c, '\r', CAST(size_t, (end - c)))))); lines--, b++) { - last = b; if (b < end - 1 && b[0] == '\r' && b[1] == '\n') b++; + if (b < end - 1 && b[0] == '\n') + b++; + last = b; } if (lines) last = end; @@ -1366,7 +1414,7 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, * might even cause problems */ if (nbytes < sizeof(*p)) - (void)memset(((char *)(void *)p) + nbytes, '\0', + (void)memset(RCAST(char *, RCAST(void *, p)) + nbytes, '\0', sizeof(*p) - nbytes); return 0; } @@ -1407,7 +1455,7 @@ do_ops(struct magic *m, intmax_t lhs, intmax_t off) if (m->in_op & FILE_OPINVERSE) offset = ~offset; - return (uint32_t)offset; + return CAST(uint32_t, offset); } private int @@ -1428,14 +1476,14 @@ msetoffset(struct magic_set *ms, struct magic *m, struct buffer *bb, return -1; if (o != 0) { // Not yet! - file_magerror(ms, "non zero offset %zu at" - " level %u", o, cont_level); + file_magerror(ms, "non zero offset %" SIZE_T_FORMAT + "u at level %u", o, cont_level); return -1; } - if ((size_t)-m->offset > b->elen) + if (CAST(size_t, -m->offset) > b->elen) return -1; buffer_init(bb, -1, b->ebuf, b->elen); - ms->eoffset = ms->offset = b->elen + m->offset; + ms->eoffset = ms->offset = CAST(int32_t, b->elen + m->offset); } else { if (cont_level == 0) { normal: @@ -1448,7 +1496,8 @@ msetoffset(struct magic_set *ms, struct magic *m, struct buffer *bb, } } if ((ms->flags & MAGIC_DEBUG) != 0) { - fprintf(stderr, "bb=[%p,%zu], %d [b=%p,%zu], [o=%#x, c=%d]\n", + fprintf(stderr, "bb=[%p,%" SIZE_T_FORMAT "u], %d [b=%p,%" + SIZE_T_FORMAT "u], [o=%#x, c=%d]\n", bb->fbuf, bb->flen, ms->offset, b->fbuf, b->flen, m->offset, cont_level); } @@ -1459,7 +1508,8 @@ private int mget(struct magic_set *ms, struct magic *m, const struct buffer *b, const unsigned char *s, size_t nbytes, size_t o, unsigned int cont_level, int mode, int text, int flip, uint16_t *indir_count, uint16_t *name_count, - int *printed_something, int *need_separator, int *returnval) + int *printed_something, int *need_separator, int *returnval, + int *found_match) { uint32_t offset = ms->offset; struct buffer bb; @@ -1484,8 +1534,8 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, - if (mcopy(ms, p, m->type, m->flag & INDIR, s, (uint32_t)(offset + o), - (uint32_t)nbytes, m) == -1) + if (mcopy(ms, p, m->type, m->flag & INDIR, s, + CAST(uint32_t, offset + o), CAST(uint32_t, nbytes), m) == -1) return -1; if ((ms->flags & MAGIC_DEBUG) != 0) { @@ -1494,7 +1544,8 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, "u, il=%hu, nc=%hu)\n", m->type, m->flag, offset, o, nbytes, *indir_count, *name_count); - mdebug(offset, (char *)(void *)p, sizeof(union VALUETYPE)); + mdebug(offset, RCAST(char *, RCAST(void *, p)), + sizeof(union VALUETYPE)); #ifndef COMPILE_ONLY file_mdump(m); #endif @@ -1505,40 +1556,58 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, const int sgn = m->in_op & FILE_OPSIGNED; if (m->in_op & FILE_OPINDIRECT) { const union VALUETYPE *q = CAST(const union VALUETYPE *, - ((const void *)(s + offset + off))); - if (OFFSET_OOB(nbytes, offset + off, sizeof(*q))) - return 0; + RCAST(const void *, s + offset + off)); switch (cvt_flip(m->in_type, flip)) { case FILE_BYTE: + if (OFFSET_OOB(nbytes, offset + off, 1)) + return 0; off = SEXT(sgn,8,q->b); break; case FILE_SHORT: + if (OFFSET_OOB(nbytes, offset + off, 2)) + return 0; off = SEXT(sgn,16,q->h); break; case FILE_BESHORT: + if (OFFSET_OOB(nbytes, offset + off, 2)) + return 0; off = SEXT(sgn,16,BE16(q)); break; case FILE_LESHORT: + if (OFFSET_OOB(nbytes, offset + off, 2)) + return 0; off = SEXT(sgn,16,LE16(q)); break; case FILE_LONG: + if (OFFSET_OOB(nbytes, offset + off, 4)) + return 0; off = SEXT(sgn,32,q->l); break; case FILE_BELONG: case FILE_BEID3: + if (OFFSET_OOB(nbytes, offset + off, 4)) + return 0; off = SEXT(sgn,32,BE32(q)); break; case FILE_LEID3: case FILE_LELONG: + if (OFFSET_OOB(nbytes, offset + off, 4)) + return 0; off = SEXT(sgn,32,LE32(q)); break; case FILE_MELONG: + if (OFFSET_OOB(nbytes, offset + off, 4)) + return 0; off = SEXT(sgn,32,ME32(q)); break; case FILE_BEQUAD: + if (OFFSET_OOB(nbytes, offset + off, 8)) + return 0; off = SEXT(sgn,64,BE64(q)); break; case FILE_LEQUAD: + if (OFFSET_OOB(nbytes, offset + off, 8)) + return 0; off = SEXT(sgn,64,LE64(q)); break; default: @@ -1574,7 +1643,7 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, return 0; lhs = BE32(p); if (in_type == FILE_BEID3) - lhs = cvt_id3(ms, (uint32_t)lhs); + lhs = cvt_id3(ms, CAST(uint32_t, lhs)); offset = do_ops(m, SEXT(sgn,32,lhs), off); break; case FILE_LELONG: @@ -1583,7 +1652,7 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, return 0; lhs = LE32(p); if (in_type == FILE_LEID3) - lhs = cvt_id3(ms, (uint32_t)lhs); + lhs = cvt_id3(ms, CAST(uint32_t, lhs)); offset = do_ops(m, SEXT(sgn,32,lhs), off); break; case FILE_MELONG: @@ -1626,7 +1695,7 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, ms->offset = offset; if ((ms->flags & MAGIC_DEBUG) != 0) { - mdebug(offset, (char *)(void *)p, + mdebug(offset, RCAST(char *, RCAST(void *, p)), sizeof(union VALUETYPE)); #ifndef COMPILE_ONLY file_mdump(m); @@ -1714,7 +1783,8 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, if (rv == 1) { if ((ms->flags & MAGIC_NODESC) == 0 && - file_printf(ms, F(ms, m->desc, "%u"), offset) == -1) { + file_printf(ms, F(ms, m->desc, "%u"), offset) == -1) + { free(rbuf); return -1; } @@ -1744,7 +1814,8 @@ mget(struct magic_set *ms, struct magic *m, const struct buffer *b, *need_separator = 0; rv = match(ms, ml.magic, ml.nmagic, b, offset + o, mode, text, flip, indir_count, name_count, - printed_something, need_separator, returnval); + printed_something, need_separator, returnval, found_match); + (*name_count)--; if (rv != 1) *need_separator = oneed_separator; return rv; @@ -1775,8 +1846,8 @@ file_strncmp(const char *s1, const char *s2, size_t len, uint32_t flags) * the ctype functions will work correctly without extra * casting. */ - const unsigned char *a = (const unsigned char *)s1; - const unsigned char *b = (const unsigned char *)s2; + const unsigned char *a = RCAST(const unsigned char *, s1); + const unsigned char *b = RCAST(const unsigned char *, s2); const unsigned char *eb = b + len; uint64_t v; @@ -1971,13 +2042,15 @@ magiccheck(struct magic_set *ms, struct magic *m) case FILE_STRING: case FILE_PSTRING: l = 0; - v = file_strncmp(m->value.s, p->s, (size_t)m->vallen, m->str_flags); + v = file_strncmp(m->value.s, p->s, CAST(size_t, m->vallen), + m->str_flags); break; case FILE_BESTRING16: case FILE_LESTRING16: l = 0; - v = file_strncmp16(m->value.s, p->s, (size_t)m->vallen, m->str_flags); + v = file_strncmp16(m->value.s, p->s, CAST(size_t, m->vallen), + m->str_flags); break; case FILE_SEARCH: { /* search ms->search.s for the string m->value.s */ @@ -2019,7 +2092,7 @@ magiccheck(struct magic_set *ms, struct magic *m) ((m->str_flags & STRING_IGNORE_CASE) ? REG_ICASE : 0)); if (rc) { file_regerror(&rx, rc, ms); - v = (uint64_t)-1; + v = CAST(uint64_t, -1); } else { regmatch_t pmatch; size_t slen = ms->search.s_len; @@ -2040,15 +2113,15 @@ magiccheck(struct magic_set *ms, struct magic *m) search = CCAST(char *, ""); copy = NULL; } - rc = file_regexec(&rx, (const char *)search, + rc = file_regexec(&rx, RCAST(const char *, search), 1, &pmatch, 0); free(copy); switch (rc) { case 0: - ms->search.s += (int)pmatch.rm_so; - ms->search.offset += (size_t)pmatch.rm_so; - ms->search.rm_len = - (size_t)(pmatch.rm_eo - pmatch.rm_so); + ms->search.s += CAST(int, pmatch.rm_so); + ms->search.offset += CAST(size_t, pmatch.rm_so); + ms->search.rm_len = CAST(size_t, + pmatch.rm_eo - pmatch.rm_so); v = 0; break; @@ -2058,12 +2131,12 @@ magiccheck(struct magic_set *ms, struct magic *m) default: file_regerror(&rx, rc, ms); - v = (uint64_t)-1; + v = CAST(uint64_t, -1); break; } } file_regfree(&rx); - if (v == (uint64_t)-1) + if (v == CAST(uint64_t, -1)) return -1; break; } @@ -2092,7 +2165,7 @@ magiccheck(struct magic_set *ms, struct magic *m) case 'x': if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT - "u == *any* = 1\n", (unsigned long long)v); + "u == *any* = 1\n", CAST(unsigned long long, v)); matched = 1; break; @@ -2100,16 +2173,18 @@ magiccheck(struct magic_set *ms, struct magic *m) matched = v != l; if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "u != %" - INT64_T_FORMAT "u = %d\n", (unsigned long long)v, - (unsigned long long)l, matched); + INT64_T_FORMAT "u = %d\n", + CAST(unsigned long long, v), + CAST(unsigned long long, l), matched); break; case '=': matched = v == l; if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "u == %" - INT64_T_FORMAT "u = %d\n", (unsigned long long)v, - (unsigned long long)l, matched); + INT64_T_FORMAT "u = %d\n", + CAST(unsigned long long, v), + CAST(unsigned long long, l), matched); break; case '>': @@ -2118,15 +2193,16 @@ magiccheck(struct magic_set *ms, struct magic *m) if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "u > %" INT64_T_FORMAT "u = %d\n", - (unsigned long long)v, - (unsigned long long)l, matched); + CAST(unsigned long long, v), + CAST(unsigned long long, l), matched); } else { - matched = (int64_t) v > (int64_t) l; + matched = CAST(int64_t, v) > CAST(int64_t, l); if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "d > %" INT64_T_FORMAT "d = %d\n", - (long long)v, (long long)l, matched); + CAST(long long, v), + CAST(long long, l), matched); } break; @@ -2136,15 +2212,16 @@ magiccheck(struct magic_set *ms, struct magic *m) if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "u < %" INT64_T_FORMAT "u = %d\n", - (unsigned long long)v, - (unsigned long long)l, matched); + CAST(unsigned long long, v), + CAST(unsigned long long, l), matched); } else { - matched = (int64_t) v < (int64_t) l; + matched = CAST(int64_t, v) < CAST(int64_t, l); if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "%" INT64_T_FORMAT "d < %" INT64_T_FORMAT "d = %d\n", - (long long)v, (long long)l, matched); + CAST(long long, v), + CAST(long long, l), matched); } break; @@ -2153,8 +2230,9 @@ magiccheck(struct magic_set *ms, struct magic *m) if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "((%" INT64_T_FORMAT "x & %" INT64_T_FORMAT "x) == %" INT64_T_FORMAT - "x) = %d\n", (unsigned long long)v, - (unsigned long long)l, (unsigned long long)l, + "x) = %d\n", CAST(unsigned long long, v), + CAST(unsigned long long, l), + CAST(unsigned long long, l), matched); break; @@ -2163,9 +2241,9 @@ magiccheck(struct magic_set *ms, struct magic *m) if ((ms->flags & MAGIC_DEBUG) != 0) (void) fprintf(stderr, "((%" INT64_T_FORMAT "x & %" INT64_T_FORMAT "x) != %" INT64_T_FORMAT - "x) = %d\n", (unsigned long long)v, - (unsigned long long)l, (unsigned long long)l, - matched); + "x) = %d\n", CAST(unsigned long long, v), + CAST(unsigned long long, l), + CAST(unsigned long long, l), matched); break; default: @@ -2181,14 +2259,14 @@ private int handle_annotation(struct magic_set *ms, struct magic *m, int firstline) { if ((ms->flags & MAGIC_APPLE) && m->apple[0]) { - if (!firstline && file_printf(ms, "\n- ") == -1) + if (print_sep(ms, firstline) == -1) return -1; if (file_printf(ms, "%.8s", m->apple) == -1) return -1; return 1; } if ((ms->flags & MAGIC_EXTENSION) && m->ext[0]) { - if (!firstline && file_printf(ms, "\n- ") == -1) + if (print_sep(ms, firstline) == -1) return -1; if (file_printf(ms, "%s", m->ext) == -1) return -1; @@ -2197,7 +2275,7 @@ handle_annotation(struct magic_set *ms, struct magic *m, int firstline) if ((ms->flags & MAGIC_MIME_TYPE) && m->mimetype[0]) { char buf[1024]; const char *p; - if (!firstline && file_printf(ms, "\n- ") == -1) + if (print_sep(ms, firstline) == -1) return -1; if (varexpand(ms, buf, sizeof(buf), m->mimetype) == -1) p = m->mimetype; diff --git a/libmagic/src/main/cpp/file/vasprintf.c b/libmagic/src/main/cpp/file/vasprintf.c index ad1d316..c87465b 100644 --- a/libmagic/src/main/cpp/file/vasprintf.c +++ b/libmagic/src/main/cpp/file/vasprintf.c @@ -2,7 +2,7 @@ * Copyright (c) Ian F. Darwin 1986-1995. * Software written by Ian F. Darwin and others; * maintained 1995-present by Christos Zoulas and others. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -12,7 +12,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -51,7 +51,7 @@ form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The name of the author may not be used to endorse or promote products derived from this software without specific -prior written permission. +prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF @@ -108,7 +108,7 @@ you use strange formats. #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: vasprintf.c,v 1.14 2017/08/13 00:21:47 christos Exp $") +FILE_RCSID("@(#)$File: vasprintf.c,v 1.16 2018/10/01 18:45:39 christos Exp $") #endif /* lint */ #include @@ -116,12 +116,8 @@ FILE_RCSID("@(#)$File: vasprintf.c,v 1.14 2017/08/13 00:21:47 christos Exp $") #include #include #include -#ifdef HAVE_LIMITS_H #include -#endif -#ifdef HAVE_STDDEF_H #include -#endif #define ALLOC_CHUNK 2048 #define ALLOC_SECURITY_MARGIN 1024 /* big value because some platforms have very big 'G' exponent */ diff --git a/libmagic/src/test/java/com/hzy/libmagic/ExampleUnitTest.java b/libmagic/src/test/java/com/hzy/libmagic/ExampleUnitTest.java deleted file mode 100644 index 9f85594..0000000 --- a/libmagic/src/test/java/com/hzy/libmagic/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hzy.libmagic; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file