Giter Club home page Giter Club logo

myanmar-tools's Introduction

Myanmar Tools (Zawgyi detection & conversion)

This project includes tools for processing font encodings used in Myanmar, currently with support for the widespread Zawgyi-One font encoding. For more information on font encodings in Myanmar, read the Unicode Myanmar FAQ.

Unofficial demos:

Features:

  • Detect whether a string is Zawgyi or Unicode.
    • Supported in C++, Java, JavaScript (both Node.js and browser), PHP, Ruby, Dart and C#
  • Convert a string from Zawgyi to Unicode or from Unicode to Zawgyi
    • Supported in Java and JavaScript

Conversion is also available via ICU in languages without support via Myanmar Tools; see "Zawgyi-to-Unicode Conversion" below.

This is not an official Google product, but we hope that you’ll find Myanmar Tools useful to better support the languages of Myanmar.

Build Status

Why Myanmar Tools?

Myanmar Tools uses a machine learning model to give very accurate results when detecting Zawgyi versus Unicode. Detectors that use hand-coded rules for detection are susceptible to flagging content in other languages like Shan and Mon as Zawgyi when it is actually Unicode.

Myanmar Tools and the CLDR Zawgyi conversion rules are used by Google, Facebook, and others to provide great experiences to users in Myanmar.

Using the Zawgyi Detector

See language-specific documentation:

Depending on your programming language, a typical use case should look something like this:

if (zawgyiDetector.getZawgyiProbability(input) > THRESHOLD) {
    // Convert to Unicode, etc.
}

The method getZawgyiProbability returns a number between 0 and 1 to reflect the probability that a string is Zawgyi, given that it is either Zawgyi or Unicode. For strings that are sufficiently long, the detector should return a number very close to 0 or 1, but for strings with only a few characters, the number may be closer to the middle. With this in mind, use the following heuristics to set THRESHOLD:

  • If under-predicting Zawgyi is bad (e.g., when a human gets to evaluate the result), set a low threshold like 0.05. This threshold guarantees that fewer than 1% of Zawgyi strings will go undetected.
  • If over-predicting Zawgyi is bad (e.g., when conversion will take place automatically), set a high threshold like 0.95. This threshold guarantees that fewer than 1% of Unicode strings will be wrongly flagged.

Additionally, keep in mind that you may want to tune your thresholds to the distribution of strings in your input data. For example, if your input data is biased toward Unicode, in order to reduce false positives, you may want to set a higher Zawgyi threshold than if your input data is biased toward Zawgyi. Ultimately, the best way to pick thresholds is to obtain a set of labeled strings representative of the data the detector will be processing, compute their scores, and tune the thresholds to your desired ratio of precision and recall.

If a string contains a non-Burmese affix, it will get the same Zawgyi probability as if the affix were removed. That is, getZawgyiProbability("hello <burmese> world") == getZawgyiProbability("<burmese>").

Some strings are identical in both U and Z; this can happen if the string consists of mostly consonants with few diacritic vowels. The detector may return any value for such strings. If the user is concerned with this case, they can simply run the string through a converter and check whether or not the converter's output is equal to the converter's input.

Training the Model

The model used by the Zawgyi detector has been trained on several megabytes of data from web sites across the internet. The data was obtained using the Corpus Crawler tool.

To re-train the model, first run Corpus Crawler locally. For example:

$ mkdir ~/corpuscrawler_output && cd ~/corpuscrawler_output
$ corpuscrawler --language my --output . &
$ corpuscrawler --language my-t-d0-zawgyi --output . &
$ corpuscrawler --language shn --output . &
$ corpuscrawler --language mnw --output . &
$ corpuscrawler --language kar --output . &
$ corpuscrawler --language pi-Mymr --output . &

This will take a long time, as in several days. The longer you let it run, the better your model will be. Note that at a minimum, you must ensure that you have obtained data for both Unicode and Zawgyi; the directory should contain files for the six languages listed in the commands above.

