Ok, I don't think we can set $client on DynamoDbModel in setUpDynamoDb due to how Eloquent passes the connection name along.  The model is instantiated, then the connection name is setup on it.  We could override the "setConnection" method of the Model, but this is just passing the named connection string.  Eloquent uses a "connection resolver" and the "getConnection" method to call the resolver.  It then does something similar by calling `$this->getConnection()->transaction(...)` or by passing the return of `$this->getConnection()` on to the `QueryBuilder`.


Не стоит заливать файлы идеи в репозиторий. Следи за тем, что коммитишь


С массивами всё ок. 10


Всё верно. 10


Можно было использовать метод reverse() у StringBuilder


Тут тоже всё гуд. 9


I've opened a PR https://github.com/atom/autocomplete-plus/pull/895. It's causing some tests to fail, and I'm working through fixing those.


## Global

| Changed         |   Status |
|:----------------|---------:|
| `nodes_count`   |    +1184 |
| `texts_passing` |       +2 |
| `texts_total`   |       +2 |

## Words

| Changed   |   Status |
|:----------|---------:|
| `deu`     |    -1102 |
| `grc`     |    +5777 |
| `lat`     |     +200 |

## Units

| Changed                                               | Status   |
|:------------------------------------------------------|:---------|
| `./data/tlg1463/tlg001/tlg1463.tlg001.1st1K-grc1.xml` | New      |
| `./data/tlg1463/tlg001/tlg1463.tlg001.1st1K-lat1.xml` | New      |
| `./data/tlg1463/tlg001/tlg1463.tlg001.1st1K-grc1.xml` | Passing  |
| `./data/tlg1463/tlg001/tlg1463.tlg001.1st1K-lat1.xml` | Passing  |

