Successfully deployed to following URLs:

* https://ergday-gxcnunf8p.now.sh
* https://ergday.now.sh
* https://ergday.lgeiger.now.sh
* https://ergday-git-master.lgeiger.now.sh


@HelbertNunes


Successfully deployed to following URLs:

* https://glitched-news-7212nz0bm.now.sh
* https://glitched.news
* https://*.glitched.news
* https://glitched-news.glitchdigital1.now.sh
* https://glitched-news-git-master.glitchdigital1.now.sh


Wizard check added before message in do_chown. Thanks!


wow, the udpated code looks really cleaned up and much easier to read/comprehend. great work!

all of the problematic cases still work, and working cases still work (and didn't notice anything else no longer working).

the only minor issue i noticed is that the trimmed " ..." should only be displayed when there are >7 authors, rather than 7 or more authors inclusively , though this is probably a very easy fix!

` 7 authors:    I Cheung, L Campbell, EP LeBel, SS Smith, ST Smith, SR Smith, & SU Smith`
`>7 authors: I Cheung, L Campbell, EP LeBel, SS Smith, ST Smith, SR Smith, ... , & JC Yong`

example: 10.1371/journal.pone.0177841
yields "RN Balzarini, L Campbell, T Kohut, BM Holmes, JJ Lehmiller, JJ Harman, ... , & N Atkins"

but should yield
"RN Balzarini, L Campbell, T Kohut, BM Holmes, JJ Lehmiller, JJ Harman, & N Atkins"

thanks again for your contributions!

looking forward to the [next batch of tweaks](https://github.com/ScienceCommons/curate_science/commit/a0ec75589e1ff7d15569ca3fd28801d1690598f4#commitcomment-35225877)!


implementation of XGBoost by python


Successfully deployed to following URLs:

* https://jsheroesio-hzzi407i4.now.sh
* https://jsheroes.io
* https://jsheroesio.clujsers.now.sh
* https://jsheroesio-git-master.clujsers.now.sh


Wow this is just perfect ! No versioning in the url :) Thank you @Grinnz


 @HelbertNunes
 Isso é um teste


Are you aware of that moving the `DescriptorImpl` in this commit breaks all old configurations? `<jenkinsci.plugins.influxdb.DescriptorImpl plugin="influxdb@1.23">` has been used before in the XML config file.
I suggest to at least provide this information in the plugin's meta-data - see https://wiki.jenkins.io/display/JENKINS/Marking+a+new+plugin+version+as+incompatible+with+older+versions.


Successfully deployed to following URLs:

* https://moltin-stripe-paymentintents-6jwmsi4l5.now.sh
* https://moltin-stripe-paymentintents.now.sh
* https://moltin-stripe-paymentintents.moltin.now.sh
* https://moltin-stripe-paymentintents-git-master.moltin.now.sh


why does this need to be different than any of the other regulates predicates?


https://hub.docker.com/r/lpil/gleam/tags

It's just a statically linked binary in a scratch image so without another image with Erlang included it's not very useful


Aguante River


Successfully deployed to following URLs:

* https://uniswapex-cg6oa6wwq.now.sh
* https://uniswapex.io
* https://uniswapex.unixwapex.now.sh
* https://uniswapex-git-master.unixwapex.now.sh


Successfully deployed to following URLs:

* https://next-sarah-console-3wceim3w7.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


Aguante RIVER


i


코드를 이렇게짜면 앱을 껏다가 킬시에 datanum이 다시 0이됩니다 따라서
한번에 글을여러개쓸경우 정렬되지만 껏다킬시에 적용이안되므로 firebase document를 읽어보고
최신 post중 field의 특정값을 받아오는것을 구현해야함


이건뭐당까


Its actually more of an updated base entity (added jpa @MappedSuperClass)


Successfully deployed to following URLs:

* https://portfolio-6bbsp2qng.now.sh
* https://kamranali.in
* https://portfolio.kamranalinitb.now.sh
* https://portfolio-git-master.kamranalinitb.now.sh


@christopherdarling If => is used, it should be wrapped in an array, e.g.

```
$players = Player::get()->exclude([
    'FirstName' => ['Sam','Sig']
]);
```


다시 생각해보면 MVP 패턴이 대부분이맞는것같다 각자의 ADAPTER들또한 블로그에서 퍼온것이아닌 직접하다보니
하지만 아직도 MVP 패턴의 M 의 개념을 잘모르겟다


MILLIS=9 즉 * 100 즉 0.9초에 프로그레스바는 종료됨


Successfully deployed to following URLs:

* https://web-q8omaa0v8.now.sh
* https://eesast.now.sh
* https://web.robertying.now.sh
* https://web-git-master.robertying.now.sh


Successfully deployed to following URLs:

* https://packagephobia-djzg1arju.now.sh
* https://packagephobia.now.sh
* https://packagephobia.styfle.now.sh
* https://packagephobia-git-master.styfle.now.sh


good job


something happened, or just out of fear?


 @HelbertNunes
 AOBA


Introdução de sobra no Título e alteração do código fonte


Successfully deployed to following URLs:

* https://link-4m2buzqiz.now.sh
* https://link.cbdyzj.now.sh
* https://link-git-master.cbdyzj.now.sh


thanks for your advice.


Successfully deployed to following URLs:

* https://next-sarah-console-3dso468er.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


Cool


the latter :)


sdfsfsdfsfdsfsdf


Dobrý


The performance boost comes from not generating a board until the player clicks on the board, thus making changing the dimensions and bomb count have pretty much no lag.


Successfully deployed to following URLs:

* https://link-5l0m0nb8h.now.sh
* https://link.cbdyzj.now.sh
* https://link-git-master.cbdyzj.now.sh


Successfully deployed to following URLs:

* https://classics-next-ckww9phb9.now.sh
* https://classics-next.joonajo.now.sh
* https://classics-next-git-master.joonajo.now.sh


Oh, I understand now. This code is so that if you dexsearch for a combination of moves, the results in question must be able to learn both simultaneously.


yes, this is a mistake.  The real file belongs with the test program.  I'll prune this.


Ok lắm các bạn chịu khó đc lể mở mang ý thức