Once you have data available, train the model by running the following command in this directory:

$ make train CORPUS=$HOME/corpuscrawler_output

Zawgyi-to-Unicode Conversion

Once determining that a piece of text is Unicode or Zawgyi, it's often useful to convert from one encoding to the other.

This package supports conversion in Java and JavaScript. The rules are the same as the transliteration rules published in the Common Locale Data Repository (CLDR). In other languages, therefore, conversion functionality is available in ICU. Versions 58+ have this built-in with the transform ID "Zawgyi-my":

Many other languages, including Python, Ruby, and PHP, have wrapper libraries over ICU4C, which means you can use the Zawgyi converter in those languages, too. See the samples directory for examples on using the ICU Transliterator.

Contributing New Programming Language Support

We will happily consider pull requests that add clients in other programming languages. To add support for a new programming language, here are some tips:

  • Add a new directory underneath clients. This will be the root of your new package.
  • Use a build system customary to your language.
  • Add your language to the copy-resources and test rules in the top-level Makefile.
  • At a minimum, your package should automatically consume zawgyiUnicodeModel.dat and test against compatibility.tsv.
  • Implementations of converters should run compatibility tests for both Z<->U directions using the provide resources.
  • See the other clients for examples. Most clients are only a couple hundred lines of code.
  • When finished, add your client to the .travis.yml file.

myanmar-tools's People

Contributors

alp avatar bhamiltoncx avatar blackblitz avatar brawer avatar dependabot[bot] avatar echeran avatar gnrunge avatar joycebrum avatar kirankarki avatar leo-neat avatar roubert avatar seithuhtun avatar sffc avatar stevenay avatar sven-oly avatar theinlinkyaw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

myanmar-tools's Issues

Support locale and font validation for Android

There are at least four questions that would be useful to have a library solution to solve for the Android ecosystem:

  1. Does this device support Unicode for Myanmar script? What about Zawgyi?
  2. In case of devices with both Unicode and Zawgyi support, are we running in a Zawgyi locale or a Unicode locale?
  3. Should the UI language be in Burmese or English?
  4. Is the locale's country an alias for Myanmar?

@mihnita says that any implementation of these features would need to be Android-specific and would probably not work outside of an Android environment. Therefore, this could be implemented by a sub-library within Myanmar Tools, distributed under its own artefact ID.

Ideas for APIs that such a library could provide:

public enum BurmeseFontEncoding {
  UNICODE,
  ZAWGYI
};

/**
 * Returns the default font encoding used to render Burmese text on this device.
 */
public BurmeseFontEncoding getDefaultBurmeseFontEncoding() {}

/**
 * Returns an ordered list of fonts available on the system that have Burmese-range
 * code points, in the order of priority.
 */
public List<Font> getAvailableBurmeseFonts() {}

The implementation of this library would need to be based on heuristics from the Android ecosystem.

Can you add support for Mon

I have already make the Non-Standard font mostly used Mon.ttf Converter and want to add that tools to google Myanmar-tools, that would help Mon user using non-standard to used Unicode.

Mon to Unicode converter writing in javascript link : Mon2Uni Converter
Language link

Some failing conversions

Unicode -> Zawgyi conversion failures:

Input: U+1000 103b 103d should give
Expected: Z-1000 103c 107d
Observed: Z-1000 103a 103c

Zawgyi -> Unicode conversion failures:
Input: Z-108f 103c 1036 1031 1010 1038 103a
Expected: U+1014 103d 1036 1010 103b 1031 1038
Observed: U+1014 103d 1036 1010 1031 103b 1038

Add support for React Native

I am trying to use this library in react native.

When I run this library. I find this error.

simulator_screenshot_AEF12D4E-E3F5-491B-A8CE-A7EE4AD0A108

I declared atob as global.

Publish Ruby client to rubygems