*[Hook UI build recap](http://ci.perseids.org/repo/OpenGreekAndLatin/First1KGreek/3024)*


Still need a working version for DevIL for this, for the most part the local recipe is ready (normally) for v1.1


Всё гуд. 10


Usage is when wr don't control the Retrofit interfaces so can't use rxjava2 retrofit adapters


I added new commits. BTW setDualIsoIfDetected( void ) now working. Needs some tweaking with on_combobox_changed functions to make everything work properly.


## Global

| Changed            |   Status |
|:-------------------|---------:|
| `metadata_passing` |       -6 |
| `metadata_total`   |       -6 |
| `nodes_count`      |    -4776 |
| `texts_passing`    |       -6 |
| `texts_total`      |       -6 |

## Words

| Changed   |   Status |
|:----------|---------:|
| `grc`     |   -88817 |

## Units

| Changed                                               | Status   |
|:------------------------------------------------------|:---------|
| `./data/tlg0527/tlg015/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg015/tlg0527.tlg015.1st1K-grc1.xml` | Deleted  |
| `./data/tlg0527/tlg016/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg016/tlg0527.tlg016.1st1K-grc1.xml` | Deleted  |
| `./data/tlg0527/tlg017/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg017/tlg0527.tlg017.1st1K-grc1.xml` | Deleted  |
| `./data/tlg0527/tlg018/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg018/tlg0527.tlg018.1st1K-grc1.xml` | Deleted  |
| `./data/tlg0527/tlg019/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg019/tlg0527.tlg019.1st1K-grc1.xml` | Deleted  |
| `./data/tlg0527/tlg020/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg020/tlg0527.tlg020.1st1K-grc1.xml` | Deleted  |

*[Hook UI build recap](http://ci.perseids.org/repo/OpenGreekAndLatin/First1KGreek/3026)*


These changes are still a WIP re: 'set -e', but there's some context here: http://mywiki.wooledge.org/BashFAQ/105


A


Not sure if anything needs escaping here and in the line above, @nmtien and @megastef .  In the Github view some characters are bold, and others are not - because of the * char.


Порядок. 10


So we need "Logagent" in the nav if the FAQ is under Logagent @megastef ?


Nope I was wrong i't not working. When is_dual_iso is reading from this function it's not set yet.


Лишние пустые строки


Всё решено. 10


Этот метод должен возвращать посчитанную площадб


Added a new line to test making changes and committing them to GitHub.


То же самое, метод должен возвращать число


Gotcha. It's good that you bump into this. I like the `getConnection` and `resolveConnection` approach. I think we can make it work just like Eloquent. Unfortunately, I don't have time until the weekend to look into this.


Можно просто:

return lastArabicNumber > romanNumberToArabic ? arabicNumber - romanNumberToArabic : arabicNumber + romanNumberToArabic


@reza620895 Wait for next 5-6 updates, then source will be released and it will still be open source project! :)


Всё гуд. 9,5


Added a npm run pre-build and npm start scripts into package.json


Created multidev environment [badcamp-2017#pr-donate-r](https://dashboard.pantheon.io/sites/8d658997-7a61-4db8-9be8-0f16b8b62022#pr-donate-r).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://pr-donate-r-badcamp-2017.pantheonsite.io/)


Kult at du fikk lastet det opp :+1:


Answer to the commit title:

Unfortunatelly detection is done on the frame (image raw data) itself because there is none of the flag indications in the MLV itself yet.


Nice :+1:


![](https://github.trello.services/images/mini-trello-icon.png) [(1) As an architect, I want to create database models for every resource, including schema methods for user authentication, so that I can begin implementing resource management.](https://trello.com/c/lwqoqtNR/2-1-as-an-architect-i-want-to-create-database-models-for-every-resource-including-schema-methods-for-user-authentication-so-that-i)


@theseyi `yarn add typed-ember/ember-typings --dev` should give you the current master branch


This change just broke all my simple mocked tests. I was just doing a responses.add(method=...)


FixIntervalScheduleInterpolation (JasonGlazer) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: OK (2800 of 2822 tests passed, 0 test warnings)

 * 20 tests had: EIO diffs.

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.22%25-yellow.svg)


Хитрый


hello can you please check ur email


Can we check SDL version and apply this fix only if SDL has this bug?


addon 'Sales' documentation


Created multidev environment [badcamp-2017#ci-738](https://dashboard.pantheon.io/sites/8d658997-7a61-4db8-9be8-0f16b8b62022#ci-738).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-738-badcamp-2017.pantheonsite.io/)


Hi @rmarabini , this change if causing the
`scipion test tests.em.data.test_convert_xmipp.TestSetConvert`
fail, I think test files do not have the new "_resolution" field.


## Global

| Changed            |   Status |
|:-------------------|---------:|
| `metadata_passing` |      +13 |
| `metadata_total`   |      +13 |
| `nodes_count`      |    +6871 |
| `texts_passing`    |      +13 |
| `texts_total`      |      +13 |

## Words

| Changed   |   Status |
|:----------|---------:|
| `grc`     |  +104172 |

## Units

| Changed                                               | Status   |
|:------------------------------------------------------|:---------|
| `./data/tlg0527/tlg021/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg021/tlg0527.tlg021.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg023/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg023/tlg0527.tlg023.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg025/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg025/tlg0527.tlg025.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg026/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg026/tlg0527.tlg026.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg027/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg027/tlg0527.tlg027.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg028/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg028/tlg0527.tlg028.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg029/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg029/tlg0527.tlg029.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg031/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg031/tlg0527.tlg031.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg032/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg032/tlg0527.tlg032.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg033/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg033/tlg0527.tlg033.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg035/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg035/tlg0527.tlg035.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg037/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg037/tlg0527.tlg037.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg038/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg038/tlg0527.tlg038.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg021/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg021/tlg0527.tlg021.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg023/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg023/tlg0527.tlg023.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg025/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg025/tlg0527.tlg025.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg026/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg026/tlg0527.tlg026.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg027/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg027/tlg0527.tlg027.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg028/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg028/tlg0527.tlg028.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg029/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg029/tlg0527.tlg029.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg031/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg031/tlg0527.tlg031.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg032/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg032/tlg0527.tlg032.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg033/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg033/tlg0527.tlg033.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg035/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg035/tlg0527.tlg035.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg037/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg037/tlg0527.tlg037.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg038/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg038/tlg0527.tlg038.1st1K-grc1.xml` | Passing  |

*[Hook UI build recap](http://ci.perseids.org/repo/OpenGreekAndLatin/First1KGreek/3027)*


Shouldn't need triple colons when the function is called from within _scran_.


There should not be any `library` calls within functions.


Пробела нет после запятой ("\\s", "")


Use "number of", not "no."


Красиво. 10


public


Wouldn't the vector case use the move constructor, and hence maintain the state?

I do think that the copy constructor should copy the state (and hence not reset) assuming it can be done without allocating (and hence be POD-like in use).


Functions should not print output unless something has gone wrong.


If I recall correctly, attaching the element was used to mutate the HTML and render suggestion elements. I am unsure if there's any other code path that triggers a re-render, but if there is we should be able to remove one of them.

I also wonder if we should completely revisit the way we render things, and use a different model that does not rely on attach/detach, and does not mutate the inner HTML for each added/deleted suggestion element.


Везде public, короче


Hence the name scheme 'mlv_dump_on_steriods by BB, right? 😄👍

Sent from my iPhone 5s

> On Oct 2, 2017, at 5:13 AM, bouncyball <notifications@github.com> wrote:
>
> This dual iso code 1st time introduced by a1ex in cr2hdr, then modified by dmilligan for mlvfs, then by me :)
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub, or mute the thread.
>


То же самое


Вот эти 4 координаты зачем хранить?


Конструктор должен принимать 2 объекта класса Point, а не 4 координаты


With some tweaks, we could have DynamoDbClientService implement `\Illuminate\Database\ConnectionResolverInterface`.  Then have DynamoDbServiceProvider just call `setConnectionResolver(Resolver $resolver)` in `boot()` rather then `setDynamoDbClientService` ... making things a bit more "Eloquent-like"?


Хранить нужно только вот эти две точки


Hello Joachim,

What you describe appears to be an issue that I have not seen before.  I would like to investigate the issue you describe now that I have isolated the data corruption issue to pigpio.c issue #166.  But I need some more information to help you.

Is this a correct description of what your application is doing:
```Open serial bit-bang read (SLRO) on gpio rx
Open notification channel and begin monitor for event on gpio rx
Read serial data (SLR) after receiving event
Repeat forever read serial data after receiving event
```
When you say

> there is a failure while reading the data from the socket

does this mean you get the event but the SLR command failed?
However, you also say

> The "keep-alive-message" from PIGPIO came still every minute...

Am I to assume this mean you stop getting the event?

If so, I must point out a possible area where you application could hang up.  Whenever you read the data please continue to read until there is no more data (ie zero bytes are returned).

Guy


![](https://github.trello.services/images/mini-trello-icon.png) [(1) As an architect, I want to create database models for every resource, including schema methods for user authentication, so that I can begin implementing resource management.](https://trello.com/c/lwqoqtNR/2-1-as-an-architect-i-want-to-create-database-models-for-every-resource-including-schema-methods-for-user-authentication-so-that-i)


This would be more general if users were allowed to pass their own clustering IDs to the function. It would avoid "locking in" `clara` when other algorithms or partitioning strategies might be more appropriate.


## Global

| Changed            |   Status |
|:-------------------|---------:|
| `metadata_passing` |       +2 |
| `metadata_total`   |       +2 |
| `nodes_count`      |      +98 |
| `texts_passing`    |       +2 |
| `texts_total`      |       +2 |

## Words

| Changed   |   Status |
|:----------|---------:|
| `grc`     |    +2033 |

## Units

| Changed                                               | Status   |
|:------------------------------------------------------|:---------|
| `./data/tlg0527/tlg039/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg039/tlg0527.tlg039.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg040/__cts__.xml`                   | New      |
| `./data/tlg0527/tlg040/tlg0527.tlg040.1st1K-grc1.xml` | New      |
| `./data/tlg0527/tlg039/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg039/tlg0527.tlg039.1st1K-grc1.xml` | Passing  |
| `./data/tlg0527/tlg040/__cts__.xml`                   | Passing  |
| `./data/tlg0527/tlg040/tlg0527.tlg040.1st1K-grc1.xml` | Passing  |

*[Hook UI build recap](http://ci.perseids.org/repo/OpenGreekAndLatin/First1KGreek/3028)*


Bluemix [toolchain](https://console.bluemix.net/devops/toolchains/9444ce54-65d8-48b2-b7e1-c4cdf49f881e "UI-yp-SimpleTC1002T124716"): [Delivery Pipeline](https://console.bluemix.net/devops/pipelines/8dfe2ce4-95a2-49fc-bc9b-bfad45b2aaca "UI-yp-SimpleTC1002T124716") deployed [UI-yp-SimpleTC1002T124716](https://github.com/idsb3t1/UI-yp-SimpleTC1002T124716/releases/tag/deploy-ibm-yp-us-south-idsb3t4-us.ibm.com-dev-20171002-165408 "deploy-ibm-yp-us-south-idsb3t4-us.ibm.com-dev-20171002-165408") to [dev](https://console.bluemix.net/apps/9bc22c6e-e97e-4a7a-8c9b-4b676de82080?env_id=ibm:yp:us-south "ibm:yp:us-south:idsb3t4@us.ibm.com:dev"), including this commit


Метод distance не статический, он принимает объект класса Point:

public double distance(Point other) {
  // вернуть расстояние от текущей точки до точки other
}


## Global

| Changed            |   Status |
|:-------------------|---------:|
| `metadata_passing` |       -1 |
| `metadata_total`   |       -1 |
| `nodes_count`      |      -22 |
| `texts_passing`    |       -1 |
| `texts_total`      |       -1 |

## Words

| Changed   |   Status |
|:----------|---------:|
| `grc`     |     -458 |

## Units

| Changed                                               | Status   |
|:------------------------------------------------------|:---------|
| `./data/tlg0527/tlg040/__cts__.xml`                   | Deleted  |
| `./data/tlg0527/tlg040/tlg0527.tlg040.1st1K-grc1.xml` | Deleted  |

*[Hook UI build recap](http://ci.perseids.org/repo/OpenGreekAndLatin/First1KGreek/3029)*


Если хранить две точки, то можно вот так сделать:

return upperLeft.distance(bottomRight);


Подробнее поясню в начале занятия. за эту задачу 6


make the self.user private
and change it to user_id (cos id's are what we use to identify users)


Python tools with Nx REST-API,


I think I got it: we do implicitly assume that `lz_code_buf.len() >= 4`, but only in case of [`if flags & 1 == 1 {`](https://github.com/Frommi/miniz_oxide/commit/17640cb52c586455c1b4524262897b749685a831#diff-de371189f11a253d5d199d64559b6a05R1293) being true, because we expect: flags, match_len and match_dist (x2), but we can [`break`](https://github.com/Frommi/miniz_oxide/commit/17640cb52c586455c1b4524262897b749685a831#diff-de371189f11a253d5d199d64559b6a05R1348) in the `else` branch if there are just a few literals. This assert needs to become `>= 2` for flag and lit and add another one inside `if` for `len - i >= 3` for matches.


Можно было обойтись одним System.arraycopy(). Тут цикл не нужен при его использовании


ok


Всё верно. 10


Можно было использовать метод reverse() у StringBuilder


I will check if it even reads the Cal-/CardDAV stuff. Looks like it does not care about that section here.


make all the properties private
and change the self.user to self.user_id


Thanks! Glad it's still freely available somewhere.


Зачем x2 и y2? Точка - это просто две координаты


Сюда нужно было передавать объект класса Point


private модификаторы


Sorry about that! Will get a compatibility fix pushed up.


Этот конструктор должен принимать две точки


Вариант 6


![](https://github.trello.services/images/mini-trello-icon.png) [(1) As an architect, I want to create database models for every resource, including schema methods for user authentication, so that I can begin implementing resource management.](https://trello.com/c/lwqoqtNR/2-1-as-an-architect-i-want-to-create-database-models-for-every-resource-including-schema-methods-for-user-authentication-so-that-i)


Не совсем верно сделал. Объясню на занятии. 7


Вариант 1


Feel free to try it out. Though what I'm thinking of is slightly different and involves a bit of refactoring. I don't know for sure until I try it out.


You forgot to change the default key on line 85.


Гуд, 10


Checks to make sure the README.rst file doesn't have any errors


eewewe


Этот метод должен быть не static. Не должен принимать параметров. Просто нужно использовать точки текущего объекта. Покажу на занятии


Названия методов со строчной


То же самое: со строчной и не статический


Version analysis for protocol definitions in this commit:

## Diffs

### `S_REPLY_GUILD_LIST` 1 => 2
```diff
--- a/protocol/S_REPLY_GUILD_LIST.1.def
+++ b/protocol/S_REPLY_GUILD_LIST.2.def
@@ -1,27 +1,19 @@
 count  guilds
 offset guilds
-
+
 int32  currentPage
 int32  totalPages
 int32  totalGuilds
-int32  unk
 array  guilds
 - offset name
-- offset master
-- offset unk1
+- offset emblem
 - offset ad
-- offset emblem
-- int32  level
-- int64  founded
-- int64  members # maybe two int32 fields?
-- int32  praise
-- byte   unk2
-- int32  gvg # ?
-- byte   unk3
-- int32  fame
-- int32  crusade
+- int32  id
+- int32  members
+- int32  unk1
+- int32  unk2
+- int32  levelMin
+- int32  levelMax
 - string name
-- string master
-- string unk
+- string emblem
 - string ad
-- string emblem
```


Version analysis for protocol definitions in this commit:

## Summary

Added new definition:
- `S_USER_ITEM_EQUIP_CHANGER.1.def`

## Diffs

### `S_INVEN` 6 => 7
```diff
--- a/protocol/S_INVEN.6.def
+++ b/protocol/S_INVEN.7.def
@@ -1,8 +1,8 @@
 uint64 id
 int64  coins
-byte   inventory
-byte   first
-byte   more
+bool   open
+bool   first
+bool   more
 int32  size
 int32  itemLevelInventory
 int32  itemLevel
@@ -13,42 +13,48 @@
 int32  unk5

 array items
-- uint32 item
-- uint64 uid # no cid flags
-- uint64 ownerId # no cid flags
-- uint32 slot
-- int32  unk2
+- uint32 dbid
+- uint64 id
+- uint64 ownerId # playerId
+- uint32 slot # 0-39 are reserved for equipment:
+              # 1 = Weapon, 3 = Body, 4 = Hands, 5 = Feet, 6 = Left Earring, 7 = Right Earring, 8 = Left Ring, 9 = Right Ring,
+              # 10 = Necklace, 11 = Underwear, 12 = Head, 13 = Face, 14 = Costume Head, 15 = Costume Face, 16 = Costume Weapon,
+              # 17 = Costume Body, 18 = Costume Back, 19 = Belt, 20 = Brooch
+- int32  unk1
 - uint32 amount
 - uint32 enchant # 0-15
-- int32  unk3
-- byte   unk4
-- uint32 crystal1 # item ids
-- uint32 crystal2
-- uint32 crystal3
-- uint32 crystal4
+- int32  unk2
+- bool   soulbound
+- int32  crystal1 # The client ignores empty slots, so (crystal1, <empty>, crystal3) will become (crystal1, crystal3, <empty>).
+- int32  crystal2 # All crystals will be displayed in the tooltip (if the item supports crystals), however only the maximum
+- int32  crystal3 # number of crystals that the item supports will be displayed in the equipment window.
+- int32  crystal4
+- int32  crystal5
+- int32  unk3 # 0, 30, ?
+- int32  unk4
+- int32  remodel # dbid
+- uint32 dye
+- int32  dyeSecRemaining # -1 = unlimited
+- bool   masterworked
 - int32  unk5
-- uint32 remodel # unused now, was item id
-- int32  unk6
-- int32  unk7
-- int32  unk8  # effect?
-- int32  unk9  # effect?
-- bool   masterworked
-- int32  unk10
-- int32  unk11
+- bool   unk6
+- bool   unk7
+- bool   unk8
+- bool   unk9 # true = breaks dye duration in tooltip?
 - uint32 itemLevel
 - uint32 minItemLevel
 - uint32 maxItemLevel
-- int32  unk12
-- int32  unk13
-- int32  unk14
-- int32  unk15
-- uint64 ownerId2 # crafted by?
+- int32  unk10
+- int32  enchantAdvantage # % x 100
+- int32  enchantAdvantageBonus # % x 100 (added to enchantAdvantage + displayed separately)
+- int32  enchantAdvantageBonusUntil
+- uint64 ownerId2 # soulbound to?
 - bool   awakened
-- int32  unk16
+- int32  liberation # negative number = liberations left, 0 = default, positive number = liberated (removes untradable flag)
 - int32  feedstock # -1 if N/A
-- uint32 unk17
+- uint32 unk11
 - bool   equipped
-- byte   unk18
+- bool   pcbang

 - array  passivitySets
 - - uint32 index
@@ -58,4 +64,4 @@
 - - array  passivities
 - - - uint32 id

-- string unk1 # possibly custom text?
+- string unkStr # possibly custom text?
\ No newline at end of file
```

### `S_INVEN` 7 => 8
```diff
--- a/protocol/S_INVEN.7.def
+++ b/protocol/S_INVEN.8.def
@@ -30,38 +30,35 @@
 - int32  crystal3 # number of crystals that the item supports will be displayed in the equipment window.
 - int32  crystal4
 - int32  crystal5
-- int32  unk3 # 0, 30, ?
-- int32  unk4
+- int32  unk3 # 0, 30?
+- int32  unk4 # 0, 1?
 - int32  remodel # dbid
 - uint32 dye
 - int32  dyeSecRemaining # -1 = unlimited
-- bool   masterworked
 - int32  unk5
-- bool   unk6
-- bool   unk7
-- bool   unk8
-- bool   unk9 # true = breaks dye duration in tooltip?
-- uint32 itemLevel
-- uint32 minItemLevel
-- uint32 maxItemLevel
-- int32  unk10
+- int32  unk6
+- int64  dyeExpiryDate
+- bool   masterwork
+- uint32 enigma
+- int32  unk7
 - int32  enchantAdvantage # % x 100
 - int32  enchantAdvantageBonus # % x 100 (added to enchantAdvantage + displayed separately)
 - int32  enchantAdvantageBonusUntil
 - uint64 ownerId2 # soulbound to?
 - bool   awakened
-- int32  liberation # negative number = liberations left, 0 = default, positive number = liberated (removes untradable flag)
-- int32  feedstock # -1 if N/A
-- uint32 unk11
+- int32  liberationStatus # negative number = liberations left, 0 = default, positive number = liberated (removes untradable flag)
+- int32  feedstock
+- uint32 unk8
 - bool   equipped
 - bool   pcbang

 - array  passivitySets
 - - uint32 index
-- - uint64 unk1
-- - uint64 unk2
-
+- - int32  masterworkBonus
+- - int32  itemLevel
+- - int32  minItemLevel
+- - int32  maxItemLevel
 - - array  passivities
-- - - uint32 id
+- - - int32 dbid

 - string unkStr # possibly custom text?
\ No newline at end of file
```

### `S_LOGIN_ARBITER` 2 => 3
```diff
--- a/protocol/S_LOGIN_ARBITER.2.def
+++ b/protocol/S_LOGIN_ARBITER.3.def
@@ -1,7 +1,8 @@
 bool   success
-bool   unk1
+bool   loginQueue
 uint32 status
-uint32 unk2
+uint32 unk # ignored by client
 uint32 language # must match C_LOGIN_ARBITER.language
\ No newline at end of file
-bool   unk3
-uint32 unk4
+bool   pvpDisabled
+uint16 unk1 # checked against 0
+uint16 unk2 # checked against level
```

### `S_PLAYER_STAT_UPDATE` 5 => 6
```diff
--- a/protocol/S_PLAYER_STAT_UPDATE.5.def
+++ b/protocol/S_PLAYER_STAT_UPDATE.6.def
@@ -1,68 +1,63 @@
-# Protocol version 319256 or later
-
-int32 curHp
-int32 unk11
-int32 curMp
-int32 unk22
-int32 unk1
-int32 maxHp
-int32 unk33
-int32 maxMp
-int32 basePower
-int32 baseEndurance
-int32 baseImpactFactor
-int32 baseBalanceFactor
-int16 baseMovementSpeed
-int16 unk2
-int16 baseAttackSpeed
-float baseCritRate
-float baseCritResist
-float baseCritPower
-int32 baseAttack
-int32 baseAttack2
-int32 baseDefense
-int32 baseImpact
-int32 baseBalance
-float baseResistWeakening
-float baseResistPeriodic
-float baseResistStun
-int32 bonusPower
-int32 bonusEndurance
-int32 bonusImpactFactor
-int32 bonusBalanceFactor
-int16 bonusMovementSpeed
-int16 unk3
-int16 bonusAttackSpeed
-float bonusCritRate
-float bonusCritResist
-float bonusCritPower
-int32 bonusAttack
-int32 bonusAttack2
-int32 bonusDefense
-int32 bonusImpact
-int32 bonusBalance
-float bonusResistWeakening
-float bonusResistPeriodic
-float bonusResistStun
+int32  hp
+int32  mp
+int32  unk1
+int32  maxHp
+int32  maxMp
+int32  power
+int32  endurance
+int32  impactFactor
+int32  balanceFactor
+int16  runSpeed
+int16  walkSpeed
+int16  attackSpeed
+float  critRate
+float  critResist
+float  critPower
+int32  attack
+int32  attack2
+int32  defense
+int32  impact
+int32  balance
+float  resistWeakening
+float  resistPeriodic
+float  resistStun
+int32  powerBonus
+int32  enduranceBonus
+int32  impactFactorBonus
+int32  balanceFactorBonus
+int16  runSpeedBonus
+int16  walkSpeedBonus
+int16  attackSpeedBonus
+float  critRateBonus
+float  critResistBonus
+float  critPowerBonus
+int32  attackBonus
+int32  attack2Bonus
+int32  defenseBonus
+int32  impactBonus
+int32  ralanceBonus
+float  resistWeakeningBonus
+float  resistPeriodicBonus
+float  resistStunBonus
 uint16 level1
-byte unk4 # 0, 1
+bool   unk4
 uint32 unk5 # flags?
-int32 bonusHp # from stamina
-int32 bonusMp
-int32 curStamina
-int32 maxStamina
-int32 curRe # also chi, willpower, etc
-int32 maxRe
-int32 bonusRe
-int32 unk6
-int32 itemLevelInventory
-int32 itemLevel
-int32 edge
+int32  hpBonus
+int32  mpBonus
+int32  condition # Stamina in English version
+int32  contitionMax
+int32  stamina # Resolve, Chi, Willpower, etc.
+int32  staminaMax
+int32  staminaBonus
+int32  infamy
+int32  itemLevelInventory
+int32  itemLevel
+int32  edge
 uint16 unk7 # 0?
 uint16 unk8 # flags?
-int32 unk9  # 0x1F40 = 8000
-int32 unk10 # 3
-int32 level2
-float flightEnergy
+int32  unk9  # 0x1F40 = 8000
+int32  unk10 # 3
+int32  level2
+float  flightEnergy
 uint32 unk13 # 0?
-float unk14 # 1
+float  unk14 # 1
\ No newline at end of file
```

### `S_SHOW_ITEM_TOOLTIP` 6 => 7
```diff
--- a/protocol/S_SHOW_ITEM_TOOLTIP.6.def
+++ b/protocol/S_SHOW_ITEM_TOOLTIP.7.def
@@ -17,15 +17,22 @@
 byte   unk5_2
 byte   unk5_3
 bool   compareStats
-int32  etching
-int32  hiddenPassivity
+int32  etching1
+int32  etching2
+int32  etching3
+int32  etching4
+int32  etching5 # etchings 5-8 are red in standard tooltips (new etching tooltip displays them as green)
+int32  etching6
+int32  etching7
+int32  etching8
+int32  etchingSecRemaining
 int32  unk6
 int32  unk7
 int32  unk8
 int32  unk9
 int32  unk10
 int32  unk11
-int32  etchingSecRemaining
+int32  unk12
 int32  unk13
 int32  unk14
 int32  unk15
@@ -34,43 +41,36 @@
 int32  unk18
 int32  unk19
 int32  unk20
+int32  enigma
+bool   masterwork
 int32  unk21
+int32  remodel
+uint32 dye
+int32  dyeSecRemaining
 int32  unk22
 int32  unk23
 int32  unk24
 int32  unk25
 int32  unk26
+int32  acquisitionDate
 int32  unk27
-int32  enigma
-bool   masterwork
-int32  unk29
-int32  remodel
-uint32 dye
-int32  dyeSecRemaining
-int32  unk33
-int32  unk34
-int32  unk35
-int32  unk36
-int32  unk37
-int32  acquisitionDate
-int32  unk39
 int32  secRemaining # -1 = display acquisition date instead
-int32  unk41
+int32  unk28
 int32  setId
-int32  unk42
+int32  unk29
 int32  enchantAdvantage
 int32  enchantAdvantageBonus
 int32  enchantAdvantageBonusUntil
 int64  averageBrokerPrice
 int32  feedstock
 int32  dismantlePrice # feedstock x 3?
-int32  unk48
+int32  unk30
 bool   awakened
 int32  liberationStatus # See S_INVEN
-byte   unk49_1
-byte   unk49_2
-byte   unk49_3
-int32  unk51
+byte   unk31_1
+byte   unk31_2
+byte   unk31_3
+int32  unk32

 array  crystals
 - int32 dbid
```

### `S_SHOW_ITEM_TOOLTIP` 5 => 6
```diff
--- a/protocol/S_SHOW_ITEM_TOOLTIP.5.def
+++ b/protocol/S_SHOW_ITEM_TOOLTIP.6.def
@@ -1,31 +1,31 @@
-count  crystals
-offset crystals
-count  rollSets
-offset rollSets
-count  unknownArray
-offset unknownArray
-offset crafter
-offset soulbind
-
-int64  uid
-int32  item
-int64  uid2
-int32  unk111
-int64  ownerId
-int32  itemSlot
-int32  unk4
-int32  stackSize
-int32  stackCount
-int32  enchantment
+int32  type # 17 = persistent, 20 = hover, 28 = new etching
+uint64 id
+uint32 dbid
+uint64 id2 # always same as id?
+uint64 ownerId
+uint32 slot
+int32  unk1
+int32  amount
+int32  amountTotal # or is this reversed?
+int32  enchant
+int32  unk2
+bool   soulbound
+int32  unk3
+int32  unk4 # causes stat comparison to not display
+bool   dualRollsUnlocked
+byte   unk5_1
+byte   unk5_2
+byte   unk5_3
+bool   compareStats
+int32  etching
+int32  hiddenPassivity
+int32  unk6
 int32  unk7
-bool   isSoulbound
+int32  unk8
 int32  unk9
-int32  unk112
-byte   secondSetActivated
-int32  unk113
-int32  etching
-int32  secret
-int32  unk12
+int32  unk10
+int32  unk11
+int32  etchingSecRemaining
 int32  unk13
 int32  unk14
 int32  unk15
@@ -41,110 +41,107 @@
 int32  unk25
 int32  unk26
 int32  unk27
-int32  unk28
+int32  enigma
+bool   masterwork
 int32  unk29
-int32  unk30
-int32  unk31
-int32  unk32
+int32  remodel
+uint32 dye
+int32  dyeSecRemaining
 int32  unk33
 int32  unk34
-byte   masterwork
 int32  unk35
 int32  unk36
 int32  unk37
-int32  unk38
+int32  acquisitionDate
 int32  unk39
-int32  unk40
+int32  secRemaining # -1 = display acquisition date instead
 int32  unk41
+int32  setId
 int32  unk42
-int32  unk43
-int32  unk44
-int32  unk45
-int32  unk46
-int32  unk47
-int32  setId
+int32  enchantAdvantage
+int32  enchantAdvantageBonus
+int32  enchantAdvantageBonusUntil
+int64  averageBrokerPrice
+int32  feedstock
+int32  dismantlePrice # feedstock x 3?
 int32  unk48
-int32  unk49
-int32  unk50
+bool   awakened
+int32  liberationStatus # See S_INVEN
+byte   unk49_1
+byte   unk49_2
+byte   unk49_3
 int32  unk51
-int32  unk52
-int32  unk53
-int32  feedstock
-int32  unk54
-int32  unk55
-byte   unk56
-int32  unk57
-int32  unk58
-string crafter
-string soulbind

 array  crystals
-- int32  crystal
+- int32 dbid

-array  rollSets
-- count  bonuses
-- offset bonuses
-- int32  unk300
+array  passivitySets
+- uint32 index
 - int32  masterworkBonus
 - int32  itemLevel
 - int32  minItemLevel
 - int32  maxItemLevel
-- array  bonuses
-- - int32  bonus
+- array  passivities
+- - int32 dbid

-array  unknownArray
-- int64  unk200
-- int32  unk201
-- int32  unk202
-- int32  unk203
-- int32  unk204
-- int32  unk205
-- int32  unk206
-- int32  unk207
-- int32  unk208
-- int32  unk209
-- int32  unk210
-- int32  unk211
-- int32  unk212
-- int32  unk213
-- int32  unk214
-- int32  unk215
-- int32  unk216
-- int32  unk217
-- int32  unk218
-- int32  unk219
-- int32  unk220
-- int32  unk221
-- int32  unk222
-- int32  unk223
-- int32  unk224
-- int32  unk225
-- int32  unk226
-- int32  unk227
-- int32  unk228
-- int32  unk229
-- int32  unk230
-- int32  unk231
-- int32  unk232
-- int32  unk233
-- int32  unk234
-- int32  unk235
-- int32  unk236
-- int32  unk237
-- int32  unk238
-- int32  unk239
-- int32  unk240
-- int32  unk241
-- int32  unk242
-- int32  unk243
-- int32  unk244
-- int32  unk245
-- int32  unk246
-- int32  unk247
-- int32  unk248
-- int32  unk249
-- int32  unk250
-- int32  unk251
-- int32  unk252
-- int32  unk253
-- int32  unk254
+# Note: The magic number -1000 hides individual stats
+array  statComparison
+- uint32 index # corresponds with passivity set
+- int32  itemLevelDiff
+- int32  minAttack
+- int32  minAttackDiff
+- int32  maxAttack
+- int32  defense
+- int32  impact
+- int32  balance
+- float  critFactor
+- float  critResistFactor
+- float  critPower
+- int32  impactFactor
+- int32  balanceFactor
+- int32  attackSpeed
+- int32  moveSpeed
+- float  weakResist
+- float  dotResist
+- float  stunResist
+- int32  maxAttackDiff
+- int32  defenseDiff
+- int32  impactDiff
+- int32  balanceDiff
+- float  critFactorDiff
+- float  critResistFactorDiff
+- float  critPowerDiff
+- int32  impactFactorDiff
+- int32  balanceFactorDiff
+- int32  attackSpeedDiff
+- int32  moveSpeedDiff
+- float  weakResistDiff
+- float  dotResistDiff
+- float  stunResistDiff
+- int32  unk1
+- int32  unk2
+- int32  unk3
+- int32  unk4
+- int32  unk5
+- int32  unk6
+- int32  unk7
+- int32  unk8
+- int32  unk9 # 0xfefefefe starting from here
+- int32  unk10
+- int32  unk11
+- int32  unk12
+- int32  unk13
+- int32  unk14
+- int32  unk15
+- int32  unk16
+- int32  unk17
+- int32  unk18
+- int32  unk19
+- int32  unk20
+- int32  unk21
+- int32  unk22
+- int32  unk23
+- int32  unk24
+
+string crafterName
+string soulboundName
\ No newline at end of file
```


Okay, works without the /Contacts /Calendar folders. 👍


In the beginning I wasn't sure whether the IPFS codes would be used in client-facing headers, so I dropped the header under ``src`` as an internal header. I didn't know about the ``include_directories`` either.

However I noticed that the header was included in ``error.h``, so in commit 36f89451 I moved the header to the package's public ``include/ipfs_cache`` directory. I wasn't able to successfully convey the new include path to ``gc build`` via ``gc(cgo)flags``, so I ended up using in-code ``CFLAGS`` and was able to use ``<>`` everywhere.


So the problem before is I forgot to finish typing what I was working on and had just written `return hash` instead of `return hash_node(node)`

The error with not being JSON serializable was because it was returning the function `hash` which can't be serialized to JSON.


Guest creators 路人作者 听上去很令人费解，客串作者 或者 客座作者？


*bug* fix


Created https://github.com/facebook/react-native/issues/16071