![](https://github.trello.services/images/mini-trello-icon.png) [[typography]-[add]: base styles for all types of text. based on bootstrap](https://trello.com/c/DAtZDRa4/85-typography-add-base-styles-for-all-types-of-text-based-on-bootstrap)


actually resolves #1684


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `b75037a8-e1fa-11e9-928f-a06209663135`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


Intentional?


`'`  符号是符合SQL92标准的，貌似PreparedStatement的做法原则上是对它做转义吧，就是变成 ` \'`
直接改成`在mysql 5.7是执行失败的


Successfully deployed to following URLs:

* https://next-sarah-console-jwvme6qkq.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


Niubility.


Great job!


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `62caf906-e1fb-11e9-8867-857a10f03744`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


RemoveSynonyms-6601PartB (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-UnitTestsCoverage-Debug: OK (1234 of 1234 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-43.2%25-green.png)


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `748cf892-e1fb-11e9-9fbb-3d4118c88219`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


RemoveSynonyms-6601PartA (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-IntegrationCoverage-Debug: OK (673 of 674 tests passed, 0 test warnings)

Failures:\n

integration Test Summary
 * Passed: 673
 * Timeout: 1

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.85%25-yellow.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-68.43%25-green.png)


@laurentdong

I tried these latest updates you made. Unfortunately the same results as before (see below).

I am more than happy to help test. What can you and I do to collaborate?

Mike

P.S. @arendst for now I have removed the link to the [page describing this added capability](https://github.com/arendst/Sonoff-Tasmota/wiki/Rules:-IF-ELSE-ELSEIF-and-AND-OR-Support). If we cannot resolve this issue, I wouldn't want users to stumble on the page and having them start generating tons of Discord posts or new Issues. Do you think I ought to delete the page? Of course, I would retain a copy offline and restore it once the problems are found and resolved.

```
ON ENERGY#Power>=0 DO
  IF (%value%>=35) Var1 %value%; PowerDelta 10; Status 8
   ELSEIF (%value%>=15) Var1 %value%; PowerDelta 25; Status 8
   ELSEIF (%value%>4) Var1 %value%; PowerDelta 35; Status 8
   ELSE Var1 %value%; PowerDelta 100
  ENDIF
ENDON
```
Result: `{"Counter1":0}`

```
ON ENERGY#Power>=0 DO
  IF (%value%>=35) PowerDelta 10; Status 8
   ELSEIF (%value%>=15) PowerDelta 25; Status 8
   ELSEIF (%value%>4) PowerDelta 35; Status 8
   ELSE PowerDelta 100
  ENDIF
ENDON
```
Result: `{"Command":"Unknown"}`


Tested with vdpau only, and simple skins (lcars, enigmang, skinflat).
Va-api not tested. Nothing should break.
Skinflatplus have a segfault, see https://www.vdr-portal.de/forum/index.php?thread/132193-skinflatplus-verhindert-vdr-start-bei-shd-mit-openglosd/


Successfully deployed to following URLs:

* https://alepachecodev-jyp04oa9n.now.sh
* https://www.alepacheco.dev
* https://alepachecodev.alepacheco.now.sh
* https://alepachecodev-git-master.alepacheco.now.sh


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `bb72270a-e1fb-11e9-8b18-21e9878cc98c`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


Related to issue https://github.com/huggingface/transformers/issues/1363, could you elaborate on what this commit fixes? And perhaps also take a look at that issue involving the size of `max_position_embeddings` for RoBERTa.


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `c7c6c4ac-e1fb-11e9-9dbe-4a2433e3be10`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


7507-Load-introduced-by-ZoneHVACEnergyRecoveryVentilator-not-always-met-by-AirLoop-systems (rraustad) - Win64-Windows-10-VisualStudio-16: OK (2564 of 2574 tests passed, 659 test warnings)

Messages:\n
 * 669 tests had: AUD diffs.
 * 11 tests had: EIO diffs.
 * 10 tests had: Table big diffs.
 * 1 test had: ESO small diffs.
 * 1 test had: MTR small diffs.
 * 1 test had: Table small diffs.

Failures:\n

regression Test Summary
 * Passed: 659
 * Failed: 10

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.61%25-yellow.png)


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `d5f196c4-e1fb-11e9-8345-b23a5378eb9d`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


 @douglaswcastro
 luizcarlosfaria


Somehow you are introducing 3 ideas at once,
maybe one of them is more significant.


lol i dont want delete my code xD


Dear Poggit user,

This is an automatic message from Poggit-CI. Poggit-CI was triggered by this commit, but failed to create builds due to the following error:

```
Error parsing .poggit.yml: Level 0: yaml_parse(): parsing error encountered
during parsing: did not find expected key (line 7, column 6), context while
parsing a block mapping (line 6, column 5) in
/poggit/src/poggit/webhook/PushHandler.php#85
```

As a result, no builds could be created from this commit. More details might be available for repo admins at [the webhook delivery response log](https://github.com/PoorGT/JoinTextUI/settings/hooks) — see the webhook starting with `https://poggit.pmmp.io/webhooks.gh.repo` and look for the delivery with ID `331b5b50-e1fc-11e9-8bdd-11dc4c348769`.

Shall you need any assistance, you may contact us on [on Discord](https://discord.gg/NgHf9jt), or more publicly, [on GitHub](https://github.com/poggit/support/issues). Commenting on this commit directly will **not** notify any Poggit staff.

Regards,
Poggit Bot (@poggit-bot)
The official Poggit automation account


Successfully deployed to following URLs:

* https://snake-iza4ah2pe.now.sh
* https://snake.isthe.link
* https://snake.rem.now.sh
* https://snake-git-master.rem.now.sh


develop (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-cppcheck: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


Successfully deployed to following URLs:

* https://snake-betmqsghg.now.sh
* https://snake.isthe.link
* https://snake.rem.now.sh
* https://snake-git-master.rem.now.sh


develop (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-custom_check: OK (11 of 11 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


I opened pull request #80 to add this information.


Formatting conventions are almost like religions, and when you get used
to something, it's hard to switch. On the other hand, consistency is
very important for readability, so I don't want every file to reflect
personal beliefs about how to format code. I suppose my preferences are
no better than anyone else's, but I've tried to adopt some of the most
widely supported and recommended conventions. These go back to the
original developers of C (K&R), Java (Jim Gosling), and have support
from published recommendations (e.g. Oracle). Here's how I think code
should look:

function draw() {
     background(0);
     fill(255);
     for (var y = 20; y < height + 50; y += 10) {
         for (var x = 20; x < width + 50; x += 10) {
             var sz = 3 + y / 20;
             if (x < width / 2) {
                 ellipse(x + y, y, sz, sz);
             } else {
                 rect(x + y, y, sz, sz);
             }
         }
     }
     noLoop();
}

Note particularly 4-space indentation and NO TAB CHARACTERS (ever!, tabs
are evil, but that's another story).

So yes, audio/sc-pitch.js should have 4 space indentation. You should
fix your editor to do this automatically. If you are typing 4 spaces
with the spacebar in code, you are not working efficiently or even
reasonably.

-Roger

On 9/27/19 11:19 PM, Ankit Joshi wrote:
>
> @Kristin33 <https://github.com/Kristin33> I don't understand why all
> the 4 space indentation were replaced with 2 spaces
> |audio/sc-pitch.js|. Can we undo it?
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/rbdannenberg/soundcool/commit/bba966c6cca31451e2e7c5275cc3eb4f0d9c905f?email_source=notifications&email_token=AALLUHHNSOW4BYNTU555MADQL3ELVA5CNFSM4I3MRA52YY3PNVWWK3TUL52HS4DFVVBW63LNNF2EG33NNVSW45FKMNXW23LFNZ2F62LEZYBBUP47#commitcomment-35274655>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AALLUHBIN436GOGPOCW76GDQL3ELVANCNFSM4I3MRA5Q>.
>


Successfully deployed to following URLs:

* https://wikichronica-9mpirx8ho.now.sh
* https://wiki.chronica.xyz
* https://www.wiki.chronica.xyz
* https://wikichronica.ckipp01.now.sh
* https://wikichronica-git-master.ckipp01.now.sh


@1215316 Sure, I'm happy to try to help. Concerning the error "no auth mechanism defined": luckily I think that's probably unrelated to your node's data being on an external drive. Rather, that is likely related to the way that the explorer is communicating with your node via the RPC interface.

To give some background: As a prerequisite, your node will need to have properly configured RPC credentials (usually done in your `bitcoin.conf` file), then this explorer will need to use those credentials in order for the node to send it data via RPC.

So, you'd start by making sure that your node has RPC credentials configured. Then configure this explorer's RPC credentials (username+password or cookie file) as described in the [configuration](https://github.com/janoside/btc-rpc-explorer#configuration) section. Let me know if this makes sense and whether it works out for you.


Có lức nghĩ đã hết hi vọng rồi .nhưng quyết định của mình là đúng


Successfully deployed to following URLs:

* https://snake-flgud8jji.now.sh
* https://snake.isthe.link
* https://snake.rem.now.sh
* https://snake-git-master.rem.now.sh


Successfully deployed to following URLs:

* https://chronica-dico5rsfb.now.sh
* https://chronica.xyz
* https://www.chronica.xyz
* https://chronica.ckipp01.now.sh
* https://chronica-git-master.ckipp01.now.sh


Successfully deployed to following URLs:

* https://anygeeks-2lucevi32.now.sh
* https://www.anygeeks.com
* https://anygeeks.com
* https://anygeeks.anygeeks.now.sh
* https://anygeeks-git-master.anygeeks.now.sh


Hi @AhmedOS,

No, it's not from another version of the standard, that's why I didn't directly send a pull request to you.

I did this patch because I received some of the WebVTT subtitle files with the webvtt extension from my work, though it's not part of the standard, but as the extension is still very understandable, readable and not so weird, I wonder maybe you'd like to accept it?

Thanks!


feat: add header


this is a comment


![](https://github.trello.services/images/mini-trello-icon.png) [31 - Добавить на вкладке "Мои рейсы" кнопку "Поставить в расписание", при нажатии на которую отображается форма "Настройка рейса" (для "красных" рейсов форма не должна открываться)](https://trello.com/c/B6Ew7p4K/41-31-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-%D0%BC%D0%BE%D0%B8-%D1%80%D0%B5%D0%B9%D1%81%D1%8B-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D1%83-%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B2-%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B8-%D0%BD%D0%B0-%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%83%D1%8E-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D1%80%D0%B5%D0%B9%D1%81%D0%B0-%D0%B4%D0%BB%D1%8F-%D0%BA%D1%80%D0%B0)


Successfully deployed to following URLs:

* https://next-sarah-console-82aehvciu.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


Build completed. Artifacts uploaded at http://winton.metaphor.public.s3-website-eu-west-1.amazonaws.com/codepipeline_test/9eaf789c-c5ef-44ed-ae9a-0c9e14f475d3/test_artifact


@barberj you can check issue #238

Version `0.8.2` will be available after release to Hex.pm registry


Tugas Pemrograman Aplikasi Mobile Challenge 1


int main()
{
	char c;
	do
	{
		printf("请输入一个字母：");
		scanf("%c", &c);
		if (c >= 65 & c <= 90)
			printf("%c\n", c + 32);
		if (c >= 97 & c <= 122)
			printf("%c\n", c - 32);
		else
			continue;
	} while (1);
	system("pause");
	return 0;
}


Initially I was getting only zero as measurement values. Since adding that one line it works fine with Arduino IDE 1.8.9 and Arduino Nano.


Successfully deployed to following URLs:

* https://anygeeks-4f7w76j5m.now.sh
* https://www.anygeeks.com
* https://anygeeks.com
* https://anygeeks.anygeeks.now.sh
* https://anygeeks-git-master.anygeeks.now.sh


Successfully deployed to following URLs:

* https://react-hilton-rooms-bbfw9ox16.now.sh
* https://react-hilton-rooms.aarnadlr.now.sh
* https://react-hilton-rooms-git-master.aarnadlr.now.sh


omg again random, you watch this everyday...?


yooooo


content: 0.901202002792947


Successfully deployed to following URLs:

* https://snake-1f36v8uwu.now.sh
* https://snake.isthe.link
* https://snake.rem.now.sh
* https://snake-git-master.rem.now.sh


Text: 0.921290459571596


Text: 0.11852760779613081


develop (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-gcc-7.4: OK (1930 of 1930 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


fix


content: 0.6333846875856077


Text: 0.9349084067707638


Text: 0.763435975839371


Successfully deployed to following URLs:

* https://geek-news-zeit-k2yuebzx5.now.sh
* https://geek-news-zeit.antondexy.now.sh
* https://geek-news-zeit-git-master.antondexy.now.sh


rip my and Arya authorship


Successfully deployed to following URLs:

* https://next-sarah-console-5gqzgu9ac.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


FWIW, This broke my custom prompt, which used `ret_status`. Might be a problem for others too as the robbyrussel theme comes as default.


Successfully deployed to following URLs:

* https://ip-a8ql53ggm.now.sh
* https://ip.skamenetskiy.now.sh
* https://ip-git-master.skamenetskiy.now.sh


Is there a post somewhere about why?
Also: How does this affect the future of iSupervisor ?


? Tell me more about this.


Well this is certainly going to change things for a while 🤔


Successfully deployed to following URLs:

* https://monorepo-ywuvld1g3.now.sh
* https://storybookjs.now.sh
* https://storybookjs-next.now.sh
* https://monorepo.storybook.now.sh
* https://monorepo-git-next.storybook.now.sh


Successfully deployed to following URLs:

* https://java-programming-fall-19-4pl84decm.now.sh
* https://programming-f19.mooc.fi
* https://java-programming-fall-19.mooc.now.sh
* https://java-programming-fall-19-git-master.mooc.now.sh


this is how i leave a comment


On Sat, Sep 28, 2019, 2:38 AM Uday Bondhugula <notifications@github.com>
wrote:

> "Changes like these" just means anything that drops non-trivial support
> like this one. In this case, this commit does drop support that others
> might be depending on for experimentation.
>
> But this change can be seen as trivial? This is only a testing tool and
> this is not a change of a core component of the system or something that
> affect the design of an API. No-one should build anything on top of this,
> as such it is fairly self-contained.
>
> I actually didn't see it as trivial. This was a very useful way to set up
> some execution tests (performance related/timed). One could have
> mlir-cpu-runner execution tests that relied on memrefs being input/output
> from the functions. As @alex <https://github.com/alex> also points out
> too and I agree this support was really temporary and there are
> better/right alternatives for it, but its replacement isn't readily
> available. I would be happy to implement/contribute that (the library-based
> approach - to be able to print/initialize memref's and perhaps also time).
>
I'll share something along those lines soon since I've been using this
abstraction for some time. To make things much more convenient at the API
boundary it's probably better to wait for a few extra changes to the LLVM
descriptor. I should get everything in early next week, it's been mostly
hung up on discussions.

We could have just waited for that before deleting this. :)
>
By the time we see it, it's already committed unlike with the pull requests!
>
> Note that in the LLVM workflow, such changes could be landed by the people
> owning an area and be reviewed after commit.
>
> Hmm... I can't say whether those changes were in the same league as this
> one!
>
I'm willing to bet it was more intrusive in many cases (like API breaking
changes). In this particular instance this mlir-opt change is also related
to recent changes to memref descriptor and function boundaries. Updating
mlir-opt would have added another layer of technical debt on top of the
previous one.

> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/tensorflow/mlir/commit/c2f215e0d6e8a2998a2d8c57346fc05c2c48d85e?email_source=notifications&email_token=ACNNU5DFU44TSDRP4S5LZFTQL33VJA5CNFSM4I3B5VU2YY3PNVWWK3TUL52HS4DFVVBW63LNNF2EG33NNVSW45FKMNXW23LFNZ2F62LEZYBBUQSW#commitcomment-35275350>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/ACNNU5BWRWHZ42RWKOVKD53QL33VJANCNFSM4I3B5VUQ>
> .
>


`beautiful`


Typo. Maybe `if 'light' in device['params']:`?


Successfully deployed to following URLs:

* https://next-sarah-console-6cuh4l8r6.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


Successfully deployed to following URLs:

* https://next-sarah-console-d5crzwpt3.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


That was great!


don't you think this test should just be run to completion?


你 function url_args_attack_check() 函数代码有问题
for key, val in pairs(REQ_ARGS) do
                if type(val) == 'table' then
                    local ARGS_DATA = table.concat(val, " ")
                else
                    local ARGS_DATA = val
                end
                if ARGS_DATA and type(ARGS_DATA) ~= "boolean" and rule ~="" and rulematch(unescape(ARGS_DATA),rule,"jo") then
.....
ARGS_DATA 变量定义在if else 内，外层拿不到，导致args规则失效
我改成下面的，就正常了
local ARGS_DATA = ""
for key, val in pairs(REQ_ARGS) do
                if type(val) == 'table' then
                    ARGS_DATA = table.concat(val, " ")
                else
                    ARGS_DATA = val
                end
                if ARGS_DATA and type(ARGS_DATA) ~= "boolean" and rule ~="" and rulematch(unescape(ARGS_DATA),rule,"jo") then


typo?


Does´nt work on VW discover pro fw0814


Successfully deployed to following URLs:

* https://java-programming-fall-19-a2dx3sqqb.now.sh
* https://programming-f19.mooc.fi
* https://java-programming-fall-19.mooc.now.sh
* https://java-programming-fall-19-git-master.mooc.now.sh


Successfully deployed to following URLs:

* https://frontend-test-3svqn9t36.now.sh
* https://frontend-test.mattnihiser.now.sh
* https://frontend-test-git-master.mattnihiser.now.sh


#HelpBot #Quem #C#


make this (real) null and do a check when combining and computing the return types


LTC here http://tests.stockfishchess.org/tests/view/5d8f757b0ebc59085c6be72f


正しくは"セッションの作成(ログイン機能&ヘッダー)"


Super delicious :smiley: This simplifies the work :+1:


RemoveSynonyms-6601PartB (mjwitte) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-IntegrationCoverage-Debug: OK (674 of 674 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-68.45%25-green.png)


This is a Test WebApp to evaluate Azure


content: 0.9025892505042874


好


Text: 0.9301852214143587


Text: 0.48611852759207275


The curly bracket needs a finish


Je suis d'accord.
J'ai d'ailleurs initié une nouvelle branche pour de grosses modifs que je prépare.
Par contre, je me suis un peu planté un moment sur mes push et j'ai mergé par erreur sur la Beta (vous pouvez constater le Revert, désolé). Du coup j'ai créé une branche sur mon Fork :)

Pour les petites modifs ci-dessus, créer une branche est discutable.
=> La branche BETA n'est-elle pas déjà en soi une branche de test ?

Mais en effet, je pense que c'est sain de travailler comme tu proposes.
Je créerait une branche la prochaine fois quelque soit la modif si ça touche le coeur.


Successfully deployed to following URLs:

* https://alepachecodev-hoa5vz1kv.now.sh
* https://www.alepacheco.dev
* https://alepachecodev.alepacheco.now.sh
* https://alepachecodev-git-master.alepacheco.now.sh


No.  It was taking too long which suggests some elo loss.

On Sat, Sep 28, 2019, 8:56 AM Joost VandeVondele <notifications@github.com>
wrote:

> don't you think this test should just be run to completion?
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/protonspring/Stockfish/commit/b6e07fbdac9ebe808cf15ff8f663c51f6afebffa?email_source=notifications&email_token=AHCWOSESLJGOH6YFLA2VVLLQL5WCXA5CNFSM4I3OOI42YY3PNVWWK3TUL52HS4DFVVBW63LNNF2EG33NNVSW45FKMNXW23LFNZ2F62LEZYBBUSSX#commitcomment-35277399>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AHCWOSD2U5DLU2Y6XHTMACDQL5WCXANCNFSM4I3OOI4Q>
> .
>


standard age use is 20 so using 20 as the age number will give you a better result


isn't it still "used" [here](https://github.com/r888888888/danbooru/blob/b2d0d2689b654a3b3130309abb2a365c24f37b6a/app/models/post.rb#L2)


Successfully deployed to following URLs:

* https://glitched-news-7ndzq8onv.now.sh
* https://glitched.news
* https://*.glitched.news
* https://glitched-news.glitchdigital1.now.sh
* https://glitched-news-git-master.glitchdigital1.now.sh


This commit should be reverted.


No problem.... I'll revert.


Where?


![](https://github.trello.services/images/mini-trello-icon.png) [32 - Добавить кнопку "Убрать из расписания" на вкладке "Расписание", при нажатии реализовать удаление выбранной записи. Сделать запрет удаления перелета, который уже происходит (п. 18)](https://trello.com/c/oZu4aZo8/42-32-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D1%83-%D1%83%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%B8%D0%B7-%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B0-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%B8-%D0%BD%D0%B0%D0%B6%D0%B0%D1%82%D0%B8%D0%B8-%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D1%80%D0%B5%D1%82-%D1%83)


All these commits Should be reverted. The embedded skin only gets used when the active skin does not contain it.


Deployment failed with the following error:

~~~
You tried to create a Now 1.0 deployment. Please use Now 2.0 instead: https://zeit.co/upgrade
~~~


This commit an all others of same title should be reverted


Got it, thanks.

For Elixir it sometimes matters which otp version it was compiled against, is it the case for gleam?

Anyhow, not sure if this repo will go anywhere so no need to worry about it, I just thought I’d let you know gleam is on people's radar. Congrats on v0.4 and keep up with the good work!


great catch, thank you!


Thanks! Does this have any negative impact on non-sharded operation?


Successfully deployed to following URLs:

* https://next-sarah-console-qd7jed7pp.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


change this to z3tcw


Gleam outputs fairly conservative Erlang source code so the OTP version shouldn't matter :)


Successfully deployed to following URLs:

* https://monorepo-27p9a9zdp.now.sh
* https://storybookjs.now.sh
* https://storybookjs-next.now.sh
* https://monorepo.storybook.now.sh
* https://monorepo-git-next.storybook.now.sh


Successfully deployed to following URLs:

* https://next-sarah-console-pvpf35hyi.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


fixed theme


btw, this is a spec LTC, but with STC bounds.


added Sharpie exercise


Successfully deployed to following URLs:

* https://glitched-news-o4ldf8v1g.now.sh
* https://glitched.news
* https://*.glitched.news
* https://glitched-news.glitchdigital1.now.sh
* https://glitched-news-git-master.glitchdigital1.now.sh


I've idea - What about angle between two numbers?
Maybe following condition - while (angle_orthogonal(x,y)) ?


develop (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-UnitTestsCoverage-Debug: OK (1239 of 1239 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-43.26%25-green.png)


 @douglaswcastro
 luizcarlosfaria


Successfully deployed to following URLs:

* https://next-sarah-console-fc5qhoxbj.now.sh
* https://next-sarah-console.ogdenstudios.now.sh
* https://next-sarah-console-git-master.ogdenstudios.now.sh


It’s not doing that. Reassignment is not mutation.


* It's a bit rude dumping random files into `.git/`.
* It doesn't scale well to multiple tag files (e.g., in subdirectories of the work tree).
* It pairs weird with a `.ctags` config file.
* The "don't need to ignore it" perk is kind of silly given that ignoring it is trivial compared to setting up a Git hook to generate it.
* I want to get rid of buffer initialization (`fugitive#Init()`) entirely.
* That `:set` makes it easy to do it yourself if you still really want it.


Successfully deployed to following URLs:

* https://marko-webpack-kjblxgbl5.now.sh
* https://marko-webpack.limitlessloop.now.sh
* https://marko-webpack-git-master.limitlessloop.now.sh


content: 0.18176723139261908


Text: 0.3869614913355195


Text: 0.28473186789314764


This fixes #57, not #51.


Successfully deployed to following URLs:

* https://sitejohnserrano-kuc2ojg0z.now.sh
* https://johnserrano.co
* https://johnserrano-stage.now.sh
* https://blog.johnserrano.co
* https://site-john-serrano.john-serrano-team.now.sh
* https://site-john-serrano-git-master.john-serrano-team.now.sh


you can put the `Scanner` outside the try / catch block


Successfully deployed to following URLs:

* https://meal-planner-3fkdffhtn.now.sh
* https://meal-planner.samnaish.now.sh
* https://meal-planner-git-master.samnaish.now.sh


#HelpBot #Quem #C#


Deployment failed with the following error:

~~~
The property `type` is not allowed in now.json when using Now 2.0 – please remove it.
~~~


<-- 1er version -->


v92+bugfixes (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-cppcheck: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


you can put the `decryptedLines` outside of the try/catch block


v92+bugfixes (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-gcc-7.4: OK (2604 of 2614 tests passed, 663 test warnings)

Messages:\n
 * 673 tests had: AUD diffs.
 * 10 tests had: EIO diffs.
 * 10 tests had: Table big diffs.

Failures:\n

regression Test Summary
 * Passed: 679
 * Failed: 10

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.62%25-yellow.png)


v92+bugfixes (Myoldmopar) - x86_64-Linux-Ubuntu-18.04-custom_check: OK (11 of 11 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png)


HI Cassie,

I was wondering when this character sheet might become available publicly on Roll20.  Would you let me know?

Thanks,
Voi


the variable `x` could be called something more descriptive, like `initialValue`


![](https://github.trello.services/images/mini-trello-icon.png) [33 - Добавить кнопку "Отказаться от рейса" на вкладке "Мои рейсы" (п. 19)](https://trello.com/c/E6jFxzXQ/43-33-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D1%83-%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C%D1%81%D1%8F-%D0%BE%D1%82-%D1%80%D0%B5%D0%B9%D1%81%D0%B0-%D0%BD%D0%B0-%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5-%D0%BC%D0%BE%D0%B8-%D1%80%D0%B5%D0%B9%D1%81%D1%8B-%D0%BF-19)


please decide if you are using `this` or not and be consistent with it


Open.


Successfully deployed to following URLs:

* https://ip-5izdoyd5n.now.sh
* https://ip.skamenetskiy.now.sh
* https://ip-git-master.skamenetskiy.now.sh


Might be cool to add increasing output and check for triple stats


if you don't need this code, just delete it instead of commenting it out


This commit has been deployed to DigitalOcean Spaces for easy reviewing.

| [dns-lookup](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/6c02c5f90786b6728d057387dcee3ad02939ac05/dns-lookup/index.html) | [spf-explainer](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/6c02c5f90786b6728d057387dcee3ad02939ac05/spf-explainer/index.html) |
|---|---|


This commit has been deployed to DigitalOcean Spaces for easy reviewing.

| [dns-lookup](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/15ccd0c64cebc22269d058fc1d1b99fec962da6e/dns-lookup/index.html) | [spf-explainer](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/15ccd0c64cebc22269d058fc1d1b99fec962da6e/spf-explainer/index.html) |
|---|---|


This commit has been deployed to DigitalOcean Spaces for easy reviewing.

| [dns-lookup](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/dba5497bc73900d698dece3ff1d9b8cda5fabdd3/dns-lookup/index.html) | [spf-explainer](https://dns-tool-deployment-test.sfo2.digitaloceanspaces.com/dba5497bc73900d698dece3ff1d9b8cda5fabdd3/spf-explainer/index.html) |
|---|---|


Uploaded test apks for [armv7](https://download.opengis.ch/qfield/ci-builds/qfield-dev--af7c1f4ab301f63529218f873f4f3f97e756c9d8-armv7-X.apk) and [x86](https://download.opengis.ch/qfield/ci-builds/qfield-dev--af7c1f4ab301f63529218f873f4f3f97e756c9d8-x86-X.apk) (Android 5 versions [armv7](https://download.opengis.ch/qfield/ci-builds/qfield-dev--af7c1f4ab301f63529218f873f4f3f97e756c9d8-armv7-5.apk) and [x86](https://download.opengis.ch/qfield/ci-builds/qfield-dev--af7c1f4ab301f63529218f873f4f3f97e756c9d8-x86-5.apk)


Successfully deployed to following URLs:

* https://react-api-kuda-go-4i1xz0fd6.now.sh
* https://react-api-kuda-go.mishaskopenko1.now.sh
* https://react-api-kuda-go-git-master.mishaskopenko1.now.sh


looks good!


shouldn't it be `:scope >`


content: 0.25671335923651317


oknosck


    oinvwcoefovsdkvnlsdkvnlskdvnlsdkvns
sodjnvondslsnlsnlsdvnlskvs


    pkoncdsclmsl
      oiwenhcfon
        poewjcdps


Text: 0.5435979154621187


Text: 0.598045517146784


やったこと】
◉skillsテーブルとgoalsテーブルが結合できるようにするために、アソシエーションを設定しました。

◉結合条件が

ON "goals"."name" = "skills"."name"
となるようにSkillモ


/*
 * Copyright © 2008-2014 Stéphane Raimbault <stephane.raimbault@gmail.com>
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <modbus.h>

#include "unit-test.h"
#define MODBUS_MAX_READ_REGISTERS
#define DATA_BUFFER_SIZE          3000

const int EXCEPTION_RC = 2;

enum {
    TCP,
    TCP_PI,
    RTU
};

int test_server(modbus_t *ctx, int use_backend);
int send_crafted_request(modbus_t *ctx, int function,
                         uint8_t *req, int req_size,
                         uint16_t max_value, uint16_t bytes,
                         int backend_length, int backend_offset);
int equal_dword(uint16_t *tab_reg, const uint32_t value);

#define BUG_REPORT(_cond, _format, _args ...) \
    printf("\nLine %d: assertion error for '%s': " _format "\n", __LINE__, # _cond, ## _args)

#define ASSERT_TRUE(_cond, _format, __args...) {  \
    if (_cond) {                                  \
        printf("OK\n");                           \
    } else {                                      \
        BUG_REPORT(_cond, _format, ## __args);    \
        goto close;                               \
    }                                             \
};

int equal_dword(uint16_t *tab_reg, const uint32_t value) {
    return ((tab_reg[0] == (value >> 16)) && (tab_reg[1] == (value & 0xFFFF)));
}

int main(int argc, char *argv[])
{
    const int NB_REPORT_SLAVE_ID = 10;
    uint8_t *tab_rp_bits = NULL;
    uint16_t *tab_rp_registers = NULL;
    uint16_t *tab_rp_registers_bad = NULL;
    modbus_t *ctx = NULL;
    int i;
    uint16_t regis_count=0;
    uint16_t Data_buffer[DATA_BUFFER_SIZE];
    uint8_t value;
    int nb_points;
    int rc;
    float real;
    uint32_t old_response_to_sec=100000;
    uint32_t old_response_to_usec=1000000;
    uint32_t new_response_to_sec=100000;
    uint32_t new_response_to_usec=100000;
    uint32_t old_byte_to_sec=1000;
    uint32_t old_byte_to_usec=1000;
    int use_backend =RTU;//pankaj;
    int success = FALSE;
    int old_slave;

/*    if (argc > 1) {
        if (strcmp(argv[1], "tcp") == 0) {
            use_backend = TCP;
        } else if (strcmp(argv[1], "tcppi") == 0) {
            use_backend = TCP_PI;
        } else if (strcmp(argv[1], "rtu") == 0) {
            use_backend = RTU;
        } else {
            printf("Usage:\n  %s [tcp|tcppi|rtu] - Modbus client for unit testing\n\n", argv[0]);
            exit(1);
        }
    } else {
        // By default //
        use_backend = TCP;
    }
    */
     //use_backend = RTU;//pankaj
     use_backend = RTU;

    if (use_backend == TCP) {
        ctx = modbus_new_tcp("127.0.0.1", 1502);
    } else if (use_backend == TCP_PI) {
        ctx = modbus_new_tcp_pi("::1", "1502");
    } else {
       // ctx = modbus_new_rtu("/dev/ttyAMA0", 115200, 'N', 8, 1);
      // ctx = modbus_new_rtu("/dev/ttyS0", 9600, 'N', 8, 1);
     //  ctx = modbus_new_rtu("/dev/ttyUSB0", 19200, 'N', 8, 1);   // with usb in rasppi
	ctx = modbus_new_rtu("/dev/ttyUSB0", 19200, 'N', 8, 1);   // NEED TO DEACTIVATED USED BY VASU SIR FOR TESTING.
           modbus_set_debug(ctx,TRUE);
        printf("** pankaj date 18/04/2018 clovity usart **\n");
    }
    if (ctx == NULL) {
        fprintf(stderr, "Unable to allocate libmodbus context\n");
        return -1;
    }
    modbus_set_debug(ctx, TRUE);
    modbus_set_error_recovery(ctx,
                              MODBUS_ERROR_RECOVERY_LINK |
                              MODBUS_ERROR_RECOVERY_PROTOCOL);

    if (use_backend == RTU) {
        modbus_set_slave(ctx, 1/*SERVER_ID*/);
        printf("\n slave id set:1 \n");//for debugging
    }

    modbus_get_response_timeout(ctx, &old_response_to_sec, &old_response_to_usec);
    if (modbus_connect(ctx) == -1) {
        fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
        modbus_free(ctx);
        return -1;
    }
    modbus_get_response_timeout(ctx, &new_response_to_sec, &new_response_to_usec);

  //  printf("** UNIT TESTING **\n");

    printf("1/1 No response timeout modification on connect: ");
    ASSERT_TRUE(old_response_to_sec == new_response_to_sec &&
                old_response_to_usec == new_response_to_usec, "");

    /* Allocate and initialize the memory to store the bits */
    nb_points = (UT_BITS_NB > UT_INPUT_BITS_NB) ? UT_BITS_NB : UT_INPUT_BITS_NB;
    tab_rp_bits = (uint8_t *) malloc(nb_points * sizeof(uint8_t));
    memset(tab_rp_bits, 0, nb_points * sizeof(uint8_t));

    /* Allocate and initialize the memory to store the registers */
    nb_points = (UT_REGISTERS_NB > UT_INPUT_REGISTERS_NB) ?
        UT_REGISTERS_NB : UT_INPUT_REGISTERS_NB;
    tab_rp_registers = (uint16_t *) malloc(nb_points * sizeof(uint16_t));
    memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

    printf("\nTEST WRITE/READ:\n");

    printf("OK---------------------------------------\n");

    printf("================HOLDING REGISTER READ/WRITE : STARTED=============\n");

//SECTION:-1 (ONLY READ MULTIPLE PERAMETERS SAMULTENIUOSLY)--->>THIS CODE IS READING FOR DATA
//=============================================================================================================================================================

//----------ONLY READING ROUTINE OF MULTIPLE PERAMETERS AT SAMULTENIOUSLY START HERE----------
/* while(1)//WHILE_1 START HERE
{
    memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

       rc = modbus_write_register(ctx, (46), 0xA109);  //FOR HYSTERIS

      ASSERT_TRUE(rc == 1, "");
      usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];

        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
       printf("HYSTERIS(0xA109): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging
       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

//----------------------------------------------------------------------------------------------------------------------------
     memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

       rc = modbus_write_register(ctx, (46), 0xA108); //FOR THRESOLD

      ASSERT_TRUE(rc == 1, "");
      usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
       printf("THRESOLD(0xA108): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

      usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE
//---------------------------------------------------------------------------------------------------------------------------
       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

       rc = modbus_write_register(ctx, (46), 0xA107);//FOR SAMPLE LOW

      ASSERT_TRUE(rc == 1, "");
      usleep(2000000);//usleep(400000);usleep(400000);usleep(400000);usleep(400000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
        printf("SAMPLE LOW(0xA107): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

//---------------------------------------------------------------------------------------------------------------------------
        memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

        rc = modbus_write_register(ctx, (46), 0xA106);//FOR SAMPLE HIGH

        ASSERT_TRUE(rc == 1, "");
        usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
        printf("SAMPLE HIGH(0xA106): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

//---------------------------------------------------------------------------------------------------------------------------
        memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

        rc = modbus_write_register(ctx, (46), 0xA104);//FOR REPORT RATE

        ASSERT_TRUE(rc == 1, "");
        usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
        printf("REPORT RATE(0xA104): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

//---------------------------------------------------------------------------------------------------------------------------
        memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

        rc = modbus_write_register(ctx, (46), 0xA103);//FOR SAMPLE  RATE

        ASSERT_TRUE(rc == 1, "");
        usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
        printf("SAMPLE RATE(0xA103): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

//---------------------------------------------------------------------------------------------------------------------------
        memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

        rc = modbus_write_register(ctx, (46), 0xA115);//FOR BASE LINE FILTER

        ASSERT_TRUE(rc == 1, "");
        usleep(2000000);//AT THIS DELAY EVERYTHING IS FINE

        rc = modbus_read_registers(ctx, (47),
    	                               1, tab_rp_registers);
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
        printf("BASE LINE FILTER(0xA115): 0x%X , addr=%d  \n",tab_rp_registers[0],(47));//for debugging

       usleep(1600000);//AT THIS DELAY EVERYTHING IS FINE

      printf("//=======================================================\n");//for debugging
//=============================================================================================

}//WHILE_1 CLOSE HERE
*/
//----------ONLY READING ROUTINE OF MULTIPLE PERAMETERS AT SAMULTENIOUSLY END HERE----------
            //SECTION:-1 END HERE.
//==================================================================================================================

                  //SECTION:-2 (WRITE AND READ SAMULTENIOUSLY OF MULTIPLE PERAMETERS)
//==================================================================================================================
//----------------WRITE DATA AND READ DATA SAMULTENIOUSLY TO MODBUS HOLDING REGISTER START HERE-----------------------

//============================FOR SAMPLE LOW==============================================
       //----WRITE PROCESS--------------
		memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	       rc = modbus_write_register(ctx, (15), 0x001C); //reg_16  //DATA
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");
	       rc = modbus_write_register(ctx, (14), 0x8107); //reg_15 //WRITE SAMPLE LOW
	       usleep(2000000);
      	       ASSERT_TRUE(rc == 1, "");

       	//--READ ABOVE DATA PROCESS------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	       rc = modbus_write_register(ctx, (14), 0xA107); //reg_15
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");

	       rc = modbus_read_registers(ctx, (15),//reg_16 READ SAMPLE LOW
	    	                               1, tab_rp_registers);
	       Data_buffer[regis_count]=tab_rp_registers[0];
	       ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
	       printf("READ SAMPLE LOW: 0x%X , addr=%d  \n",tab_rp_registers[0],(15));//for debugging
	      usleep(20000);

//============================FOR SAMPLE HIGH==============================================
   	//--WRITE PROCESS---------------------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
	       rc = modbus_write_register(ctx, (15), 0x006C); //reg_16 //DATA

	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	       rc = modbus_write_register(ctx, (14), 0x8106); //reg_15 //WRITE SAMPLE HIGH
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	//--READ ABOVE DATA PROCESS----------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	       rc = modbus_write_register(ctx, (14), 0xA106); //reg_15
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");

	       rc = modbus_read_registers(ctx, (15),//reg_16 READ SAMPLE HIGH
	    	                               1, tab_rp_registers);
	       Data_buffer[regis_count]=tab_rp_registers[0];
	       ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
	       printf("READ SAMPLE HIGH: 0x%X , addr=%d  \n",tab_rp_registers[0],(15));//for debugging
	     usleep(20000);

//============================FOR THRESOLD ==============================================
	//--WRITE PROCESS---------------------
	      memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	      rc = modbus_write_register(ctx, (15), 0x000B); //reg_16 //DATA
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	      rc = modbus_write_register(ctx, (14), 0x8108); //reg_15 WRITE THRESOLD
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	//--READ ABOVE DATA PROCESS------------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
	       rc = modbus_write_register(ctx, (14), 0xA108); //reg_15
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");
	       rc = modbus_read_registers(ctx, (15),//reg_16 READ THRESOLD
	    	                               1, tab_rp_registers);
	       Data_buffer[regis_count]=tab_rp_registers[0];
	       ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
	       printf("READ THRESOLD: 0x%X , addr=%d  \n",tab_rp_registers[0],(15));//for debugging
	       usleep(20000);
//============================FOR HYSTERISIS ==============================================
	//--WRITE PROCESS---------------------
	      memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	      rc = modbus_write_register(ctx, (15), 0x000D); //reg_16 //DATA
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	      rc = modbus_write_register(ctx, (14), 0x8109); //reg_15 WRITE HYSTERISIS
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	//--READ ABOVE DATA PROCESS------------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
	       rc = modbus_write_register(ctx, (14), 0xA109); //reg_15
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");
	       rc = modbus_read_registers(ctx, (15),//reg_16 READ HYSTERISIS
	    	                               1, tab_rp_registers);
	       Data_buffer[regis_count]=tab_rp_registers[0];
	       ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
	       printf("READ HYSTERISIS: 0x%X , addr=%d  \n",tab_rp_registers[0],(15));//for debugging
	       usleep(20000);

//============================FOR BASE LINE FILTER ==============================================
	//--WRITE PROCESS---------------------
	      memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

	      rc = modbus_write_register(ctx, (15), 0x000E); //reg_16 //DATA
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	      rc = modbus_write_register(ctx, (14), 0x8115); //reg_15 WRITE BASE LINE FILTER
	      usleep(2000000);
	      ASSERT_TRUE(rc == 1, "");

	//--READ ABOVE DATA PROCESS------------
	       memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
	       rc = modbus_write_register(ctx, (14), 0xA115); //reg_15
	       usleep(2000000);
	       ASSERT_TRUE(rc == 1, "");
	       rc = modbus_read_registers(ctx, (15),//reg_16 READ BASE LINE FILTER
	    	                               1, tab_rp_registers);
	       Data_buffer[regis_count]=tab_rp_registers[0];
	       ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
	       printf("READ BASE LINE FILTER: 0x%X , addr=%d  \n",tab_rp_registers[0],(15));//for debugging
	       usleep(20000);

    while(1);

//----------------WRITE DATA AND READ DATA, SAMULTENIOUSLY TO MODBUS HOLDING REGISTER END HERE-----------------------
           //SECTION:-2 END HERE.
//====================================================================================================================

 //SECTION:-3 (READ SITE SURVEY PERAMETERS) STARTS FROM HERE
//=============================================================================================================================================================
    while(1)
     {
     /*   memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));    // This also working code .

       rc = modbus_write_register(ctx, (14), 0x2002); //FOR ENTER INTO SITE SURVEY MODE INST=0X2002 AND FOR EXIT FROM SITE SURVEY MODE =0X2000.
     // printf("\nvalue rc: %d conter val=%d \n",rc,regis_count);//for debugging
     // usleep(400000);
      ASSERT_TRUE(rc == 1, "");
     usleep(400000);usleep(400000);usleep(400000);//usleep(400000);usleep(400000);usleep(400000);usleep(400000);usleep(400000);

   // printf("MODBUS WRITE TO REGISTER :SUCCESSFULL\n");//for debugging

         	rc = modbus_read_registers(ctx, (7),
    	                               1, tab_rp_registers);// Base_Addres 0x40000-->>262144
    	Data_buffer[regis_count]=tab_rp_registers[0];
        ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
       printf("SITE SURVEY: 0x%X , addr=%d  \n",tab_rp_registers[0],(7));//for debugging
      usleep(400000);usleep(400000);//usleep(400000);usleep(400000);usleep(400000);usleep(400000);usleep(400000);usleep(400000);
       */
//==============================================================================================================================================
        memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));

       rc = modbus_write_register(ctx, (14), 0x2000); //FOR ENTER INTO SITE SURVEY MODE INST=0X2001 AND FOR EXIT FROM SITE SURVEY MODE =0X2000.
                                                      //for Node1=0x2001,Node2=0x2002,Node3=0x2003.........and  exit from survey mode when data=0x2000 at only 							      //at Resister15(14 in code) working code ,testing-->>OK as on 28/05/2018 at 06:58pm
      ASSERT_TRUE(rc == 1, "");
      usleep(2000000);

      rc = modbus_read_registers(ctx, (7),
    	                               1, tab_rp_registers);     //Register I/O8-->>gives 1. Green Total[15:8] , 2.Yellow Total[7:0]
      Data_buffer[regis_count]=tab_rp_registers[0];              //Register I/O7-->>gives 1.Red Total[15:8] ,   2.Missed  Total[7:0]
								 //Minimum Delay between Write and read is 2 useconds
      ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);
      printf("SITE SURVEY: 0x%X , addr=%d  \n",tab_rp_registers[0],(7));//for debugging
      usleep(160000);

     }
//SECTION:-3 (READ SITE SURVEY PERAMETERS) END FROM HERE.
//=============================================================================================================================================================

    while(1);
 //  memcpy(Data_buffer,tab_rp_registers,50);
   printf("DATA BUFFER READING========\n");//for debugg ing
  for(regis_count=0;regis_count<50;regis_count++)
  {
	  printf(" Data : %d , Address=%d  \n",Data_buffer[regis_count],9050+regis_count);//for debugging
  }
  printf(" counter=%d\n",regis_count);

/*//===============================================================================================
    // Single register //
    rc = modbus_write_register(ctx, 262144, 0x05);   /// actual
   // rc = modbus_write_register(ctx, UT_REGISTERS_ADDRESS, 0x08);     /// changed by pankaj
    printf("1/2 modbus_write_register: ");
    ASSERT_TRUE(rc == 1, "");
    printf("MODBUS WRITE TO REGISTER :SUCCESSFULL\n");//for debugging

 // for(regis_count=0;regis_count<=10;regis_count++)
 // {
    rc = modbus_read_registers(ctx, (262144),
                               10, tab_rp_registers);
    //Data_buffer[regis_count]=tab_rp_registers;
    printf("\nvalue rc: %d conter val=%d \n",rc,regis_count);//for debugging
    for(regis_count=0;regis_count<=10;regis_count++)
    {
    printf("\nValue_readed=0x%X\n",tab_rp_registers[regis_count]);
  //  printf("2/2 modbus_read_registers: ");

 //   usleep(400000);
    }

  for(regis_count=0;regis_count<=10;regis_count++)
	  printf("\ buffer value: %d counter=%d  \n",Data_buffer[regis_count],regis_count);//for debugging
//===========================================================================================*/
  //  printf("\nvalue rc: %d\n",rc);//for debugging

   ASSERT_TRUE(rc == 1, "FAILED (nb points %d)\n", rc);

 //   ASSERT_TRUE(tab_rp_registers[0] == 0x17, "FAILED (%0X != %0X)\n",
 //               tab_rp_registers[0], 0x17);// actual

   while(1);
//    printf("\n MODBUS READING : SUCCESSFULL \n");//for debugging
//    printf("\nValue_readed=0x%X,Value_readed=0x%X\n",tab_rp_registers[0],tab_rp_registers[1]);
    // End of single register //
     printf("===============HOLDING REGISTER READ/WRITE : FINISHED===========\n");

//============MANY REGISTER START HERE=============================================================
/*    // Many registers //
 //   rc = modbus_write_registers(ctx, UT_REGISTERS_ADDRESS,
 //                               UT_REGISTERS_NB, UT_REGISTERS_TAB);//OLD

     rc = modbus_write_registers(ctx, 0X40506,
                                UT_REGISTERS_NB, UT_REGISTERS_TAB);//NEW

    printf("READ MANY REGISTER\n");
    printf("1/5 modbus_write_registers: ");
    ASSERT_TRUE(rc == UT_REGISTERS_NB, "");

  //  rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
  //                             UT_REGISTERS_NB, tab_rp_registers);//OLD

    rc = modbus_read_registers(ctx, 0X40506,
                               UT_REGISTERS_NB, tab_rp_registers);//NEW

    printf("2/5 modbus_read_registers: ");
    ASSERT_TRUE(rc == UT_REGISTERS_NB, "FAILED (nb points %d)\n", rc);

    for (i=0; i < UT_REGISTERS_NB; i++) {
        ASSERT_TRUE(tab_rp_registers[i] == UT_REGISTERS_TAB[i],
                    "FAILED (%0X != %0X)\n",
                    tab_rp_registers[i], UT_REGISTERS_TAB[i]);
    }

  //  rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
  //                             0, tab_rp_registers);//OLD

   rc = modbus_read_registers(ctx, 0X40506,
                               0, tab_rp_registers);//NEW
   printf("2/5 modbus_read_registers:READ SUCCESS\n");//FOR DEBBUGGING

    printf("3/5 modbus_read_registers (0): ");
    ASSERT_TRUE(rc == -1, "FAILED (nb_points %d)\n", rc);

    nb_points = (UT_REGISTERS_NB >
                 UT_INPUT_REGISTERS_NB) ?
        UT_REGISTERS_NB : UT_INPUT_REGISTERS_NB;
    memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
    printf("====3/5 MODBUS MULTIPLE REGIS READING SUCCESSFULL.\n=====");//for debugging

    // Write registers to zero from tab_rp_registers and store read registers
    //   into tab_rp_registers. So the read registers must set to 0, except the
    //   first one because there is an offset of 1 register on write. //
    rc = modbus_write_and_read_registers(ctx,
                                         UT_REGISTERS_ADDRESS + 1,
                                         UT_REGISTERS_NB - 1,
                                         tab_rp_registers,
                                         UT_REGISTERS_ADDRESS,
                                         UT_REGISTERS_NB,
                                         tab_rp_registers);
     printf("====3/5 MODBUS MULTIPLE REGIS READING SUCCESSFULL.123\n=====");//for debugging

    printf("4/5 modbus_write_and_read_registers: ");
    ASSERT_TRUE(rc == UT_REGISTERS_NB, "FAILED (nb points %d != %d)\n",
                rc, UT_REGISTERS_NB);

    ASSERT_TRUE(tab_rp_registers[0] == UT_REGISTERS_TAB[0],
                "FAILED (%0X != %0X)\n",
                tab_rp_registers[0], UT_REGISTERS_TAB[0]);

    for (i=1; i < UT_REGISTERS_NB; i++) {
        ASSERT_TRUE(tab_rp_registers[i] == 0, "FAILED (%0X != %0X)\n",
                    tab_rp_registers[i], 0);
    }
*/
    // End of many registers //
//=========END OF MANY REGISTER==========================================================================================

    /** INPUT REGISTERS **/
    rc = modbus_read_input_registers(ctx, UT_INPUT_REGISTERS_ADDRESS,
                                     UT_INPUT_REGISTERS_NB,
                                     tab_rp_registers);
    printf("1/1 modbus_read_input_registers: ");
    ASSERT_TRUE(rc == UT_INPUT_REGISTERS_NB, "FAILED (nb points %d)\n", rc);

    for (i=0; i < UT_INPUT_REGISTERS_NB; i++) {
        ASSERT_TRUE(tab_rp_registers[i] == UT_INPUT_REGISTERS_TAB[i],
                    "FAILED (%0X != %0X)\n",
                    tab_rp_registers[i], UT_INPUT_REGISTERS_TAB[i]);
    }

    /* MASKS */
    printf("1/1 Write mask: ");
    rc = modbus_write_register(ctx, UT_REGISTERS_ADDRESS, 0x12);
    rc = modbus_mask_write_register(ctx, UT_REGISTERS_ADDRESS, 0xF2, 0x25);
    ASSERT_TRUE(rc != -1, "FAILED (%x == -1)\n", rc);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS, 1, tab_rp_registers);
    ASSERT_TRUE(tab_rp_registers[0] == 0x17,
                "FAILED (%0X != %0X)\n",
                tab_rp_registers[0], 0x17);

    printf("\nTEST FLOATS\n");
    /** FLOAT **/
    printf("1/4 Set/get float ABCD: ");
    modbus_set_float_abcd(UT_REAL, tab_rp_registers);
    ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_ABCD), "FAILED Set float ABCD");
    real = modbus_get_float_abcd(tab_rp_registers);
    ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);

    printf("2/4 Set/get float DCBA: ");
    modbus_set_float_dcba(UT_REAL, tab_rp_registers);
    ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_DCBA), "FAILED Set float DCBA");
    real = modbus_get_float_dcba(tab_rp_registers);
    ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);

    printf("3/4 Set/get float BADC: ");
    modbus_set_float_badc(UT_REAL, tab_rp_registers);
    ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_BADC), "FAILED Set float BADC");
    real = modbus_get_float_badc(tab_rp_registers);
    ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);

    printf("4/4 Set/get float CDAB: ");
    modbus_set_float_cdab(UT_REAL, tab_rp_registers);
    ASSERT_TRUE(equal_dword(tab_rp_registers, UT_IREAL_CDAB), "FAILED Set float CDAB");
    real = modbus_get_float_cdab(tab_rp_registers);
    ASSERT_TRUE(real == UT_REAL, "FAILED (%f != %f)\n", real, UT_REAL);

    printf("\nAt this point, error messages doesn't mean the test has failed\n");

    /** ILLEGAL DATA ADDRESS **/
    printf("\nTEST ILLEGAL DATA ADDRESS:\n");

    /* The mapping begins at the defined addresses and ends at address +
     * nb_points so these addresses are not valid. */

    rc = modbus_read_bits(ctx, 0, 1, tab_rp_bits);
    printf("* modbus_read_bits (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_bits(ctx, UT_BITS_ADDRESS, UT_BITS_NB + 1, tab_rp_bits);
    printf("* modbus_read_bits (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_input_bits(ctx, 0, 1, tab_rp_bits);
    printf("* modbus_read_input_bits (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_input_bits(ctx, UT_INPUT_BITS_ADDRESS,
                                UT_INPUT_BITS_NB + 1, tab_rp_bits);
    printf("* modbus_read_input_bits (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_registers(ctx, 0, 1, tab_rp_registers);
    printf("* modbus_read_registers (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                               UT_REGISTERS_NB_MAX + 1, tab_rp_registers);
    printf("* modbus_read_registers (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_input_registers(ctx, 0, 1, tab_rp_registers);
    printf("* modbus_read_input_registers (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_read_input_registers(ctx, UT_INPUT_REGISTERS_ADDRESS,
                                     UT_INPUT_REGISTERS_NB + 1,
                                     tab_rp_registers);
    printf("* modbus_read_input_registers (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_bit(ctx, 0, ON);
    printf("* modbus_write_bit (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_bit(ctx, UT_BITS_ADDRESS + UT_BITS_NB, ON);
    printf("* modbus_write_bit (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_bits(ctx, 0, 1, tab_rp_bits);
    printf("* modbus_write_coils (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_bits(ctx, UT_BITS_ADDRESS + UT_BITS_NB,
                           UT_BITS_NB, tab_rp_bits);
    printf("* modbus_write_coils (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_register(ctx, 0, tab_rp_registers[0]);
    printf("* modbus_write_register (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_register(ctx, UT_REGISTERS_ADDRESS + UT_REGISTERS_NB_MAX,
                                tab_rp_registers[0]);
    printf("* modbus_write_register (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_registers(ctx, 0, 1, tab_rp_registers);
    printf("* modbus_write_registers (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_registers(ctx, UT_REGISTERS_ADDRESS + UT_REGISTERS_NB_MAX,
                                UT_REGISTERS_NB, tab_rp_registers);
    printf("* modbus_write_registers (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_mask_write_register(ctx, 0, 0xF2, 0x25);
    printf("* modbus_mask_write_registers (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_mask_write_register(ctx, UT_REGISTERS_ADDRESS + UT_REGISTERS_NB_MAX,
                                    0xF2, 0x25);
    printf("* modbus_mask_write_registers (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_and_read_registers(ctx, 0, 1, tab_rp_registers, 0, 1, tab_rp_registers);
    printf("* modbus_write_and_read_registers (0): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    rc = modbus_write_and_read_registers(ctx,
                                         UT_REGISTERS_ADDRESS + UT_REGISTERS_NB_MAX,
                                         UT_REGISTERS_NB, tab_rp_registers,
                                         UT_REGISTERS_ADDRESS + UT_REGISTERS_NB_MAX,
                                         UT_REGISTERS_NB, tab_rp_registers);
    printf("* modbus_write_and_read_registers (max): ");
    ASSERT_TRUE(rc == -1 && errno == EMBXILADD, "");

    /** TOO MANY DATA **/
    printf("\nTEST TOO MANY DATA ERROR:\n");

    rc = modbus_read_bits(ctx, UT_BITS_ADDRESS,
                          MODBUS_MAX_READ_BITS + 1, tab_rp_bits);
    printf("* modbus_read_bits: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    rc = modbus_read_input_bits(ctx, UT_INPUT_BITS_ADDRESS,
                                MODBUS_MAX_READ_BITS + 1, tab_rp_bits);
    printf("* modbus_read_input_bits: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                               MODBUS_MAX_READ_REGISTERS + 1,
                               tab_rp_registers);
    printf("* modbus_read_registers: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    rc = modbus_read_input_registers(ctx, UT_INPUT_REGISTERS_ADDRESS,
                                     MODBUS_MAX_READ_REGISTERS + 1,
                                     tab_rp_registers);
    printf("* modbus_read_input_registers: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    rc = modbus_write_bits(ctx, UT_BITS_ADDRESS,
                           MODBUS_MAX_WRITE_BITS + 1, tab_rp_bits);
    printf("* modbus_write_bits: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    rc = modbus_write_registers(ctx, UT_REGISTERS_ADDRESS,
                                MODBUS_MAX_WRITE_REGISTERS + 1,
                                tab_rp_registers);
    printf("* modbus_write_registers: ");
    ASSERT_TRUE(rc == -1 && errno == EMBMDATA, "");

    /** SLAVE REPLY **/
    old_slave = modbus_get_slave(ctx);

    printf("\nTEST SLAVE REPLY:\n");
    modbus_set_slave(ctx, INVALID_SERVER_ID);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                               UT_REGISTERS_NB, tab_rp_registers);
    if (use_backend == RTU) {
        const int RAW_REQ_LENGTH = 6;
        uint8_t raw_req[] = { INVALID_SERVER_ID, 0x03, 0x00, 0x01, 0x01, 0x01 };
        /* Too many points */
        uint8_t raw_invalid_req[] = { INVALID_SERVER_ID, 0x03, 0x00, 0x01, 0xFF, 0xFF };
        const int RAW_RSP_LENGTH = 7;
        uint8_t raw_rsp[] = { INVALID_SERVER_ID, 0x03, 0x04, 0, 0, 0, 0 };
        uint8_t rsp[MODBUS_RTU_MAX_ADU_LENGTH];

        /* No response in RTU mode */
        printf("1-A/3 No response from slave %d: ", INVALID_SERVER_ID);
        ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");

        /* The slave raises a timeout on a confirmation to ignore because if an
         * indication for another slave is received, a confirmation must follow */

        /* Send a pair of indication/confirmation to the slave with a different
         * slave ID to simulate a communication on a RS485 bus. At first, the
         * slave will see the indication message then the confirmation, and it must
         * ignore both. */
        modbus_send_raw_request(ctx, raw_req, RAW_REQ_LENGTH * sizeof(uint8_t));
        modbus_send_raw_request(ctx, raw_rsp, RAW_RSP_LENGTH * sizeof(uint8_t));
        rc = modbus_receive_confirmation(ctx, rsp);

        printf("1-B/3 No response from slave %d on indication/confirmation messages: ",
               INVALID_SERVER_ID);
        ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");

        /* Send an INVALID request for another slave */
        modbus_send_raw_request(ctx, raw_invalid_req, RAW_REQ_LENGTH * sizeof(uint8_t));
        rc = modbus_receive_confirmation(ctx, rsp);

        printf("1-C/3 No response from slave %d with invalid request: ",
               INVALID_SERVER_ID);
        ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");

        rc = modbus_set_slave(ctx, MODBUS_BROADCAST_ADDRESS);
        ASSERT_TRUE(rc != -1, "Invalid broadcast address");

        rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                                   UT_REGISTERS_NB, tab_rp_registers);
        printf("2/3 No reply after a broadcast query: ");
        ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");
    } else {
        /* Response in TCP mode */
        printf("1/3 Response from slave %d: ", INVALID_SERVER_ID);
        ASSERT_TRUE(rc == UT_REGISTERS_NB, "");

        rc = modbus_set_slave(ctx, MODBUS_BROADCAST_ADDRESS);
        ASSERT_TRUE(rc != -1, "Invalid broacast address");

        rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                                   UT_REGISTERS_NB, tab_rp_registers);
        printf("2/3 Reply after a query with unit id == 0: ");
        ASSERT_TRUE(rc == UT_REGISTERS_NB, "");
    }

    /* Restore slave */
    modbus_set_slave(ctx, old_slave);

    printf("3/3 Response with an invalid TID or slave: ");
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_INVALID_TID_OR_SLAVE,
                               1, tab_rp_registers);
    ASSERT_TRUE(rc == -1, "");

    printf("1/2 Report slave ID truncated: \n");
    /* Set a marker to ensure limit is respected */
    tab_rp_bits[NB_REPORT_SLAVE_ID - 1] = 42;
    rc = modbus_report_slave_id(ctx, NB_REPORT_SLAVE_ID - 1, tab_rp_bits);
    /* Return the size required (response size) but respects the defined limit */
    ASSERT_TRUE(rc == NB_REPORT_SLAVE_ID &&
                tab_rp_bits[NB_REPORT_SLAVE_ID - 1] == 42,
                "Return is rc %d (%d) and marker is %d (42)",
                rc, NB_REPORT_SLAVE_ID, tab_rp_bits[NB_REPORT_SLAVE_ID - 1]);

    printf("2/2 Report slave ID: \n");
    /* tab_rp_bits is used to store bytes */
    rc = modbus_report_slave_id(ctx, NB_REPORT_SLAVE_ID, tab_rp_bits);
    ASSERT_TRUE(rc == NB_REPORT_SLAVE_ID, "");

    /* Slave ID is an arbitraty number for libmodbus */
    ASSERT_TRUE(rc > 0, "");

    /* Run status indicator is ON */
    ASSERT_TRUE(rc > 1 && tab_rp_bits[1] == 0xFF, "");

    /* Print additional data as string */
    if (rc > 2) {
        printf("Additional data: ");
        for (i=2; i < rc; i++) {
            printf("%c", tab_rp_bits[i]);
        }
        printf("\n");
    }

    /* Save original timeout */
    modbus_get_response_timeout(ctx, &old_response_to_sec, &old_response_to_usec);
    modbus_get_byte_timeout(ctx, &old_byte_to_sec, &old_byte_to_usec);

    rc = modbus_set_response_timeout(ctx, 0, 0);
    printf("1/6 Invalid response timeout (zero): ");
    ASSERT_TRUE(rc == -1 && errno == EINVAL, "");

    rc = modbus_set_response_timeout(ctx, 0, 1000000);
    printf("2/6 Invalid response timeout (too large us): ");
    ASSERT_TRUE(rc == -1 && errno == EINVAL, "");

    rc = modbus_set_byte_timeout(ctx, 0, 1000000);
    printf("3/6 Invalid byte timeout (too large us): ");
    ASSERT_TRUE(rc == -1 && errno == EINVAL, "");

    modbus_set_response_timeout(ctx, 0, 1);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                               UT_REGISTERS_NB, tab_rp_registers);
    printf("4/6 1us response timeout: ");
    if (rc == -1 && errno == ETIMEDOUT) {
        printf("OK\n");
    } else {
        printf("FAILED (can fail on some platforms)\n");
    }

    /* A wait and flush operation is done by the error recovery code of
     * libmodbus but after a sleep of current response timeout
     * so 0 can be too short!
     */
    usleep(old_response_to_sec * 1000000 + old_response_to_usec);
    modbus_flush(ctx);

    /* Trigger a special behaviour on server to wait for 0.5 second before
     * replying whereas allowed timeout is 0.2 second */
    modbus_set_response_timeout(ctx, 0, 200000);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_SLEEP_500_MS,
                               1, tab_rp_registers);
    printf("5/6 Too short response timeout (0.2s < 0.5s): ");
    ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");

    /* Wait for reply (0.2 + 0.4 > 0.5 s) and flush before continue */
    usleep(400000);
    modbus_flush(ctx);

    modbus_set_response_timeout(ctx, 0, 600000);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_SLEEP_500_MS,
                               1, tab_rp_registers);
    printf("6/6 Adequate response timeout (0.6s > 0.5s): ");
    ASSERT_TRUE(rc == 1, "");

    /* Disable the byte timeout.
       The full response must be available in the 600ms interval */
    modbus_set_byte_timeout(ctx, 0, 0);
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_SLEEP_500_MS,
                               1, tab_rp_registers);
    printf("7/7 Disable byte timeout: ");
    ASSERT_TRUE(rc == 1, "");

    /* Restore original response timeout */
    modbus_set_response_timeout(ctx, old_response_to_sec,
                                old_response_to_usec);

    if (use_backend == TCP) {
        /* The test server is only able to test byte timeouts with the TCP
         * backend */

        /* Timeout of 3ms between bytes */
        modbus_set_byte_timeout(ctx, 0, 3000);
        rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_BYTE_SLEEP_5_MS,
                                   1, tab_rp_registers);
        printf("1/2 Too small byte timeout (3ms < 5ms): ");
        ASSERT_TRUE(rc == -1 && errno == ETIMEDOUT, "");

        /* Wait remaing bytes before flushing */
        usleep(11 * 5000);
        modbus_flush(ctx);

        /* Timeout of 7ms between bytes */
        modbus_set_byte_timeout(ctx, 0, 7000);
        rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_BYTE_SLEEP_5_MS,
                                   1, tab_rp_registers);
        printf("2/2 Adapted byte timeout (7ms > 5ms): ");
        ASSERT_TRUE(rc == 1, "");
    }

    /* Restore original byte timeout */
    modbus_set_byte_timeout(ctx, old_byte_to_sec, old_byte_to_usec);

    /** BAD RESPONSE **/
    printf("\nTEST BAD RESPONSE ERROR:\n");

    /* Allocate only the required space */
    tab_rp_registers_bad = (uint16_t *) malloc(
        UT_REGISTERS_NB_SPECIAL * sizeof(uint16_t));

    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS,
                               UT_REGISTERS_NB_SPECIAL, tab_rp_registers_bad);
    printf("* modbus_read_registers: ");
    ASSERT_TRUE(rc == -1 && errno == EMBBADDATA, "");
    free(tab_rp_registers_bad);

    /** MANUAL EXCEPTION **/
    printf("\nTEST MANUAL EXCEPTION:\n");
    rc = modbus_read_registers(ctx, UT_REGISTERS_ADDRESS_SPECIAL,
                               UT_REGISTERS_NB, tab_rp_registers);

    printf("* modbus_read_registers at special address: ");
    ASSERT_TRUE(rc == -1 && errno == EMBXSBUSY, "");

    /** Run a few tests to challenge the server code **/
    if (test_server(ctx, use_backend) == -1) {
        goto close;
    }

    modbus_close(ctx);
    modbus_free(ctx);
    ctx = NULL;

    /* Test init functions */
    printf("\nTEST INVALID INITIALIZATION:\n");
    ctx = modbus_new_rtu(NULL, 1, 'A', 0, 0);
    ASSERT_TRUE(ctx == NULL && errno == EINVAL, "");

    ctx = modbus_new_rtu("/dev/dummy", 0, 'A', 0, 0);
    ASSERT_TRUE(ctx == NULL && errno == EINVAL, "");

    ctx = modbus_new_tcp_pi(NULL, NULL);
    ASSERT_TRUE(ctx == NULL && errno == EINVAL, "");

    printf("\nALL TESTS PASS WITH SUCCESS.\n");
    success = TRUE;

close:
    /* Free the memory */
    free(tab_rp_bits);
    free(tab_rp_registers);

    /* Close the connection */
    modbus_close(ctx);
    modbus_free(ctx);

    return (success) ? 0 : -1;
}

/* Send crafted requests to test server resilience
   and ensure proper exceptions are returned. */
int test_server(modbus_t *ctx, int use_backend)
{
    int rc;
    int i;
    /* Read requests */
    const int READ_RAW_REQ_LEN = 6;
    const int slave = (use_backend == RTU) ? SERVER_ID : MODBUS_TCP_SLAVE;
    uint8_t read_raw_req[] = {
        slave,
        /* function, address, 5 values */
        MODBUS_FC_READ_HOLDING_REGISTERS,
        UT_REGISTERS_ADDRESS >> 8, UT_REGISTERS_ADDRESS & 0xFF,
        0x0, 0x05
    };
    /* Write and read registers request */
    const int RW_RAW_REQ_LEN = 13;
    uint8_t rw_raw_req[] = {
        slave,
        /* function, addr to read, nb to read */
        MODBUS_FC_WRITE_AND_READ_REGISTERS,
        /* Read */
        UT_REGISTERS_ADDRESS >> 8, UT_REGISTERS_ADDRESS & 0xFF,
        (MODBUS_MAX_WR_READ_REGISTERS + 1) >> 8,
        (MODBUS_MAX_WR_READ_REGISTERS + 1) & 0xFF,
        /* Write */
        0, 0,
        0, 1,
        /* Write byte count */
        1 * 2,
        /* One data to write... */
        0x12, 0x34
    };
    const int WRITE_RAW_REQ_LEN = 13;
    uint8_t write_raw_req[] = {
        slave,
        /* function will be set in the loop */
        MODBUS_FC_WRITE_MULTIPLE_REGISTERS,
        /* Address */
        UT_REGISTERS_ADDRESS >> 8, UT_REGISTERS_ADDRESS & 0xFF,
        /* 3 values, 6 bytes */
        0x00, 0x03, 0x06,
        /* Dummy data to write */
        0x02, 0x2B, 0x00, 0x01, 0x00, 0x64
    };
    const int INVALID_FC = 0x42;
    const int INVALID_FC_REQ_LEN = 6;
    uint8_t invalid_fc_raw_req[] = {
        slave, 0x42, 0x00, 0x00, 0x00, 0x00
    };

    int req_length;
    uint8_t rsp[MODBUS_TCP_MAX_ADU_LENGTH];
    int tab_read_function[] = {
        MODBUS_FC_READ_COILS,
        MODBUS_FC_READ_DISCRETE_INPUTS,
        MODBUS_FC_READ_HOLDING_REGISTERS,
        MODBUS_FC_READ_INPUT_REGISTERS
    };
    int tab_read_nb_max[] = {
        MODBUS_MAX_READ_BITS + 1,
        MODBUS_MAX_READ_BITS + 1,
        MODBUS_MAX_READ_REGISTERS + 1,
        MODBUS_MAX_READ_REGISTERS + 1
    };
    int backend_length;
    int backend_offset;

    if (use_backend == RTU) {
        backend_length = 3;
        backend_offset = 1;
    } else {
        backend_length = 7;
        backend_offset = 7;
    }

    printf("\nTEST RAW REQUESTS:\n");

    uint32_t old_response_to_sec;
    uint32_t old_response_to_usec;

    /* This requests can generate flushes server side so we need a higher
     * response timeout than the server. The server uses the defined response
     * timeout to sleep before flushing.
     * The old timeouts are restored at the end.
     */
    modbus_get_response_timeout(ctx, &old_response_to_sec, &old_response_to_usec);
    modbus_set_response_timeout(ctx, 0, 600000);

    req_length = modbus_send_raw_request(ctx, read_raw_req, READ_RAW_REQ_LEN);
    printf("* modbus_send_raw_request: ");
    ASSERT_TRUE(req_length == (backend_length + 5), "FAILED (%d)\n", req_length);

    printf("* modbus_receive_confirmation: ");
    rc = modbus_receive_confirmation(ctx, rsp);
    ASSERT_TRUE(rc == (backend_length + 12), "FAILED (%d)\n", rc);

    /* Try to read more values than a response could hold for all data
       types. */
    for (i=0; i<4; i++) {
        rc = send_crafted_request(ctx, tab_read_function[i],
                                  read_raw_req, READ_RAW_REQ_LEN,
                                  tab_read_nb_max[i], 0,
                                  backend_length, backend_offset);
        if (rc == -1)
            goto close;
    }

    /* Modbus write and read multiple registers */
    rc = send_crafted_request(ctx, MODBUS_FC_WRITE_AND_READ_REGISTERS,
                              rw_raw_req, RW_RAW_REQ_LEN,
                              MODBUS_MAX_WR_READ_REGISTERS + 1, 0,
                              backend_length, backend_offset);
    if (rc == -1)
        goto close;

    /* Modbus write multiple registers with large number of values but a set a
       small number of bytes in requests (not nb * 2 as usual). */
    rc = send_crafted_request(ctx, MODBUS_FC_WRITE_MULTIPLE_REGISTERS,
                              write_raw_req, WRITE_RAW_REQ_LEN,
                              MODBUS_MAX_WRITE_REGISTERS + 1, 6,
                              backend_length, backend_offset);
    if (rc == -1)
        goto close;

    rc = send_crafted_request(ctx, MODBUS_FC_WRITE_MULTIPLE_COILS,
                              write_raw_req, WRITE_RAW_REQ_LEN,
                              MODBUS_MAX_WRITE_BITS + 1, 6,
                              backend_length, backend_offset);
    if (rc == -1)
        goto close;

    /* Test invalid function code */
    modbus_send_raw_request(ctx, invalid_fc_raw_req, INVALID_FC_REQ_LEN * sizeof(uint8_t));
    rc = modbus_receive_confirmation(ctx, rsp);
    printf("Return an exception on unknown function code: ");
    ASSERT_TRUE(rc == (backend_length + EXCEPTION_RC) &&
                rsp[backend_offset] == (0x80 + INVALID_FC), "")

    modbus_set_response_timeout(ctx, old_response_to_sec, old_response_to_usec);
    return 0;
close:
    modbus_set_response_timeout(ctx, old_response_to_sec, old_response_to_usec);
    return -1;
}

int send_crafted_request(modbus_t *ctx, int function,
                         uint8_t *req, int req_len,
                         uint16_t max_value, uint16_t bytes,
                         int backend_length, int backend_offset)
{
    uint8_t rsp[MODBUS_TCP_MAX_ADU_LENGTH];
    int j;

    for (j=0; j<2; j++) {
        int rc;

        req[1] = function;
        if (j == 0) {
            /* Try to read or write zero values on first iteration */
            req[4] = 0x00;
            req[5] = 0x00;
            if (bytes) {
                /* Write query */
                req[6] = 0x00;
            }
        } else {
            /* Try to read or write max values + 1 on second iteration */
            req[4] = (max_value >> 8) & 0xFF;
            req[5] = max_value & 0xFF;
            if (bytes) {
                /* Write query (nb values * 2 to convert in bytes for registers) */
                req[6] = bytes;
            }
        }

        modbus_send_raw_request(ctx, req, req_len * sizeof(uint8_t));
        if (j == 0) {
            printf("* try function 0x%X: %s 0 values: ", function, bytes ? "write": "read");
        } else {
            printf("* try function 0x%X: %s %d values: ", function, bytes ? "write": "read",
                   max_value);
        }
        rc = modbus_receive_confirmation(ctx, rsp);
        ASSERT_TRUE(rc == (backend_length + EXCEPTION_RC) &&
                    rsp[backend_offset] == (0x80 + function) &&
                    rsp[backend_offset + 1] == MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE, "");
    }
    return 0;
close:
    return -1;
}


please put an empty space before the `else`


Added transition and the margin effect to the items


Believe it or not I think this is what's causing #20.  `git pull` is failing because it altered `package-lock.json` when running `npm install` I think.  Server is running npm version 6.9.0.  My dev machine is running 6.4.1.  So we're saying everything needs to run 6.6+?


good job


looks good


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `script` property.
~~~


if you are using a `Random` object, you don't have to create a new instance in every method, you can do it when you initialize the variable


Agreed. Thanks!


//viết


Successfully deployed to following URLs:

* https://live-subtitles-ouf7pmrty.now.sh
* https://live-subtitles.oswaldlabs.now.sh
* https://live-subtitles-git-master.oswaldlabs.now.sh


Successfully deployed to following URLs:

* https://react-api-kuda-go-892x9edmn.now.sh
* https://react-api-kuda-go.mishaskopenko1.now.sh
* https://react-api-kuda-go-git-master.mishaskopenko1.now.sh


if you didn't do anything with an exercise, you don't have to upload it to Github


Successfully deployed to following URLs:

* https://intro-8uv56o1zq.now.sh
* https://intro.now.sh
* https://intro.tyshgc.now.sh
* https://intro-git-develop.tyshgc.now.sh


- Fixed bug: invalid map rendering
- Beginning work on entity movement. See GameScene::move(Entity&, sf::Vector2f)
- TODO: finish entity movement stuff


    nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
    nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn


水影B64 TargetHUD+AutoL+Debug+HealthWarning


V
. Check o

Hngv
  Mv
O. Vobm
V

Mhl
V
L
Bgo
Vb
B
Nl
Ov

V

Vlhl
Vl
V
.vl
.v
P
 V vl
V.o
V

O
V

V.bk.vvb vbvvl

Mnvo
.vo

M

Mm
Llv

Vo
L

.go
V

.o
G

Gvl
O
Vl

.l
Bgo

G
.go

.gg

Gp
Vg go
.gp
G

G.g
O go
G
P
G
Nnggo

Gl

Gmg.g
V

Vl
V
Hn.
Og

O
G
 B.y
Vg.g
Oo
Gov

L.v
 G vbv
L
Vv
V.
Vlyh
 V
 V
Gg
 G
O
G.g. voo b
V v
 V.v
Oov
 V
Lv
 G
 V
O vl.vv.v.  vv

Ln
V.
G
Ooog
On
 Vv.ovv
L
V

V vo g
Oooo.v
Gv
Vp.g
Fv
O

G
V.
.g
G
Vllo
Vo.vl
Nv
O.
V
V
L

Vvvv

 Tvl

G v
Onv
 V
 Nv
  G
O
G
 L
V
V
 V g
Glo


Nice


you can say `numberOfLines++` instead of `numberOfLines += 1`


the indentation for `catch` should be the same level as `try`


@shin285
https://github.com/shineware/KOMORANAdmin/issues/39#issuecomment-536200062 에서 얘기했던 모델의 유효성 검사 로직입니다. 살펴보시고 `corpus_build/`를 포함할지 여부를 알려주세요~


<details>

<summary>Submitting the task to Taskcluster failed. Details</summary>

InterpreterError at template.tasks[0]: object keys must be strings

</details>


Successfully deployed to following URLs:

* https://wendells-jcruw6fwo.now.sh
* https://wendell.site
* https://wendells.wendellhu.now.sh
* https://wendells-git-master.wendellhu.now.sh


@cainiaokun 好的，检测出来了


if you don't need some code, no not comment it out, just delete it


@JuliaRegisrator register


you can say `integer += number` . it will be the same


do you need this line?


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @koeng101 was added to conda-forge. Welcome to conda-forge!
  Go to https://github.com/orgs/conda-forge/invitation see your invitation.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/maintainer/updating_pkgs.html#forking-and-pull-requests)


Successfully deployed to following URLs:

* https://live-subtitles-gss1aeytj.now.sh
* https://live-subtitles.oswaldlabs.now.sh
* https://live-subtitles-git-master.oswaldlabs.now.sh


you don't need to use ` == true` , you can just use `poke.isEffectiveAgainst(wildPokemon)` , because it gives back a boolean value


@JuliaRegistrator register


Registration pull request created: [JuliaRegistries/General/3893](https://github.com/JuliaRegistries/General/pull/3893)

After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.

This will be done automatically if [Julia TagBot](https://github.com/apps/julia-tagbot) is installed, or can be done manually through the github interface, or via:
```
git tag -a v0.1.0 -m "<description of version>" 999f44c8fbcb0e665f80e0f827f3fd568705ba16
git push origin v0.1.0
```


Merged?


Successfully deployed to following URLs:

* https://ip-4dg55qrko.now.sh
* https://ip.skamenetskiy.now.sh
* https://ip-git-master.skamenetskiy.now.sh


Successfully deployed to following URLs:

* https://portfolio-5qyumg3vb.now.sh
* https://portfolio.dvcolin.now.sh
* https://portfolio-git-master.dvcolin.now.sh


Successfully deployed to following URLs:

* https://vk-orgy-ltonukl0o.now.sh
* https://vk-orgy.vanishmax.now.sh
* https://vk-orgy-git-master.vanishmax.now.sh


Successfully deployed to following URLs:

* https://ip-oxka7vmn9.now.sh
* https://ip.skamenetskiy.now.sh
* https://ip-git-master.skamenetskiy.now.sh


Successfully deployed to following URLs:

* https://portfoliopage-gt00u0zjm.now.sh
* https://portfoliopage.jasmineblinks.now.sh
* https://portfoliopage-git-master.jasmineblinks.now.sh


why we are using laravel 5 and jenseggers/rollbar ?


you don't need a `main` method in each of your classes, because they describe the workings of a class
if you want to test your code, just create a separate Main class


npm run dist:mac


Successfully deployed to following URLs:

* https://wendells-d348wemdu.now.sh
* https://wendell.site
* https://wendells.wendellhu.now.sh
* https://wendells-git-master.wendellhu.now.sh


Good job


Successfully deployed to following URLs:

* https://parafuso-37pyfzsqm.now.sh
* https://www.parafusomodapraia.com.br
* https://parafusomodapraia.com.br
* https://parafuso.sahusa.now.sh
* https://parafuso-git-master.sahusa.now.sh


Ale tam nie ma scrollującego filmika...


Successfully deployed to following URLs:

* https://react-api-kuda-go-1cwtj7nmd.now.sh
* https://react-api-kuda-go.mishaskopenko1.now.sh
* https://react-api-kuda-go-git-master.mishaskopenko1.now.sh


Successfully deployed to following URLs:

* https://marketing-aq2q2ybdp.now.sh
* https://burst.gg
* https://www.burst.gg
* https://marketing.burst.now.sh
* https://marketing-git-master.burst.now.sh


do you need this import?


not bad


Successfully deployed to following URLs:

* https://marketing-ofqwuq4px.now.sh
* https://burst.gg
* https://www.burst.gg
* https://marketing.burst.now.sh
* https://marketing-git-master.burst.now.sh


the `breed` method should only add one new `Animal` if there is place for it, not fill the Array up


why do you need this line?


`DELETE FROM spell_target_position WHERE entry IN(19527); ` should be id not entry.


please put the `else` after the closing }. not into the next line