#3 added a Ruby client to myanmar-tools. It would be great to see it published to rubygems for easy installation.

It is okay for either @kirankarki or someone from Google to publish the gem, as long as a Google-owned account has access to push updates.

Investigate potential NFC bias

From Martin Jansche:

If you train only on Unicode data in NFC, you will never see certain character bigrams in the Unicode portion of your training data. For example, you will never see 1025 102E in the Unicode portion of the training data, since that string NFC-normalizes to 1026. Since NFC is not a meaningful notion for Zawgyi, you cannot normalize Zawgyi strings before training. So if you have zero instances of 1025 102E in the Unicode portion of your training data and nonzero instances of it in the Zawgyi portion, your training data would be biased and any classifier trained on it would incorrectly view 1025 102E as an indicator of Zawgyi.

It gets more subtle for other combinations: 102D 102F is not canonically equivalent to 102F 102D, AFAICT. Here it's a long-standing, valid complaint against Zawgyi that both orderings are used interchangeably in Zawgyi with no preferred ordering defined, while UTN-11 defines a preferred ordering. But otherwise sensible Unicode text in the wild still uses the non-preferred ordering. Or consider that 101D (wa) and 1040 (zero) are visually confusable in many typefaces; it could be argued that for purposes of Z/U classification, these non-equivalent substrings could be treated as interchangeable. Arguably the Z/U decision is based more on larger structural properties than on details of locally interchangeable substrings. E.g. "1040 1031" can really only be Unicode (however misguided), but "1031 1040" can really only be Zawgyi. It's likely that some bias will sneak into the training data maybe purely based on the innocent preferences of common input methods or due to inadvertent but innocent typos that do not fundamentally change the structure of the representation.

The state of NFC in the wild should be analyzed (e.g., is non-NFC data commonly found)? Then, the training data should be analyzed to make sure it is consistent with the NFC status of typical Unicode text on the internet.

Illegal ID Zawgyi-my

When I run your demo java application, Exception is java.lang.IllegalArgumentException: Illegal ID Zawgyi-my. Which library version of ICU is used?

How to detect my font is correctly rendered at browsers ?

Has there any way to detect my font was correctly rendered at browsers ?

To clarify my question , my API server was send Unicode Myanmar texts as response and I setted them as values of input boxes (textboxes,textareas etc). But when I was changed my browser's font to ZawGyi Font , I can't see correctly the texts of my input boxes.

I can't receive the the browser's active font, so I would like to detect when the Unicode texts are not correctly displayed and I would like to convert them as ZawGyi text values.

Any suggestions would be really appreciated. Thanks

Transliterate Z Norm error

Current behavior

class : TransliterateZNorm.java
method : convert

input (zawgyi)
မၪၨဴရီ

Expected behavior
output (zawgyi)
မၪၨဴရီ

Actual Result
output (zawgyi)
မညၨဴရီ

Swift support

Wanna know there would be swift support for this project?

C++ detector loading fails UBSan

Example error:

zawgyi_detector.cpp:76:3: runtime error: load of misaligned address 0x7f9412046b06 for type 'const uint32_t' (aka 'const unsigned int'), which requires 4 byte alignment
0x7f9412046b06: note: pointer points here
 4d 20 00 00 be 91  38 60 00 01 3f 0c b4 d8  00 02 3e 62 a6 60 00 03  40 13 3f f8 00 04 3e bd  97 20

Should be fixed by using memcpy instead of static_cast to get from the buffer to the uint*_t in BIG_ENDIAN_LOAD.

cmake fails at build step of GTest

In clients/cpp, I ran sudo cmake ., and it failed to produce a Makefile. It seems to have failed at the build step of GTest. My uname -a is Linux dell 5.4.6-2-MANJARO #1 SMP PREEMPT Tue Dec 24 15:55:20 UTC 2019 x86_64 GNU/Linux. The output is shown below:

-- [hunter] Initializing Hunter workspace (5ead1e069b437930d0de8a21824b20fb52b37b50)
-- [hunter]   https://github.com/ruslo/hunter/archive/v0.21.19.tar.gz
-- [hunter]   -> /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- [hunter] Calculating Toolchain-SHA1
-- [hunter] Calculating Config-SHA1
-- [hunter] HUNTER_ROOT: /root/.hunter
-- [hunter] [ Hunter-ID: 5ead1e0 | Toolchain-ID: bcfb592 | Config-ID: ead1bc1 ]
-- [hunter] GTEST_ROOT: /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Install (ver.: 1.8.0-hunter-p11)
-- [hunter] Building GTest
loading initial cache file /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/cache.cmake
loading initial cache file /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/args.cmake
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Build
Scanning dependencies of target GTest-Release
[  6%] Creating directories for 'GTest-Release'
[ 12%] Performing download step (download, verify and extract) for 'GTest-Release'
-- Downloading...
   dst='/root/.hunter/_Base/Download/GTest/1.8.0-hunter-p11/76c6aec/1.8.0-hunter-p11.tar.gz'
   timeout='none'
-- Using src='https://github.com/hunter-packages/googletest/archive/1.8.0-hunter-p11.tar.gz'
-- verifying file...
       file='/root/.hunter/_Base/Download/GTest/1.8.0-hunter-p11/76c6aec/1.8.0-hunter-p11.tar.gz'
-- Downloading... done
-- extracting...
     src='/root/.hunter/_Base/Download/GTest/1.8.0-hunter-p11/76c6aec/1.8.0-hunter-p11.tar.gz'
     dst='/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 18%] No patch step for 'GTest-Release'
[ 25%] No update step for 'GTest-Release'
[ 31%] Performing configure step for 'GTest-Release'
loading initial cache file /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/cache.cmake
loading initial cache file /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/args.cmake
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python (found version "3.8.1") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Build/GTest-Release-prefix/src/GTest-Release-build
[ 37%] Performing build step for 'GTest-Release'
Scanning dependencies of target gmock_main
Scanning dependencies of target gtest
Scanning dependencies of target gmock
[  9%] Building CXX object googlemock/CMakeFiles/gmock_main.dir/__/googletest/src/gtest-all.cc.o
[ 18%] Building CXX object googlemock/CMakeFiles/gmock_main.dir/src/gmock-all.cc.o
[ 27%] Building CXX object googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 36%] Building CXX object googlemock/CMakeFiles/gmock.dir/__/googletest/src/gtest-all.cc.o
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:3975:65:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >::StrEqualityMatcher(const testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::StrEqualityMatcher<StringType>::operator=(const testing::internal::StrEqualityMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1180:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1180 |   GTEST_DISALLOW_ASSIGN_(StrEqualityMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4004:57:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >::HasSubstrMatcher(const testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::HasSubstrMatcher<StringType>::operator=(const testing::internal::HasSubstrMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1227:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1227 |   GTEST_DISALLOW_ASSIGN_(HasSubstrMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4011:55:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >::StartsWithMatcher(const testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::StartsWithMatcher<StringType>::operator=(const testing::internal::StartsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1274:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1274 |   GTEST_DISALLOW_ASSIGN_(StartsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4017:79:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >::EndsWithMatcher(const testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::EndsWithMatcher<StringType>::operator=(const testing::internal::EndsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1320:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1320 |   GTEST_DISALLOW_ASSIGN_(EndsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::MatchesRegexMatcher]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::MatchesRegexMatcher]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4024:75:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::MatchesRegexMatcher::MatchesRegexMatcher(const testing::internal::MatchesRegexMatcher&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::MatchesRegexMatcher’ has user-provided ‘void testing::internal::MatchesRegexMatcher::operator=(const testing::internal::MatchesRegexMatcher&)’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1369:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1369 |   GTEST_DISALLOW_ASSIGN_(MatchesRegexMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4049:23:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >::StrEqualityMatcher(const testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::StrEqualityMatcher<StringType>::operator=(const testing::internal::StrEqualityMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1180:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1180 |   GTEST_DISALLOW_ASSIGN_(StrEqualityMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4078:17:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >::HasSubstrMatcher(const testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::HasSubstrMatcher<StringType>::operator=(const testing::internal::HasSubstrMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1227:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1227 |   GTEST_DISALLOW_ASSIGN_(HasSubstrMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4085:14:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >::StartsWithMatcher(const testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::StartsWithMatcher<StringType>::operator=(const testing::internal::StartsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1274:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1274 |   GTEST_DISALLOW_ASSIGN_(StartsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4092:14:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >::EndsWithMatcher(const testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::EndsWithMatcher<StringType>::operator=(const testing::internal::EndsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1320:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1320 |   GTEST_DISALLOW_ASSIGN_(EndsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[5]: *** [googlemock/CMakeFiles/gmock_main.dir/build.make:76: googlemock/CMakeFiles/gmock_main.dir/src/gmock-all.cc.o] Error 1
make[5]: *** Waiting for unfinished jobs....
[ 45%] Building CXX object googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:3975:65:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >::StrEqualityMatcher(const testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::StrEqualityMatcher<StringType>::operator=(const testing::internal::StrEqualityMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1180:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1180 |   GTEST_DISALLOW_ASSIGN_(StrEqualityMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4004:57:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >::HasSubstrMatcher(const testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::HasSubstrMatcher<StringType>::operator=(const testing::internal::HasSubstrMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1227:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1227 |   GTEST_DISALLOW_ASSIGN_(HasSubstrMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4011:55:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >::StartsWithMatcher(const testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::StartsWithMatcher<StringType>::operator=(const testing::internal::StartsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1274:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1274 |   GTEST_DISALLOW_ASSIGN_(StartsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4017:79:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >::EndsWithMatcher(const testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<char> >’ has user-provided ‘void testing::internal::EndsWithMatcher<StringType>::operator=(const testing::internal::EndsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<char>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1320:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1320 |   GTEST_DISALLOW_ASSIGN_(EndsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::MatchesRegexMatcher]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::MatchesRegexMatcher]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4024:75:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::MatchesRegexMatcher::MatchesRegexMatcher(const testing::internal::MatchesRegexMatcher&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::MatchesRegexMatcher’ has user-provided ‘void testing::internal::MatchesRegexMatcher::operator=(const testing::internal::MatchesRegexMatcher&)’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1369:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1369 |   GTEST_DISALLOW_ASSIGN_(MatchesRegexMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4049:23:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >::StrEqualityMatcher(const testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StrEqualityMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::StrEqualityMatcher<StringType>::operator=(const testing::internal::StrEqualityMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1180:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1180 |   GTEST_DISALLOW_ASSIGN_(StrEqualityMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4078:17:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >::HasSubstrMatcher(const testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::HasSubstrMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::HasSubstrMatcher<StringType>::operator=(const testing::internal::HasSubstrMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1227:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1227 |   GTEST_DISALLOW_ASSIGN_(HasSubstrMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4085:14:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >::StartsWithMatcher(const testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::StartsWithMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::StartsWithMatcher<StringType>::operator=(const testing::internal::StartsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1274:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1274 |   GTEST_DISALLOW_ASSIGN_(StartsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-spec-builders.h:75,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-generated-function-mockers.h:43,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:61,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h: In instantiation of ‘testing::PolymorphicMatcher<Impl>::PolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:497:10:   required from ‘testing::PolymorphicMatcher<Impl> testing::MakePolymorphicMatcher(const Impl&) [with Impl = testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >]’
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:4092:14:   required from here
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:432:67: error: implicitly-declared ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >::EndsWithMatcher(const testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >&)’ is deprecated [-Werror=deprecated-copy]
  432 |   explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
      |                                                                   ^
In file included from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-linked_ptr.h:74,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-port.h:53,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-generated-internal-utils.h:44,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/internal/gmock-internal-utils.h:45,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-actions.h:46,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock.h:58,
                 from /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/src/gmock-all.cc:40:
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googletest/include/gtest/internal/gtest-port.h:908:8: note: because ‘testing::internal::EndsWithMatcher<std::__cxx11::basic_string<wchar_t> >’ has user-provided ‘void testing::internal::EndsWithMatcher<StringType>::operator=(const testing::internal::EndsWithMatcher<StringType>&) [with StringType = std::__cxx11::basic_string<wchar_t>]’
  908 |   void operator=(type const &)
      |        ^~~~~~~~
/root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest/Source/googlemock/include/gmock/gmock-matchers.h:1320:3: note: in expansion of macro ‘GTEST_DISALLOW_ASSIGN_’
 1320 |   GTEST_DISALLOW_ASSIGN_(EndsWithMatcher);
      |   ^~~~~~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[5]: *** [googlemock/CMakeFiles/gmock.dir/build.make:76: googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.o] Error 1
make[5]: *** Waiting for unfinished jobs....
[ 54%] Linking CXX static library libgtest.a
make[4]: *** [CMakeFiles/Makefile2:145: googlemock/CMakeFiles/gmock.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [CMakeFiles/Makefile2:118: googlemock/CMakeFiles/gmock_main.dir/all] Error 2
[ 54%] Built target gtest
make[3]: *** [Makefile:141: all] Error 2
make[2]: *** [CMakeFiles/GTest-Release.dir/build.make:116: GTest-Release-prefix/src/GTest-Release-stamp/GTest-Release-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/GTest-Release.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

[hunter ** FATAL ERROR **] Build step failed (dir: /root/.hunter/_Base/5ead1e0/bcfb592/ead1bc1/Build/GTest
[hunter ** FATAL ERROR **] [Directory:/root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/projects/GTest]

------------------------------ WIKI -------------------------------
    https://github.com/ruslo/hunter/wiki/error.external.build.failed
-------------------------------------------------------------------

CMake Error at /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/modules/hunter_wiki.cmake:12 (message):
Call Stack (most recent call first):
  /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/modules/hunter_fatal_error.cmake:20 (hunter_wiki)
  /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/modules/hunter_download.cmake:672 (hunter_fatal_error)
  /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/projects/GTest/hunter.cmake:244 (hunter_download)
  /root/.hunter/_Base/Download/Hunter/0.21.19/5ead1e0/Unpacked/cmake/modules/hunter_add_package.cmake:53 (include)
  CMakeLists.txt:32 (hunter_add_package)


-- Configuring incomplete, errors occurred!
See also "/home/hal/myanmar-tools/clients/cpp/CMakeFiles/CMakeOutput.log".

C++ client should use U8_NEXT instead of U8_NEXT_UNSAFE

I had written the code using U8_NEXT_UNSAFE because proper U8_NEXT required linking against the ICU shared library. This is no longer required in ICU 61. The dependency should be updated from 60 to 61 and the call site should be changed.

Class 'IntlBreakIterator' not found

Dear all,
I use myanmar tools to detect zawgyi or unicode in PHP (laravel) but I got Class 'IntlBreakIterator' not found. How can I solve it. In vendor/googlei18n/myanmar-tools/clients/php/src/ZawgyiUnicodeMarkovModel.php

Conversion issues: Z->U and Z->Z

Z->U problem: The string သတင္း အထူးက႑ သတင်း အထူးကဍ္ဍ converts to Unicode incorrect.

Specifically, Z+1091 converts to U+100d U+1039 U+100d
However, the result should be U+100f U+1039 U+100d.

Next, the U->Z conversion of U+100d U+1039 U+100d producdes Z+100d Z+0106e.
It should produce Z+106e.

These should be fixed in the transliteration rules.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.